カードの作成とチェック
カードは1つのスコープ付きビルドセッションだ。計画が完了したら、大半の時間を過ごすループがこれだ。
/flow card は、6つの計画ゲートがすべて通過するか、対応する未解決debt行を持つまで拒否する。拒否されたら /flow を実行し、名指されたステージを直す。
カードを切る
Section titled “カードを切る”/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 を落とす。スキップしない。
先に過去の知識を読み込む
Section titled “先に過去の知識を読み込む”/flow recall未解決debt、最新のレトロ、前カードのスコープ、ハーネスの摩擦、promote済みプレイブック。出力はノイズではなく、適用すべきコンテキストとして扱う。
任意:進行中に印を付ける
Section titled “任意:進行中に印を付ける”/flow card start C-001カードを進行中として記録する。ポータブルな cards/.inflight レジストリに載り、/flow status に現れる。ゲート付きの status: フィールドには決して触らない。完全に任意だ——手編集も有効なままだ。
線の内側でビルドする
Section titled “線の内側でビルドする”すべてのビルドセッションを縛る3つの規則:
- 1セッション1カード。 2つはダメ。
/flow readyが安全と言うまで並行もダメ。 ## Allowed filesだけを触る。 そのリストからの漂流は、レビュアーがまさに見るものだ。- 契約は継ぎ目だ。 ステージ05が宣言した形に向けてビルドする。形が間違っていたら、先に契約を修正してからコードを変える。
UIカードでは、フロントエンドのコードより先にモックカードの承認が必要で、/flow design <file> がそのモックに機械的な DESIGN.md チェックを実行する。
並行して安全なカードを確認する
Section titled “並行して安全なカードを確認する”/flow readyallowed filesの重なりにもとづく並行安全性ヒント付きで、ビルド可能なtodoカードを列挙する。
カードをチェックする
Section titled “カードをチェックする”/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」と「マージ済み」は中間状態だ。
通る証拠を貼る
Section titled “通る証拠を貼る”何が通るかはプロジェクトタイプで決まる:
| プロジェクトタイプ | 通る証拠 |
|---|---|
web |
稼働中のデプロイ済みURLと実際の curl 出力 |
cli |
実際の呼び出しとその出力・終了コード |
library |
公開APIのimport、動く使用例、カバレッジ閾値の達成 |
skill |
スキルホームへのインストールと、自らの完了定義に到達した実際の実行 |
プロセスの成果物——承認済みPR、緑のCIバッジ、リリースノート——は証拠にならない。機械的下限がプロセスのみの文章を却下する。書類でカードをdoneにできない。
何が通るかの完全な規則は 完了とは現実世界。
doneに反転する
Section titled “doneに反転する”/flow check C-001PASS: C-001 is valid (status: done).またはCLIに反転を任せる:
/flow card done C-001card done は check と同じ完了規則を適用し、ゲートが落ちれば反転を取り消す。中身のないdoneは生み出せない。status: done の手編集と check の実行も同様に有効だ。
計画をコードに収束させる
Section titled “計画をコードに収束させる”実際のビルドは漂流する:計画が頼んでいないコードが書かれ、計画した作業が静かに着地しない。/flow converge はその差のクローザだ。next ゲートではない。任意だ。
現在のコードを計画(PRD FRn、契約インターフェース、constitution INV-n)に対して評価する。差を記述する flow-converge/v1 ペイロードを書き、実行する:
/flow convergeまたは flow.sh converge --file <path>。
この動詞を縛る3つの規則:
- 追記のみ。 既存の
cards/C-*.mdを編集・採番し直し・削除しない。アプリケーションコードに触らない。残余カードが出力される。後のセッションがビルドする。 - 全か無か。 ランナーはトランザクショナルだ:残余カードは全書き込みか全不書き込みかだ。部分的追記はない。
CONVERGEDは何も書かない。 所見ゼロ(またはペイロードなし)はCONVERGEDを出力し、cards/に触らない。
コードにはあるが頼まれていない作業はレビューカード(implements: none)になる。削除ではない。何かを除去する決定はオペレータのものだ。
ペイロードが受け付ける差タイプ:missing、partial、contradicts、unrequested。それ以外は却下され、何も書かれない。
所見は先に .flow/converge-pending.md に書く(実行状態、gitignore済み。CONVERGED 実行が cards/ を汚さないため)。カードが書かれる前に所見表を提示する。形式:
schema: flow-converge/v1findings: 2
---gap-type: missingseverity: HIGHimplements: FR2source-ref: 03-prd.md:FR2title: implement the mark-task-done endpointdeps: C-002allowed: src/app.py---gap-type: unrequestedseverity: LOWimplements: nonesource-ref: src/app.py:debug_dumptitle: the debug_dump surface no feature asked fordeps:allowed: src/app.py追記されたカードは [FILL] のVerifyとEvidence付きで出荷される——まだビルドされていない。切り、埋め、他のカードと同じく check する。
差の分類とペイロードスキーマの全文は skills/flow/references/converge.md。