sys-decomposing-goals
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.
More from bellabe/lean-os
fnd.r-scoring-problems
Scores problem severity, frequency, and willingness to pay. Use when ranking problems, validating problem-solution fit, assessing pain intensity, or prioritizing which problems to solve.
5rsn-creating-ideas
Generates novel ideas and creative solutions to problems. Applies lateral thinking, SCAMPER, first principles, and ideation frameworks to break conventional patterns. Audits ideas for originality, feasibility, and creative quality. Fixes creative blocks and strengthens weak concepts. Use when brainstorming, stuck on a problem, need fresh perspectives, or breaking conventional thinking. Triggers on "brainstorm", "generate ideas", "think creatively", "stuck", "fresh perspective".
5rsn-reasoning-problems
Reasons through problems using six cognitive modes. Applies causal (execute goals), abductive (explain observations), inductive (find patterns), analogical (transfer from similar), dialectical (resolve tensions), and counterfactual (evaluate alternatives) thinking. Use when planning, diagnosing, finding patterns, evaluating trade-offs, or exploring what-ifs. Triggers on "why did", "what if", "how should", "analyze this", "figure out".
5sys-defining-goals
Transforms business strategy (canvas) or natural language into a single measurable goal. Classifies input, extracts intent, derives target using formulas, writes goal file. Does NOT decompose - use sys-decomposing-goals for hierarchy.
5sys-activating-goals
Creates execution threads for goals using the 6-stage causal flow pattern. Links threads to goals, initializes 1-input.md with goal context, and routes to appropriate agent for execution. Transforms defined goals into actionable work.
5fnd-validating-gates
Validates phase transition requirements for Canvas population. Checks G0-G4 gates to determine if prerequisites are met before advancing phases. Use when checking readiness, validating gates, or assessing Canvas completion status.
5