Intent becomes code through a reviewed contract.
Scope at C1, review findings at C2, implement one flat task, prove it, then let the user close at C3.
Specify
Create requirements, research, design, task packets, and validation gates before code starts.
Lock scope
Use the accepted C1/C2 decisions, plan, and flat task as the implementation contract.
Build
Implement one approved task at a time after task-aware inspection of real entrypoints.
Verify
Run exact commands, prove reachability, and reject fake green results such as zero-test passes.
Review
Check spec compliance, code quality, edge cases, security, and regression risk before closeout.
Sync
Update task Status and its inline Receipt only after proof, or audit drift before continuing.
Main path#
/cf:brainstorm # optional when intent or architecture is unresolved
-> /cf:specs # C1 -> plan.md + flat tasks -> adversarial review -> C2
-> stop planning
-> /cf:develop # new explicit invocation; one unblocked task at a time
-> /cf:test # smallest adequate real proof
-> /cf:code-review # correctness, security, regressions, contract drift
-> /cf:sync # observed Status and inline Receipt only
-> C3 # user completion decision
Chat is not the source of truth. New work uses specs/<feature>/plan.md and flat task-NN-*.md files.
Contract and execution#
plan.md records C1 scope, exclusions, acceptance criteria, dependencies, and C2 decisions. Each task owns one outcome, one Status:, explicit ownership, dependencies, proof command, and a final inline ## Receipt.
Develop scouts real entrypoints and callers before mutation. Runtime-facing work is incomplete until it is reachable from the actual route, command, UI mount, worker, service, or API boundary.
Do not silently replace named technologies or runtime choices. A needed scope change returns to the plan and user decision.
Proof stack#
Plan, accepted decisions, and active task agree on scope.
Runtime-facing work is wired into a real entrypoint or caller.
The task records commands, outcomes, and runtime or artifact proof.
Task Status and inline Receipt are synchronized after verification.
A green command is not enough. Exact acceptance-relevant commands must run; zero tests and NO_TESTS do not pass. Review findings block completion until repaired and reverified.
State ownership#
Task is known but not active yet.
Task has been claimed and is being implemented or verified.
A concrete blocker is recorded and must be cleared before continuing.
Completion criteria and evidence are satisfied with real proof.
The controller alone updates task Status and canonical Receipt. Sync may reconcile observed file state but cannot invent execution, approval, or completion.
Alternate routes#
| Situation | Route |
|---|---|
| Need an evidence-backed answer | /cf:ask |
| Need scoped codebase discovery | /cf:scout |
| Root cause unknown | /cf:debug |
| Diagnosed bug needs repair | /cf:fix |
| Existing system lacks reliable docs | /cf:docs --reconstruct <scope> |
| Uncertain technical decision | /cf:research |
| Explicit bounded numeric optimization | /cf:loop |
Claude Code uses /cf:*; Codex CLI uses native $cf-* skills. OpenCode commands are historical 0.16-only compatibility notes.