create-goal
GitHub用于在EvoNexus系统中创建任务层级中的目标、项目或使命。引导用户定义可测量的指标(如数量、货币、百分比),并通过API写入SQLite数据库,支持将工作链接到具体目标以追踪进度。
Trigger Scenarios
Install
npx skills add evolution-foundation/evo-nexus --skill create-goal -g -y
SKILL.md
Frontmatter
{
"name": "create-goal",
"description": "Create a Mission, Project, or Goal (Mission → Project → Goal → Task hierarchy) in EvoNexus. Guides the user through picking a mission, choosing or creating a project, defining a measurable goal with metric_type and target_value. Writes to the SQLite goals tables via POST \/api\/goals. Use when the user says 'create a goal', 'add a mission', 'set a target', 'measure X', 'track Y towards Z', or wants to link work to a measurable outcome."
}
Create Goal
Create a Goal in the Mission → Project → Goal → Task hierarchy.
When to use
Use this skill when the user wants to:
- Declare a new measurable outcome ("100 paying customers by June")
- Add a project under a mission ("Evo AI is a project under our revenue mission")
- Create the mission itself (rare — usually 1 mission)
Step 1: Identify the level
Ask the user:
- Mission — top-level purpose (usually already exists; check with
GET /api/missions). v1 assumes 1 active mission. - Project — major initiative (Evo AI, Evolution Summit, Academy). Creates under a mission.
- Goal — measurable target within a project (100 customers, $50k MRR, ship billing v2).
Start with the most common: a new Goal under an existing Project.
Step 2: Collect fields
For a Goal:
- Title — what's being measured ("100 paying customers")
- Description — context (optional)
- Project — which existing project (fetch list via
GET /api/projects) - metric_type — one of:
count— integer (customers, tickets sold, users)currency— USD or BRL value ($50k MRR)percentage— 0.0 to 100.0 (retention rate)boolean— yes/no (ship billing v2 → target_value=1)
- target_value — the number to reach
- due_date — ISO date (YYYY-MM-DD) — when the goal is expected to hit
- target_metric — short label to display on UI (e.g., "paying customers")
For a Project:
- Slug — unique kebab-case id (e.g.,
evo-ai) - Title — display name
- Description
- Mission — parent mission slug
- workspace_folder_path — optional, points to
workspace/project/<slug>.md
For a Mission:
- Slug, title, description, target_metric, target_value, due_date, status — same pattern
Step 3: Call the API
Use from dashboard.backend.sdk_client import evo — auto-handles URL + auth.
from dashboard.backend.sdk_client import evo
# Goal:
goal = evo.post("/api/goals", {
"slug": "evo-ai-100-customers",
"project_id": project_id,
"title": "100 paying customers by Jun 30",
"metric_type": "count",
"target_metric": "paying customers",
"target_value": 100,
"due_date": "2026-06-30",
})
# Same shape for /api/projects and /api/missions.
Response includes id and slug.
Step 4: Show the user how to link work
Return the slug and show how to attach it to a routine, heartbeat, or ticket:
# routines.yaml
- name: my-routine
goal_id: evo-ai-100-customers
...
# heartbeats.yaml
- id: flux-6h
goal_id: evo-ai-100-customers
...
# ticket
evo.post("/api/tickets", {"title": "...", "goal_id": goal["id"]})
When linked, the agent running the work receives Mission → Project → Goal chain automatically in its prompt.
Step 5: Show the progress view
Direct the user to /goals in the UI to see the new goal in the tree with 0% progress. As tasks complete (status='done'), the SQLite trigger increments current_value automatically. When current_value >= target_value, the goal status flips to achieved.
Notes
- Drift: if
current_valueandSELECT COUNT(*) FROM goal_tasks WHERE status='done'disagree, callPOST /api/goals/<id>/recalculateto rebuild. - Target changes:
PATCH /api/goals/<id>acceptstarget_valueupdates. - Cancelling: set
status='cancelled'to hide from active views without deleting.
Related: .claude/rules/goals.md, .claude/rules/heartbeats.md, .claude/rules/tickets.md.
Version History
- 7f5dd76 Current 2026-07-25 04:52


