Move one feature through the verified loop.
Generate a spec, validate it, implement one task packet, then test, review, and sync completion with proof.
1. Install CafeKit#
npx @haposoft/cafekit
If the idea is not ready for specs, use /hapo:brainstorm first to clarify scope and architecture. The main delivery run starts with specs.
2. Create a spec#
/hapo:specs Build a meeting transcript extension with AI summaries
CafeKit creates:
specs/<feature>/
├── spec.json
├── requirements.md
├── research.md
├── design.md
└── tasks/task-R0-01-*.md
3. Validate before code#
/hapo:specs --validate <feature>
Validation checks that requirements, design, task files, task_files, and task_registry agree.
4. Implement one task packet#
/hapo:develop <feature> tasks/task-R0-01-project-scaffold.md
Task-by-task work is the safest default. It keeps diffs smaller and makes evidence easier to verify.
5. Test and review#
/hapo:test --full
/hapo:code-review --pending
NO_TESTS is not success. A task should not become done until implementation, evidence, tests, review, and state sync all agree.
6. Sync after proof#
/hapo:sync <feature> task-R0-01-project-scaffold.md done
This updates spec.json.task_registry and the matching task markdown. If state looks inconsistent, run /hapo:sync audit <feature> instead of guessing.
Read Core workflow for the full reasoning behind each gate.
Task files and scope_lock define what may change.
Exact commands and runtime proof must be fresh.
Critical findings block task completion.
spec.json and markdown state move together.