AgentSkillsCN

sys-defining-goals

将商业战略(Canvas)或自然语言转化为单一可衡量的目标。对输入进行分类,提取意图,运用公式推导出目标值,并撰写目标文件。本技能不涉及目标的层层分解——如需构建层级目标,可使用sys-decomposing-goals技能。

SKILL.md
--- frontmatter
name: sys-defining-goals
description: 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.
triggers: define goal, create goal, set target, establish objective
allowed-tools: Read, Write, Glob, Grep
license: Complete terms in LICENSE.txt

Goal Defining

Transform a single strategic intent into a measurable, actionable goal file.

Responsibility

Define ONE goal. For goal hierarchies, invoke sys-decomposing-goals after.

Quick Start

  1. Classify input (canvas, natural language, hybrid)
  2. Extract strategic intent
  3. Identify canvas gaps (prompt if blocking)
  4. Derive target using formulas
  5. Create goal directory and write strategy/goals/active/{goal-dir}/goal.md

Input Classification

Canvas Input

Indicators:

  • References strategy/canvas/*.md files
  • Contains structured frontmatter
  • Uses canvas terminology (mode, segments, GTM)
  • Contains metric targets from canvas

Action: Read referenced files → extract values → derive target

Natural Language Input

Indicators:

  • Conversational phrasing ("I want to...", "We need to...")
  • Vague quantifiers ("more", "better", "increase")
  • Missing time bounds or baselines
  • No canvas file references

Action: Extract intent → map to category → ask clarifying questions → derive target

Hybrid Input

Indicators:

  • References canvas with verbal context
  • Partial data with narrative
  • Mode awareness with conversational goals

Action: Extract structured first → supplement with intent

Intent Extraction

From Natural Language

User SaysIntentCategory
"grow revenue"increase_arrrevenue
"more customers"acquire_customersrevenue
"book more meetings"increase_meetingsactivity
"generate leads"increase_mqlsactivity
"publish more content"increase_contentcontent
"speed up sales"reduce_cycle_timeefficiency
"reduce CAC"optimize_cacefficiency
"keep customers"improve_retentionretention

From Canvas

SectionExtractable Data
00.mode.mdMetric framework (MRR vs ARR)
04.segments.mdICP-specific targets
08.pricing.mdARPU for revenue calculations
13.metrics.mdCurrent baseline values
15.gtm.mdChannel-specific capacity

Canvas Dependencies

Required (blocking if missing)

FilePurpose
strategy/canvas/00.mode.mdDetermines metric framework
strategy/canvas/13.metrics.mdProvides baseline values

Recommended (use defaults if missing)

FileDefault If Missing
strategy/canvas/08.pricing.md$50K avg deal
strategy/canvas/07.uvp.md25% win rate
strategy/canvas/15.gtm.mdEqual channel distribution

Target Derivation

Revenue Targets

Pipeline from revenue:

  • Formula: target_revenue / win_rate
  • Default win_rate: 0.25
  • Example: $1M / 0.25 = $4M pipeline

Meetings from pipeline:

  • Formula: pipeline / (opp_rate × avg_deal_size)
  • Default opp_rate: 0.30, avg_deal: $50K
  • Example: $4M / (0.30 × $50K) = 267 meetings

Activity Targets

Outreach from meetings:

  • Formula: meetings / meeting_rate
  • Default meeting_rate: 0.02
  • Example: 267 / 0.02 = 13,350 touches

MQLs from SQLs:

  • Formula: sql_target / mql_to_sql_rate
  • Default mql_to_sql: 0.40

Efficiency Targets

Conversion improvement:

  • Formula: current_rate + improvement_target
  • Default improvement: 5 percentage points

Cycle time reduction:

  • Formula: current_days × (1 - reduction_pct)
  • Default reduction: 15%

Output

Directory Structure

Each goal gets its own directory under strategy/goals/active/:

code
strategy/goals/active/{goal-dir}/
└── goal.md          # Parent goal definition

Subgoals (created by sys-decomposing-goals) are added as numbered files in the same directory.

Goal Directory and ID Format

{short-name}-{period}

The goal_id in frontmatter matches the directory name. Use concise, descriptive names.

Examples:

  • ea-revenue-q1strategy/goals/active/ea-revenue-q1/goal.md
  • distribution-q1strategy/goals/active/distribution-q1/goal.md
  • conversion-q1strategy/goals/active/conversion-q1/goal.md

File Structure

markdown
---
goal_id: {goal_id}
name: {human readable name}
category: {revenue|activity|content|efficiency|retention}
target_value: {number}
target_unit: {currency|count|percentage|days}
target_direction: {maximize|minimize}
period_start: {YYYY-MM-DD}
period_end: {YYYY-MM-DD}
period_type: {quarterly|monthly|weekly|annual}
baseline_value: {number}
baseline_source: {file path or "user_provided"}
baseline_date: {YYYY-MM-DD}
parent_goal: {goal_id|null}
child_goals: []
thread: null
derivation_formula: {formula name}
derivation_assumptions: [{name}: {value}]
ownership_accountable: {role}
ownership_contributors: [{roles}]
constraints_budget: {number|null}
constraints_headcount: {number|null}
constraints_capacity: {description|null}
confidence_score: {0.0-1.0}
status: active
created: {YYYY-MM-DD}
---

# {Goal Name}

## Target

{target_value} {unit} by {period_end}

## Current State

{baseline_value} {unit} as of {baseline_date}

## Gap Analysis

- **Absolute Gap:** {target - baseline} {unit}
- **Relative Gap:** {gap_percentage}%
- **Required Pace:** {daily_required} {unit}/day

## Derivation

**Source:** {parent_goal or "Direct input"}
**Formula:** {formula_description}

### Assumptions

| Assumption | Value | Source |
|------------|-------|--------|
| {name} | {value} | {canvas section or default} |

## Milestones

| Date | Target | Status |
|------|--------|--------|
| {milestone_1_date} | {value} | pending |
| {milestone_2_date} | {value} | pending |
| {milestone_3_date} | {value} | pending |

## Risk Factors

- {risk_1}
- {risk_2}

## Constraints

- **Budget:** {amount or "None"}
- **Headcount:** {count or "None"}
- **Capacity:** {description or "None"}

Milestone Generation

Linear Distribution

Even split across period:

  • Formula: baseline + (gap × milestone_fraction)
  • Use when: Steady-state activity

Front-Loaded

More progress early:

  • Distribution: [40%, 30%, 30%]
  • Use when: Building momentum

Back-Loaded

Acceleration expected:

  • Distribution: [20%, 30%, 50%]
  • Use when: Ramp-up required

Workflow

code
1. RECEIVE input (canvas reference, NL, or hybrid)

2. CLASSIFY input type
   └── Canvas: Read files, extract structured values
   └── NL: Extract intent, ask clarifying questions
   └── Hybrid: Extract structured first, supplement

3. CHECK canvas dependencies
   └── Required missing: STOP, prompt user
   └── Recommended missing: Use defaults, flag

4. DERIVE target
   └── Apply appropriate formula
   └── Record assumptions used

5. CALCULATE milestones
   └── Determine distribution pattern
   └── Generate milestone dates and values

6. WRITE goal file
   └── Create directory: strategy/goals/active/{goal-dir}/
   └── Write: strategy/goals/active/{goal-dir}/goal.md
   └── Format: Frontmatter + prose (no inline YAML)

7. UPDATE index
   └── Add to strategy/goals/index.md

8. RETURN goal_id for downstream use

Integration

Upstream

  • Human input (conversational or structured)
  • Canvas files for baseline data

Downstream

  • sys-decomposing-goals: Break into subgoals
  • sys-activating-goals: Create execution thread
  • sys-tracking-goals: Monitor progress

Boundaries

This skill provides:

  • Input classification
  • Intent extraction
  • Canvas gap detection
  • Single goal derivation
  • Goal file generation

This skill does NOT:

  • Decompose goals into subgoals (use sys-decomposing-goals)
  • Create execution threads (use sys-activating-goals)
  • Track progress (use sys-tracking-goals)
  • Modify canvas sections

Examples

Example 1: Canvas Input

Input:

code
Set Q1 revenue goal based on strategy/canvas/13.metrics.md

Process:

  1. Read 13.metrics.md → current_arr: $650K
  2. Read 00.mode.md → VENTURE mode, ARR focus
  3. Apply 30% growth default → target: $845K
  4. Create directory and write goal file

Output:

code
strategy/goals/active/arr-q1/
└── goal.md

Example 2: Natural Language Input

Input:

code
I want to hit $1M ARR by end of Q1

Process:

  1. Extract: intent=target_arr, value=$1M, period=Q1
  2. Ask: "What's your current ARR baseline?"
  3. User: "$650K"
  4. Calculate gap: $350K (35%)
  5. Create directory and write goal file

Output:

code
strategy/goals/active/arr-q1/
└── goal.md

Example 3: Hybrid Input

Input:

code
Based on our bootstrap mode and current metrics,
I want to add 50 new customers this quarter

Process:

  1. Read 00.mode.md → BOOTSTRAP confirmed
  2. Read 13.metrics.md → current_customers: 120
  3. Target: 170 customers (+50)
  4. Create directory and write goal file

Output:

code
strategy/goals/active/customers-q1/
└── goal.md