Marketplace goal-setter

Transform objectives into structured goals with plans. Use when user declares intent ("I want to...", "Goal is to...", "Achieve X by Y"). Decomposes into subgoals, milestones, success criteria.

install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/bellabe/goal-setter" ~/.claude/skills/aiskillstore-marketplace-goal-setter && rm -rf "$T"
manifest: skills/bellabe/goal-setter/SKILL.md
source content

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)

SectionPurposeGoal-setter Use
00.mode.md
VENTURE/BOOTSTRAP modeRequired - determines metrics, decomposition
01.context.md
Product, market context (KBOS)Goal alignment check
02.constraints.md
Budget, time, resourcesGoal constraints
03.opportunity.md
TAM/SAM/SOM, timingBusiness goal sizing
04.segments.md
Customer segmentsTarget audience for goals
05.problem.md
Top 3 problemsProblem-focused goals
06.competitive.md
Competitors, positioningCompetitive goals
07.uvp.md
Unique Value PropositionMessaging alignment
08.unfair.md
Unfair advantages, moatsStrategic goals
09.solution.md
MVP featuresProduct goals
10.assumptions.md
Hypotheses, validation statusKey - link goals to assumptions
11.channels.md
Acquisition channelsChannel strategy
12.revenue.md
Revenue model, tiersRevenue goal targets
13.metrics.md
Key metrics, targetsSuccess criteria source
14.costs.md
Cost structure, burnProfitability constraints
15.gtm.md
GTM strategyMarketing/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:

  1. Update linked assumption status in
    10.assumptions.md
  2. Update relevant Canvas section if assumption validated/invalidated
  3. 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:

TypeSignalsExample
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 elseUser-defined

3. Apply Mode (Business Goals)

For

business
type goals, read mode from
strategy/canvas/00.mode.md
:

