Goal Setter
Transform vague or precise objectives into structured, actionable goals.
Operating Model
Goals are the primary operating mode for LeanOS. All work should be goal-driven.
PROACTIVE (primary): Goal → Plan → Threads → Artifacts → Learning → Canvas
REACTIVE (fallback): Signal → Thread → Link to Goal (or create new goal)
Goal-setter reads:
- Canvas (
strategy/canvas/*) - strategic context, assumptions, constraints - Existing goals (
strategy/goals/active/*) - avoid conflicts, find linkages
Goal-setter does NOT read:
- Threads (execution output, not input)
- Artifacts (deliverables, not context)
Canvas Reference
Goal-setter uses Canvas sections for context, constraints, and success criteria alignment.
Canvas Sections (15 files)
| Section | Purpose | Goal-setter Use |
|---|---|---|
00.mode.md | VENTURE/BOOTSTRAP mode | Required - determines metrics, decomposition |
01.context.md | Product, market context (KBOS) | Goal alignment check |
02.constraints.md | Budget, time, resources | Goal constraints |
03.opportunity.md | TAM/SAM/SOM, timing | Business goal sizing |
04.segments.md | Customer segments | Target audience for goals |
05.problem.md | Top 3 problems | Problem-focused goals |
06.competitive.md | Competitors, positioning | Competitive goals |
07.uvp.md | Unique Value Proposition | Messaging alignment |
08.unfair.md | Unfair advantages, moats | Strategic goals |
09.solution.md | MVP features | Product goals |
10.assumptions.md | Hypotheses, validation status | Key - link goals to assumptions |
11.channels.md | Acquisition channels | Channel strategy |
12.revenue.md | Revenue model, tiers | Revenue goal targets |
13.metrics.md | Key metrics, targets | Success criteria source |
14.costs.md | Cost structure, burn | Profitability constraints |
15.gtm.md | GTM strategy | Marketing/sales goals |
Canvas Reading by Goal Type
business goals:
Required: 00-mode, 11-pricing, 12-costs, 13-metrics
Context: 01-context, 03-opportunity, 04-segments
Link to: 10-assumptions (revenue/growth hypotheses)
brand goals:
Required: 01-context, 07-uvp
Context: 04-segments, 14-growth
Link to: 10-assumptions (audience/positioning hypotheses)
product goals:
Required: 09-solution, 05-problem
Context: 01-context, 02-constraints
Link to: 10-assumptions (product/market fit hypotheses)
learning goals:
Context: 01-context (what skills needed)
Link to: 10-assumptions (capability hypotheses)
Linking Goals to Canvas Assumptions
Every goal should link to Canvas assumptions (10.assumptions.md):
## Canvas Links
**Validates assumptions:**
- A3: "Enterprise customers will pay $500/month" (10.assumptions.md)
- A7: "Content marketing drives qualified leads" (10.assumptions.md)
**Informs sections:**
- 13.metrics.md (success updates metrics)
- 12.revenue.md (if revenue assumption validated)
When goal completes:
- Update linked assumption status in
10.assumptions.md - Update relevant Canvas section if assumption validated/invalidated
- Log learning in goal file
Type Signature
GoalSetter : Objective × CanvasContext × Mode × ExistingGoals → Goal
Where:
Objective : string (user's stated intent)
CanvasContext : strategy/canvas/* (beliefs, constraints, segments)
Mode : VENTURE | BOOTSTRAP (from strategy/canvas/00.mode.md)
ExistingGoals : strategy/goals/active/* (avoid conflicts)
Goal : Objective × SuccessCriteria × Plan × Autonomy × State
Plan : [Subgoal] × [Milestone] × [Dependency]
Subgoal : Objective × SuccessCriterion × ThreadType
When to Use
- User expresses intent: "I want to...", "Goal is to...", "Need to achieve..."
- Starting a new initiative without clear structure
- Breaking down a large objective into actionable pieces
- Reviewing/refining existing goals
Process
1. Capture Objective
Extract from user input:
- What: The desired outcome
- Why: Motivation/context (optional but valuable)
- When: Deadline or timeline (required)
- Constraints: Budget, resources, dependencies
If vague, ask:
What does success look like specifically?
By when do you need this achieved?
What resources/constraints should I know about?
2. Determine Goal Type
Infer from context or ask:
| Type | Signals | Example |
|---|---|---|
business | Revenue, customers, growth, market | "Reach $50K MRR" |
brand | Followers, reach, authority, audience | "Build LinkedIn presence" |
product | Features, launches, technical milestones | "Ship v2.0" |
learning | Skills, certifications, knowledge | "Learn Rust" |
custom | Anything else | User-defined |
3. Apply Mode (Business Goals)
For business type goals, read mode from strategy/canvas/00.mode.md:
| Aspect | VENTURE | BOOTSTRAP |
|---|---|---|
| Primary metrics | ARR, MAU, market share, runway | MRR, profit, cash flow, payback |
| Success focus | Growth rate, scale | Profitability, sustainability |
| Decomposition | Users → Activation → Monetization | Revenue → Margin → Reinvest |
| Timeline | 7-10 year exit horizon | Profitable in 3 months |
| Risk tolerance | Higher (burn for growth) | Lower (preserve cash) |
Mode-specific defaults:
VENTURE mode:
Success criteria emphasize:
- ARR growth rate (>100% YoY)
- User/customer acquisition
- Market share expansion
- Acceptable burn for growth
Subgoal order: Acquire → Activate → Retain → Monetize
Autonomy default: hybrid (speed matters, but stakes high)
BOOTSTRAP mode:
Success criteria emphasize:
- MRR and monthly profit
- Positive cash flow
- LTV:CAC > 5:1
- CAC payback < 6 months
Subgoal order: First revenue → Unit economics → Scale
Autonomy default: ask (cash preservation critical)
Non-business goals: Mode has minimal impact on brand, product, learning goals.
4. Define Success Criteria
Transform objective into measurable criteria:
Good criteria:
- Specific number or state
- Independently verifiable
- Time-bound (inherits from goal deadline)
Examples:
Objective: "Grow revenue"
Criteria:
- [ ] MRR >= $50,000
- [ ] Customer count >= 10
- [ ] Net revenue retention >= 100%
Objective: "Build LinkedIn presence"
Criteria:
- [ ] Followers >= 10,000
- [ ] Average post impressions >= 5,000
- [ ] 2+ inbound leads/month from content
5. Decompose into Plan
Subgoals - intermediate objectives that lead to main goal:
- Each subgoal has its own success criterion
- Identify dependencies between subgoals
- Link to thread types (business, sales, marketing, engineering)
Milestones - checkpoints with dates:
- Evenly distributed toward deadline
- Each milestone = measurable progress marker
Decomposition reasoning:
Goal: Achieve X by deadline D
↓
Ask: What must be true for X to happen?
↓
Identify 3-5 necessary conditions (subgoals)
↓
For each subgoal: What threads/actions achieve this?
↓
Order by dependencies
↓
Set milestones at 25%, 50%, 75%, 100% progress points
6. Set Autonomy Level
| Mode | When to Use | Behavior |
|---|---|---|
auto | Low-risk, well-understood domain | AI creates threads and executes without asking |
ask | High-risk, novel, or user preference | AI recommends, waits for approval |
hybrid | Default | Auto for impact <0.5, ask for impact ≥0.5 |
Default: hybrid unless user specifies otherwise.
7. Initialize State
Create initial state section:
- All metrics start at current values (0 or baseline)
- Gap = target - current
- Trend = "→" (neutral, no data yet)
- Trajectory = "Unknown" (insufficient data)
Output
Create file: strategy/goals/active/{goal-id}.md
Goal File Schema
---
id: g-{kebab-case-short-name}
type: business | brand | produc