Spec lifecycle
Process-first specifications

Plan は intent と code の durable contract。

CafeKit は C1 で scope を確認し、plan.md と flat tasks を作成、C2 で findings を review、C3 の completion decision を user に残します。

Spec-driven development loop

CafeKit keeps the assistant moving through persistent contracts instead of relying on chat memory.

01
/cf:specs

C1 scope

Scout proportionally, resolve ambiguity, and record the user-approved scope and exclusions.

02
plan.md

Plan

Record accepted scope, constraints, decisions, ownership, dependencies, acceptance mapping, and C3 boundary.

03
task-NN-*.md

Task packets

Split work into flat packets with Outcome, Scope, Ownership, Acceptance, Dependencies, and Verification Plan.

04
adversarial findings

C2 review

The user accepts, rejects, or revises bounded findings before implementation handoff.

05
/cf:develop

Develop

Implement one unblocked task after task-aware inspection of real entrypoints and blast radius.

06
/cf:test + /cf:code-review

Proof

Run exact evidence commands, prove reachability, and reject scope drift or hidden placeholders.

07
/cf:sync

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#

GateQuestionEffect
C1何を planning するか?Outcome、scope、exclusions、constraints、未解決 choices を lock。
C2Material gaps または risks は何か?User が accept、revision request、または named limitation を KEEP。
C3Current 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 しません。