← ClaudeAtlas

goal-lifecyclelisted

Enforce the FlowGoal state machine — every status transition (draft → active → {waiting_for_user, waiting_for_ci, blocked, achieved, failed, cancelled}) writes both the new lifecycle block to `.flow/goals/<id>.goal.yaml` AND a `goal-evaluation` artifact to the linked decision journal, in a single atomic operation via `bin/flow-goal-record.sh`. Use when any code path mutates `lifecycle.status`, when /flow:goal pause/resume/clear is invoked, when the Stop hook detects a stuck pass-set, or when the evaluator returns a verdict. This skill MUST be consulted because state machines without recorded transitions become liars — a goal in `failed` status with no `goal-evaluation` artifact explaining why is worse than no state machine at all.
synaptiai/synapti-marketplace · ★ 5 · AI & Automation · score 65
Install: claude install-skill synaptiai/synapti-marketplace
# Goal Lifecycle You own the FlowGoal state machine. Every `lifecycle.status` transition is mediated through this skill — no exceptions, no shortcuts, no "I'll just edit the YAML directly." ## Iron Law **No transition without an audit-trail entry. The decision journal MUST receive a `goal-evaluation` artifact (or `goal-created` for the initial draft→active) on every transition. A `lifecycle.last_evaluation` block without a matching journal entry is a bug.** ## State machine ``` ┌────────────────────────────────────────────────────────┐ ▼ │ ┌───────┐ │ │ draft │──┐ │ └───────┘ │ │ ▼ │ ┌──────────┐ │ │ active │────────────────────────────┐ │ └──────────┘ │ │ │ │ │ │ │ │ │ │ │ └─→ waiting_for_ci ────────┤ │ │ │ └────→ waiting_for_user ────────┤ │ │ └───────→ blocked ────────┤ │ │ ▼ │ ├──────────────────────────────→ achieved │ ├─────────────