sys-decomposing-goals
npx skills add https://github.com/bellabe/lean-os --skill sys-decomposing-goals
Agent 安装分布
Skill 文档
Goal Decomposing
Break a single goal into a hierarchy of actionable subgoals.
Responsibility
Take ONE goal and decompose it into subgoals using derivation formulas. Creates multiple goal files with parent-child links.
Quick Start
- Read parent goal from
strategy/goals/active/{goal-dir}/goal.md - Determine decomposition pattern based on category
- Apply derivation formulas to create subgoals
- Write subgoal files as
{n}.{name}.mdin the parent goal directory - Update parent
goal.mdwith child links
Decomposition Hierarchy
Level 1: Business Goal (leadership)
â "Achieve $10M ARR"
â Time horizon: Annual
â
â¼
Level 2: System Goal (RevOps)
â "Generate $40M pipeline"
â Time horizon: Quarterly
â
â¼
Level 3: Operational Goal (Team Leads)
â "Book 400 qualified meetings"
â Time horizon: Monthly
â
â¼
Level 4: Tactical Goal (Individual)
"Complete 100 outreach touches/day"
Time horizon: Weekly/Daily
Decomposition Patterns
Revenue Goal Decomposition
Revenue Target ($X ARR)
â
âââ Pipeline Target = Revenue / Win Rate
â â
â âââ Opportunities = Pipeline / Avg Deal Size
â â
â âââ Meetings = Opportunities / Opp Rate
â â
â âââ Outreach = Meetings / Meeting Rate
â
âââ Expansion Target = Existing ARR Ã Expansion Rate
â â
â âââ Expansion Meetings = Target / Avg Expansion Deal
â
âââ Retention Target = 100% - Churn Rate
â
âââ At-Risk Interventions = Churn Risk Accounts à Save Rate
Activity Goal Decomposition
Meeting Target (X meetings)
â
âââ Outbound Meetings = Total à Outbound Ratio
â â
â âââ Outbound Touches = Meetings / Meeting Rate
â
âââ Inbound Meetings = Total à Inbound Ratio
â
âââ MQL Target = Meetings / MQL-to-Meeting Rate
â
âââ Traffic Target = MQLs / Conversion Rate
Content Goal Decomposition
Content Lead Target (X leads)
â
âââ Blog Leads = Total à Blog Attribution %
â â
â âââ Blog Posts = Leads / Leads-per-Post
â
âââ Gated Content Leads = Total à Gated %
â â
â âââ Ebooks/Guides = Leads / Leads-per-Asset
â
âââ Traffic Target = Total / Conversion Rate
â
âââ SEO Keywords = Traffic / Avg Traffic-per-Keyword
Derivation Formulas
Revenue Formulas
| From | To | Formula | Defaults |
|---|---|---|---|
| Revenue | Pipeline | revenue / win_rate |
win_rate: 0.25 |
| Pipeline | Opportunities | pipeline / avg_deal |
avg_deal: $50K |
| Opportunities | Meetings | opps / opp_rate |
opp_rate: 0.30 |
| Meetings | Outreach | meetings / meeting_rate |
meeting_rate: 0.02 |
| Revenue | Expansion | existing_arr à expansion_rate |
expansion_rate: 0.25 |
| Revenue | New Logo | (target - existing à nrr) / arpu |
nrr: 1.0 |
Activity Formulas
| From | To | Formula | Defaults |
|---|---|---|---|
| Meetings | MQLs | meetings / mql_meeting_rate |
rate: 0.15 |
| MQLs | Traffic | mqls / conversion_rate |
rate: 0.025 |
| Outreach | Emails | outreach à email_ratio |
ratio: 0.60 |
| Outreach | Calls | outreach à call_ratio |
ratio: 0.25 |
| Outreach | outreach à linkedin_ratio |
ratio: 0.15 |
Efficiency Formulas
| From | To | Formula | Defaults |
|---|---|---|---|
| Win Rate | Stage Rates | win_rate^(1/stages) |
stages: 4 |
| Cycle Time | Stage Times | cycle / stages |
stages: 4 |
| CAC | Channel CAC | cac à channel_weight |
by channel |
Process
Step 1: Read Parent Goal
Read: strategy/goals/active/{goal-dir}/goal.md
Extract:
- goal_id (matches directory name, e.g. ea-revenue-q1)
- category (determines pattern)
- target_value, target_unit
- period_start, period_end
- baseline_value
- assumptions
Step 2: Determine Decomposition Pattern
if category == "revenue":
if target > $1M:
pattern = full_revenue_cascade
else:
pattern = simple_revenue_cascade
if category == "activity":
pattern = activity_cascade
if category == "content":
pattern = content_cascade
if category == "efficiency":
pattern = efficiency_decomposition
if category == "retention":
pattern = retention_decomposition
Step 3: Apply Formulas
For each subgoal in pattern:
- Calculate target using formula
- Inherit period from parent (or subdivide)
- Inherit constraints proportionally
- Set parent_goal link
- Generate goal_id
Step 4: Write Subgoal Files
Location: Numbered files inside the parent goal directory.
strategy/goals/active/{goal-dir}/{n}.{name}.md
{n}â sequential number (1, 2, 3…){name}â short kebab-case metric name
Subgoal ID format: {goal-dir}/{n}.{name}
Examples:
ea-revenue-q1/1.launch-readinessea-revenue-q1/2.feb-salesdistribution-q1/1.github-organic
Step 5: Update Parent
Add child_goals list to parent goal.md frontmatter using subgoal IDs:
child_goals:
- ea-revenue-q1/1.launch-readiness
- ea-revenue-q1/2.feb-sales
- ea-revenue-q1/3.mar-sales
Output Structure
Directory Layout
Subgoals are numbered files inside the parent goal directory:
strategy/goals/active/{goal-dir}/
âââ goal.md # Parent goal (created by sys-defining-goals)
âââ 1.{name}.md # First subgoal
âââ 2.{name}.md # Second subgoal
âââ 3.{name}.md # Third subgoal
Subgoal File Format
---
goal_id: {goal-dir}/{n}.{name}
name: {descriptive name}
category: {inherited or derived}
target_value: {calculated}
target_unit: {inherited or derived}
target_direction: {inherited}
period_start: {inherited or subdivided}
period_end: {inherited or subdivided}
period_type: {inherited or derived}
baseline_value: {calculated or inherited}
baseline_source: derived_from_parent
baseline_date: {same as parent}
parent_goal: {goal-dir}
child_goals: []
thread: null
derivation_formula: {formula used}
derivation_assumptions: [{from parent + new}]
ownership_accountable: {derived from level}
ownership_contributors: []
constraints_budget: {proportional allocation}
constraints_headcount: {proportional allocation}
constraints_capacity: {inherited}
confidence_score: {parent à formula_confidence}
status: active
created: {today}
---
# {Subgoal Name}
## Target
{target_value} {unit} by {period_end}
## Derivation
**Parent Goal:** {goal-dir}/goal.md
**Formula:** {formula_description}
### Calculation
{parent_metric}: {parent_value} {rate_name}: {rate_value} Result: {parent_value} {operator} {rate_value} = {target_value}
## Current State
Baseline derived from parent goal derivation.
## Milestones
| Date | Target | Status |
|------|--------|--------|
| {date_1} | {value_1} | pending |
| {date_2} | {value_2} | pending |
## Dependencies
- **Requires:** {goal-dir}
- **Enables:** {child_goals if any}
## Constraints
Allocated from parent:
- **Budget:** {proportional_amount}
- **Headcount:** {proportional_count}
Recursive Decomposition
For deep hierarchies, apply decomposition recursively:
1. Decompose business goal â system goals
2. For each system goal with target > threshold:
âââ Decompose â operational goals
3. For each operational goal with target > threshold:
âââ Decompose â tactical goals
4. Stop when:
âââ Target small enough for single owner
âââ Period is weekly or shorter
âââ No further decomposition formula exists
Decomposition Thresholds
| Category | Level | Continue If |
|---|---|---|
| Revenue | System | target > $500K |
| Revenue | Operational | target > $100K |
| Activity | Operational | count > 100 |
| Activity | Tactical | count > 20/day |
| Content | Operational | pieces > 10 |
Constraint Allocation
When parent has constraints, distribute to children:
Budget Allocation
Method 1: Proportional to target
child_budget = parent_budget à (child_target / total_child_targets)
Method 2: By category weights
outbound_weight: 0.40
inbound_weight: 0.35
content_weight: 0.25
Method 3: Fixed allocation
Some subgoals may have explicit budget assignments
Headcount Allocation
If parent.headcount defined:
- Outreach goals: AE/SDR count
- Content goals: Writer count
- Ops goals: Ops count
Calculate capacity per person:
touches_per_sdr = 100/day
posts_per_writer = 4/month
Workflow
1. READ parent goal
âââ Parse frontmatter and body
âââ Extract target, category, period, constraints
2. DETERMINE decomposition pattern
âââ Match category to pattern
âââ Check thresholds for depth
3. CALCULATE subgoals
âââ Apply formulas for each level
âââ Validate against capacity constraints
4. WRITE subgoal files
âââ For each subgoal:
âââ Generate numbered filename: {n}.{name}.md
âââ Set goal_id: {goal-dir}/{n}.{name}
âââ Calculate target and milestones
âââ Write to strategy/goals/active/{goal-dir}/
5. UPDATE parent goal.md
âââ Add child_goals array to frontmatter
âââ Use subgoal IDs: [{goal-dir}/{n}.{name}]
6. RETURN subgoal list
âââ [{goal_id, target, relationship}]
Validation
Consistency Checks
1. Sum of child targets should derive parent target
Example: If revenue needs $4M pipeline at 25% win rate,
pipeline subgoal should be $4M (not arbitrary)
2. Time periods should align
Children period ⤠parent period
Quarterly parent â Monthly children OK
Monthly parent â Quarterly children NOT OK
3. Constraints should not exceed parent
sum(child_budgets) ⤠parent_budget
Achievability Checks
1. Capacity validation
If outreach target > team_capacity à days:
Flag constraint, adjust or note
2. Historical benchmark
If required rate > best_historical à 1.5:
Flag stretch, note risk
3. Dependency check
If child requires other goal not yet defined:
Note dependency gap
Integration
Upstream
sys-defining-goals: Provides parent goal to decompose
Downstream
sys-activating-goals: Creates threads for leaf goalssys-tracking-goals: Monitors all goals in hierarchy
With RevOps
rop-calibrator: Provides scoring models for conversion assumptionsrop-allocator: May trigger decomposition for resource planning
Boundaries
This skill provides:
- Hierarchical decomposition of goals
- Formula-based subgoal derivation
- Parent-child linking
- Constraint allocation
This skill does NOT:
- Define the initial parent goal (use
sys-defining-goals) - Create execution threads (use
sys-activating-goals) - Track progress (use
sys-tracking-goals) - Override parent constraints
Example
Input
Parent goal directory: strategy/goals/active/arr-q1/goal.md
- goal_id:
arr-q1 - Target: $1,000,000 ARR
- Current: $650,000
- Period: Q1 2026
- Win rate assumption: 25%
Output
strategy/goals/active/arr-q1/
âââ goal.md # Parent (updated with child_goals)
âââ 1.pipeline.md # Target: $1,400,000 (gap $350K / 0.25)
âââ 2.opportunities.md # Target: 28 ($1.4M / $50K)
âââ 3.meetings.md # Target: 93 (28 / 0.30)
âââ 4.outreach.md # Target: 4,650 touches (93 / 0.02)
Parent goal.md updated with:
child_goals: [arr-q1/1.pipeline, arr-q1/2.opportunities, arr-q1/3.meetings, arr-q1/4.outreach]
Each subgoal references parent_goal: arr-q1 in frontmatter.