Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/evolution-foundation-create-goal/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -23% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 62% | 0% |
Create a Goal in the Mission → Project → Goal → Task hierarchy.
Use this skill when the user wants to:
Ask the user:
GET /api/missions). v1 assumes 1 active mission.Start with the most common: a new Goal under an existing Project.
For a Goal:
GET /api/projects)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)For a Project:
evo-ai)workspace/project/<slug>.mdFor a Mission:
Use from dashboard.backend.sdk_client import evo — auto-handles URL + auth.
pythonfrom 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.
Return the slug and show how to attach it to a routine, heartbeat, or ticket:
yaml# 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.
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.
current_value and SELECT COUNT(*) FROM goal_tasks WHERE status='done' disagree, call POST /api/goals/<id>/recalculate to rebuild.PATCH /api/goals/<id> accepts target_value updates.status='cancelled' to hide from active views without deleting.Related: .claude/rules/goals.md, .claude/rules/heartbeats.md, .claude/rules/tickets.md.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 7,411 | 7,105 | -4% | 1 | 1 | 0% | 1,326 | 1,432 | +8% | 0 | 0 | — |
case-02 | fail→fail | 7,880 | 4,822 | -39% | 1 | 1 | 0% | 1,214 | 1,275 | +5% | 0 | 0 | — |
case-03 | fail→fail | 8,764 | 6,268 | -28% | 1 | 1 | 0% | 1,523 | 1,397 | -8% | 0 | 0 | — |
case-04 | fail→pass | 7,035 | 1,944 | -72% | 1 | 1 | 0% | 1,122 | 1,336 | +19% | 0 | 0 | — |
case-05 | fail→pass | 9,633 | 2,471 | -74% | 1 | 1 | 0% | 1,809 | 1,398 | -23% | 0 | 0 | — |
case-06 | fail→pass | 12,122 | 6,265 | -48% | 1 | 1 | 0% | 2,122 | 2,156 | +2% | 0 | 0 | — |
case-07 | fail→pass | 8,054 | 3,557 | -56% | 1 | 1 | 0% | 1,362 | 1,590 | +17% | 0 | 0 | — |
case-08 | pass→pass | 8,623 | 10,469 | +21% | 1 | 1 | 0% | 1,558 | 2,462 | +58% | 0 | 0 | — |
case-09 | pass→pass | 9,050 | 4,729 | -48% | 1 | 1 | 0% | 1,703 | 1,873 | +10% | 0 | 0 | — |
case-10 | fail→pass | 6,261 | 3,656 | -42% | 1 | 1 | 0% | 970 | 1,569 | +62% | 0 | 0 | — |
case-11 | fail→pass | 11,371 | 4,337 | -62% | 1 | 1 | 0% | 1,819 | 1,775 | -2% | 0 | 0 | — |
case-12 | fail→pass | 12,817 | 2,805 | -78% | 1 | 1 | 0% | 2,128 | 1,446 | -32% | 0 | 0 | — |
case-13 | fail→pass | 14,515 | 7,784 | -46% | 1 | 1 | 0% | 2,316 | 2,372 | +2% | 0 | 0 | — |
case-14 | fail→pass | 11,804 | 2,417 | -80% | 1 | 1 | 0% | 2,004 | 1,476 | -26% | 0 | 0 | — |
case-15 | fail→pass | 5,465 | 2,248 | -59% | 1 | 1 | 0% | 903 | 1,399 | +55% | 0 | 0 | — |
case-16 | pass→pass | 10,956 | 3,876 | -65% | 1 | 1 | 0% | 1,752 | 1,652 | -6% | 0 | 0 | — |
case-17 | fail→pass | 20,109 | 1,452 | -93% | 1 | 1 | 0% | 1,714 | 1,196 | -30% | 0 | 0 | — |
case-18 | fail→pass | 15,043 | 8,270 | -45% | 1 | 1 | 0% | 2,577 | 2,361 | -8% | 0 | 0 | — |
case-19 | fail→pass | 5,921 | 1,360 | -77% | 1 | 1 | 0% | 815 | 1,213 | +49% | 0 | 0 | — |
case-20 | pass→pass | 9,188 | 2,438 | -73% | 1 | 1 | 0% | 1,428 | 1,452 | +2% | 0 | 0 | — |
case-21 | pass→pass | 7,999 | 2,271 | -72% | 1 | 1 | 0% | 1,433 | 1,445 | +1% | 0 | 0 | — |
case-22 | pass→pass | 8,239 | 4,553 | -45% | 1 | 1 | 0% | 1,431 | 1,742 | +22% | 0 | 0 | — |
case-23 | pass→pass | 5,403 | 4,645 | -14% | 1 | 1 | 0% | 918 | 1,800 | +96% | 0 | 0 | — |
case-24 | pass→pass | 8,717 | 4,739 | -46% | 1 | 1 | 0% | 1,587 | 1,797 | +13% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted, and 21 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +54 percentage points is the difference between those two pass rates over the 21 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.