clone

a hermes agent plugin for openspec: tools for spec workflows and a dashboard tab for browsing changes and specs

main
hermes-openspec / docs / lifecycle.md
lifecycle.md 2.0K rendered
1# Change Lifecycle23Every change moves through the same states. States are derived from task4checkboxes in `tasks.md` — there is no explicit state field.56```mermaid7stateDiagram-v28 [*] --> Idea: idea_create9 Idea --> Idea: idea_enrich10 Idea --> Draft: idea_promote11 [*] --> Draft: change_create12 Draft --> Todo: change_promote13 Todo --> InProgress: task_set_status (first task done)14 InProgress --> Done: task_set_status (all tasks done)15 Done --> Archived: change_archive16 Archived --> Done: change_unarchive17```1819| State | Meaning | Where it lives |20|---|---|---|21| Idea | Raw or enriched idea, not yet a change | `openspec/ideas/<slug>.md` |22| Draft | Change scaffold exists but lacks tasks or spec placeholder | `openspec/changes/<change>/` |23| Todo | Tasks and spec placeholder exist — ready to implement | `openspec/changes/<change>/` |24| In progress | At least one task done, at least one remaining | `openspec/changes/<change>/` |25| Done | All tasks done | `openspec/changes/<change>/` |26| Archived | Completed, moved out of active board | `openspec/changes/archive/<change>/` |2728## Artifact readiness2930OpenSpec derives readiness from artifact dependencies. `openspec_status`31surfaces this so you know when a change is safe to promote or archive.3233```mermaid34flowchart LR35 P[Proposal] --> S[Specs]36 P --> D[Design]37 S --> T[Tasks]38 D --> T39 T --> A[Apply]40```4142- **Proposal** is always required. A change without it is invalid.43- **Specs** define what the change does — required before tasks make sense.44- **Design** explains how — optional for small changes, required for45 non-trivial ones.46- **Tasks** break the implementation into checklist items.47- **Apply** is the implementation guide returned by48 `openspec_instructions(artifact=apply)` — what a subagent follows to write49 the code.5051`openspec_change_promote` requires tasks + spec placeholder. It does not52require design — that's a judgment call for the orchestrator.5354---5556← [Back to overview](index.md) · [Next: Tool reference →](tool-reference.md)