AspectVENTUREBOOTSTRAP
Primary metricsARR, MAU, market share, runwayMRR, profit, cash flow, payback
Success focusGrowth rate, scaleProfitability, sustainability
DecompositionUsers → Activation → MonetizationRevenue → Margin → Reinvest
Timeline7-10 year exit horizonProfitable in 3 months
Risk toleranceHigher (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

ModeWhen to UseBehavior
auto
Low-risk, well-understood domainAI creates threads and executes without asking
ask
High-risk, novel, or user preferenceAI recommends, waits for approval
hybrid
DefaultAuto 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 | product | learning | custom
mode: VENTURE | BOOTSTRAP  # For business goals only
status: active
autonomy: auto | ask | hybrid
created: {YYYY-MM-DD}
deadline: {YYYY-MM-DD}
canvas_refs: ["{section}.md", ...]  # Optional Canvas links
---

# {Goal Title}

## Objective
{Single sentence describing desired outcome}

## Success Criteria
- [ ] {Measurable criterion 1}
- [ ] {Measurable criterion 2}
- [ ] {Measurable criterion 3}

## Plan

### Subgoals

#### SG1: {Subgoal Title}
- **Success:** {Specific criterion}
- **Depends on:** {None | SG#}
- **Thread type:** {business | sales | marketing | engineering}
- **Threads:** {None yet | thread-id, ...}
- **Status:** pending | in_progress | completed

#### SG2: {Subgoal Title}
- **Success:** {Specific criterion}
- **Depends on:** SG1
- **Thread type:** {type}
- **Threads:** {None yet}
- **Status:** pending

### Milestones
- [ ] M1: {25% progress marker} (by {date})
- [ ] M2: {50% progress marker} (by {date})
- [ ] M3: {75% progress marker} (by {date})
- [ ] M4: {Goal achieved} (by {deadline})

### Dependencies
{External dependencies, blockers, or prerequisites}

## State

### Metrics
| Metric | Current | Target | Gap | Trend |
|--------|---------|--------|-----|-------|
| {Primary metric} | {value} | {value} | {value} | → |
| {Secondary metric} | {value} | {value} | {value} | → |

### Execution
- **Active threads:** 0
- **Completed threads:** 0
- **Blocked:** 0

### Trajectory
- **On track:** Unknown (insufficient data)
- **Projected completion:** TBD
- **Risk level:** Low

## Canvas Links

**Validates assumptions:**
- {assumption-id}: "{assumption text}" (10.assumptions.md)

**Informs sections:**
- {section}.md (what updates on success)

## Log
- {created date}: Goal created

Integration

With Canvas

  • Read relevant sections before creating goal (see Canvas Reference)
  • Reference sections in
    canvas_refs
    frontmatter
  • Link to assumptions in Canvas Links section
  • Goal completion triggers Canvas updates (assumptions, metrics)

With Threads

  • Subgoals spawn threads when activated
  • Thread completion updates subgoal status
  • Thread Stage 6 (Learning) feeds back to goal state

With Reasoning Gateway

  • Complex decomposition may route through reasoning modes
  • Causal: For operational goals with clear cause-effect
  • Analogical: For novel goals ("this is like...")
  • Dialectical: For goals with competing priorities

Examples

Business Goal (BOOTSTRAP)

User: "I want to hit $50K MRR by end of Q2"

Canvas read:
- 00-mode: BOOTSTRAP
- 11-pricing: $500/mo average, 3 tiers
- 12-costs: $5K/mo burn, need profitability
- 13-metrics: Current MRR $8K, 16 customers
- 04-segments: SMB primary, Enterprise secondary

Goal created:
- id: g-mrr-50k
- type: business
- mode: BOOTSTRAP
- deadline: 2025-06-30
- canvas_refs: [00-mode, 11-pricing, 12-costs, 13-metrics]
- Success criteria: MRR >= $50K, Profit margin >= 30%, CAC payback < 6 months
- Subgoals (revenue-first order):
  - SG1: Close first 3 paying customers
  - SG2: Validate unit economics (LTV:CAC > 5:1)
  - SG3: Scale acquisition (pipeline of 20 leads)
- Canvas Links:
  - A2: "SMB customers convert at 5%" (validates)
  - A5: "$500/mo price point acceptable" (validates)
- Autonomy: ask (cash preservation)

Business Goal (VENTURE)

User: "I want to hit $500K ARR by end of year"

Canvas read:
- 00-mode: VENTURE
- 03-opportunity: TAM $2B, growing 40% YoY
- 13-metrics: Current ARR $50K, 500 MAU
- 14-growth: PLG primary, content secondary

Goal created:
- id: g-arr-500k
- type: business
- mode: VENTURE
- deadline: 2025-12-31
- canvas_refs: [00-mode, 03-opportunity, 13-metrics, 14-growth]
- Success criteria: ARR >= $500K, MAU >= 10K, Growth >= 100% YoY
- Subgoals (growth-first order):
  - SG1: Acquire 5K users (product-led)
  - SG2: Activate 50% to active usage
  - SG3: Convert 5% to paid
- Canvas Links:
  - A1: "PLG drives user acquisition" (validates)
  - A4: "5% free-to-paid conversion achievable" (validates)
- Autonomy: hybrid (speed matters)

Brand Goal

User: "Build my LinkedIn presence for thought leadership"

Canvas read:
- 01-context: B2B SaaS, technical audience
- 07-uvp: "AI-native operations for startups"
- 04-segments: Technical founders, solo operators
- 14-growth: Content marketing as key channel

Goal created:
- id: g-linkedin-authority
- type: brand
- deadline: 2025-06-30 (asked user)
- canvas_refs: [01-context, 07-uvp, 04-segments, 14-growth]
- Success criteria: 10K followers, 5K avg impressions, 2 leads/month
- Subgoals:
  - SG1: Define content pillars (aligned with 07-uvp)
  - SG2: Establish posting cadence (3x/week)
  - SG3: Build engagement network (04-segments audience)
- Canvas Links:
  - A8: "Content drives inbound leads" (validates)

Product Goal

User: "Ship the mobile app"

Canvas read:
- 09-solution: MVP = core workflow + notifications
- 05-problem: "Users need mobile access to approve decisions"
- 01-context: Web app exists, mobile requested by 60% of users
- 02-constraints: 2 developers, Q1 deadline

Goal created:
- id: g-mobile-app-launch
- type: product
- deadline: 2025-03-31 (asked user)
- canvas_refs: [09-solution, 05-problem, 01-context, 02-constraints]
- Success criteria: App in stores, 100 beta users, <1% crash rate
- Subgoals:
  - SG1: Core features complete (09-solution scope)
  - SG2: Beta testing (recruit from existing users)
  - SG3: Store submission
- Canvas Links:
  - A6: "Mobile increases engagement 2x" (validates)

Constraints

Must Have

  • Clear success criteria (measurable)
  • Deadline
  • At least 2 subgoals
  • Autonomy level set

Must Ask If Missing

  • Deadline not specified
  • Success criteria ambiguous
  • Type unclear from context

Must NOT

  • Create goals without user confirmation of structure
  • Set autonomy to
    auto
    for high-impact goals without asking
  • Create duplicate goals (check existing first)

Error Handling

Objective too vague:

Ask: "What does '{objective}' look like when achieved?
     Give me 2-3 specific outcomes I can measure."

No deadline:

Ask: "By when do you want to achieve this?
     Options: specific date, relative (3 months), or milestone-based"

Conflicting with existing goal:

Flag: "This overlaps with existing goal '{goal-id}'.
      Should I: (1) Merge as subgoal, (2) Replace existing, (3) Keep both?"