コンテンツにスキップ

カードの作成とチェック

カードは1つのスコープ付きビルドセッションだ。計画が完了したら、大半の時間を過ごすループがこれだ。

/flow card は、6つの計画ゲートがすべて通過するか、対応する未解決debt行を持つまで拒否する。拒否されたら /flow を実行し、名指されたステージを直す。

/flow card

次の cards/C-NNN.md が作られる。コードを1行書く前に、それを読んでテンプレートの求めるものを埋める:

セクション 用途
## Allowed files このセッションが触ってよい唯一のパス。爆発半径だ。
implements: このカードが主張するPRD要件id(FRn)。
## Verify 実際に実行するコマンド。願望ではない。
## Independent test ユーザー可視の断片証拠——本当にどちらでもなければ infra / none。
## Evidence doneまで空のまま。真の現実世界証拠がここに入る。
risk / risk-reason リスククラス。自律実行の前に必要。

## Independent test に残った [FILL] は check を落とす。スキップしない。

/flow recall

未解決debt、最新のレトロ、前カードのスコープ、ハーネスの摩擦、promote済みプレイブック。出力はノイズではなく、適用すべきコンテキストとして扱う。

/flow card start C-001

カードを進行中として記録する。ポータブルな cards/.inflight レジストリに載り、/flow status に現れる。ゲート付きの status: フィールドには決して触らない。完全に任意だ——手編集も有効なままだ。

すべてのビルドセッションを縛る3つの規則:

  1. 1セッション1カード。 2つはダメ。/flow ready が安全と言うまで並行もダメ。
  2. ## Allowed files だけを触る。 そのリストからの漂流は、レビュアーがまさに見るものだ。
  3. 契約は継ぎ目だ。 ステージ05が宣言した形に向けてビルドする。形が間違っていたら、先に契約を修正してからコードを変える。

UIカードでは、フロントエンドのコードより先にモックカードの承認が必要で、/flow design <file> がそのモックに機械的な DESIGN.md チェックを実行する。

並行して安全なカードを確認する

Section titled “並行して安全なカードを確認する”
/flow ready

allowed filesの重なりにもとづく並行安全性ヒント付きで、ビルド可能なtodoカードを列挙する。

/flow check C-001

先に機械層がカードを検証する:ステータスの妥当性、残った [FILL] プレースホルダ、必須セクション、## Evidence が実際に埋まっているか。通過して初めて意味レビューが始まる——スコープとのdiff、allowed-files漂流、契約の形への適合、UIなら DESIGN.md、証拠が本当に現実世界かどうか。

最もよく出会う失敗:

[x] status is 'done' but ## Evidence is empty (paste world-state proof: URL/curl/DB row)
FAIL: C-001 has gate violations (above).

ビルドが完成し全テストが緑でも発火する。「Tests pass」と「マージ済み」は中間状態だ。

何が通るかはプロジェクトタイプで決まる:

プロジェクトタイプ 通る証拠
web 稼働中のデプロイ済みURLと実際の curl 出力
cli 実際の呼び出しとその出力・終了コード
library 公開APIのimport、動く使用例、カバレッジ閾値の達成
skill スキルホームへのインストールと、自らの完了定義に到達した実際の実行

プロセスの成果物——承認済みPR、緑のCIバッジ、リリースノート——は証拠にならない。機械的下限がプロセスのみの文章を却下する。書類でカードをdoneにできない。

何が通るかの完全な規則は 完了とは現実世界。

/flow check C-001
PASS: C-001 is valid (status: done).

またはCLIに反転を任せる:

/flow card done C-001

card done は check と同じ完了規則を適用し、ゲートが落ちれば反転を取り消す。中身のないdoneは生み出せない。status: done の手編集と check の実行も同様に有効だ。

実際のビルドは漂流する:計画が頼んでいないコードが書かれ、計画した作業が静かに着地しない。/flow converge はその差のクローザだ。next ゲートではない。任意だ。

現在のコードを計画(PRD FRn、契約インターフェース、constitution INV-n)に対して評価する。差を記述する flow-converge/v1 ペイロードを書き、実行する:

/flow converge

または flow.sh converge --file <path>。

この動詞を縛る3つの規則:

  1. 追記のみ。 既存の cards/C-*.md を編集・採番し直し・削除しない。アプリケーションコードに触らない。残余カードが出力される。後のセッションがビルドする。
  2. 全か無か。 ランナーはトランザクショナルだ:残余カードは全書き込みか全不書き込みかだ。部分的追記はない。
  3. CONVERGED は何も書かない。 所見ゼロ(またはペイロードなし)は CONVERGED を出力し、cards/ に触らない。

コードにはあるが頼まれていない作業はレビューカード(implements: none)になる。削除ではない。何かを除去する決定はオペレータのものだ。

ペイロードが受け付ける差タイプ:missing、partial、contradicts、unrequested。それ以外は却下され、何も書かれない。

所見は先に .flow/converge-pending.md に書く(実行状態、gitignore済み。CONVERGED 実行が cards/ を汚さないため)。カードが書かれる前に所見表を提示する。形式:

schema: flow-converge/v1
findings: 2
---
gap-type: missing
severity: HIGH
implements: FR2
source-ref: 03-prd.md:FR2
title: implement the mark-task-done endpoint
deps: C-002
allowed: src/app.py
---
gap-type: unrequested
severity: LOW
implements: none
source-ref: src/app.py:debug_dump
title: the debug_dump surface no feature asked for
deps:
allowed: src/app.py

追記されたカードは [FILL] のVerifyとEvidence付きで出荷される——まだビルドされていない。切り、埋め、他のカードと同じく check する。

差の分類とペイロードスキーマの全文は skills/flow/references/converge.md。