Plan は intent と code の durable contract。
CafeKit は C1 で scope を確認し、plan.md と flat tasks を作成、C2 で findings を review、C3 の completion decision を user に残します。
CafeKit keeps the assistant moving through persistent contracts instead of relying on chat memory.
C1 scope
Scout proportionally, resolve ambiguity, and record the user-approved scope and exclusions.
Plan
Record accepted scope, constraints, decisions, ownership, dependencies, acceptance mapping, and C3 boundary.
Task packets
Split work into flat packets with Outcome, Scope, Ownership, Acceptance, Dependencies, and Verification Plan.
C2 review
The user accepts, rejects, or revises bounded findings before implementation handoff.
Develop
Implement one unblocked task after task-aware inspection of real entrypoints and blast radius.
Proof
Run exact evidence commands, prove reachability, and reject scope drift or hidden placeholders.
Sync
Write Status and inline Receipt only after proof, then present evidence and limitations for C3.
Lifecycle#
request
-> C1: outcome、scope、exclusions、constraints を確認
-> plan.md + flat task-NN-*.md
-> adversarial review
-> C2: accept、revise、または named finding を KEEP
-> planning stop
-> 新しい explicit /cf:develop invocation
-> exact verification + final inline Receipt
-> C3: proof と limitations が十分か user が決定
Planning は implementation を開始しません。Command、hook、reviewer、host state は C1/C2/C3 や execution proof を捏造できません。
Artifact contract#
specs/<feature>/
├── plan.md
├── task-01-<slug>.md
└── task-NN-<slug>.md
plan.md は C1 decision、acceptance criteria、exclusions、findings decisions、dependencies、task map を保持します。各 flat task は one outcome と exactly one Status: を持ちます。
Task に必要な内容:
- outcome と explicit boundaries
- owned files または surfaces
- dependencies と blockers
- plan に map された acceptance criteria
- exact planned verification command
- final inline
## Receipt
Human decisions#
| Gate | Question | Effect |
|---|---|---|
| C1 | 何を planning するか? | Outcome、scope、exclusions、constraints、未解決 choices を lock。 |
| C2 | Material gaps または risks は何か? | User が accept、revision request、または named limitation を KEEP。 |
| C3 | Current result は close に十分か? | User が current receipts と unresolved limitations を評価。 |
Execution and proof#
/cf:develop <feature> は one unblocked task を選び、real integration path を scout、task boundary だけを実装し、exact proof command を実行します。Controller だけが task state と proof を書きます。
Done task は exact command、Exit: 0、Verification: PASS、runtime-derived Base/Head、non-empty fenced current output を持つ current final inline Receipt が必要です。
NO_TESTS、zero executed tests、stale output、acceptance と無関係な green command は pass しません。
Sync boundary#
/cf:sync は observed task Status と inline Receipt だけを surgical update します。Execution、approval、readiness、completion は捏造しません。
Legacy compatibility#
spec.json、nested tasks/task-R*.md、task registry、separate receipts を持つ existing packet は installed legacy adapter を維持します。New process-first Specs はそれらを author しません。