flow — gated build harness for coding agents
証跡こそ、雰囲気より。

flow

見せかけの完了は、ゲートを通らない。

使い慣れたコーディングエージェントを包む、ゲート付きハーネス。flowが握るのはゲートと証跡—— ランタイムには決して触れない。ゲートで弱いアイデアを潰すことも、正当な結果である。

ゲートが開くのは、両者が合意したときだけ。

NODE ≥22
npx @manhquy/flow-skill@latest

お使いのコーディングエージェントに対応

Claude CodeCodex CLIGemini CLICursorAiderClineContinueZed

ビルドの前に越える6つのゲート

各ステージはリポジトリに実ファイルとして残る。/flow next は、 ランナーとスキルの両者が合意しない限り次のステージを開けない。これらのファイルは ゲートを越えた後に生まれる——インストール直後には存在しない。

  1. 01Idea
  2. 02Research
  3. 03Scope
  4. 04PRD
  5. 05ADR
  6. 06Contract
01

Idea

flow/00-idea.md

コードが生まれる前に、ダメなアイデアを潰せ。

MDflow/00-idea.md停止
1# 課題の定義
2[FILL: ユーザーの課題を記述]
3# 提案する解決策
4<空>
FAIL · ゲートで潰された

通過できないもの

空っぽ、残った [FILL]、完了の証拠としての「tests pass」——いずれも通らない。弱いアイデアはゲートで潰される。

  • 空のファイル。
  • ファイルに残った [FILL]。
  • 完了の証拠として提出された「Tests pass」。
$ /flow next
refusing: flow/00-idea.md is empty (line 1)
ゲートで潰すことも正当な結果だ。
02

Research

flow/01-research.md

本物の出典を示せ。なければここで止まれ。

MDflow/01-research.md3/3 引用済み
1## 一次情報
2• [RFC-9110] §4.2 べき等メソッド
3• github.com/owner/repo#412 (repro)
4## 競合比較 & 障害モード
02証跡 · 一次情報

アーキテクチャより先にグラウンドトゥルース

競合比較、検証済みドキュメントの引用、実際の障害モードをリポジトリのファイルに記録する。

$ /flow check 01-research
✓ 一次情報3件を引用(URL検証済み)
✓ 競合比較と障害モードを確定
03

Scope

flow/02-scope.md

境界を引け。残りは捨てろ。

MDflow/02-scope.md凍結済み
1対象内 S-01 CLIハーネスのゲートループ
2対象内 S-02 証跡スキーマ検証
3対象外 テレメトリ / アナリティクス収集
4対象外 独自クラウドデーモン
03境界 · 対象外

対象外リストを明示して凍結

境界を定めた納品単位。スコープクリープはコード生成の前に捕まえる。

$ /flow check 02-scope
✓ 納品単位3件を確定
✓ 対象外を明示して凍結(スコープクリープを阻止)
04

PRD

flow/03-prd.md

コードを書く前に、テストを定義しろ。

MDflow/03-prd.md判定基準
1INV-01: 空のspecファイルでexit 1
2INV-02: 拒否行をstderrに出力
3INV-03: 証跡JSONがスキーマに適合
4INV-04: 縮退モードでdebtを記録
04契約 · 受け入れ基準

観測可能な基準のみ

テスト可能な不変条件を持つユーザーストーリー。エージェントは途中で成功の定義を書き換えられない。

$ /flow check 03-prd
✓ 観測可能な受け入れ基準を定義
✓ エラー状態と縮退パスを定義
05

ADR

flow/04-adr.md

コミットする前に、トレードオフを記録しろ。

ADRflow/04-adr.md承認済み
1状態: 承認済み (2026-10-11)
2背景: ファイル管理 vs SQLiteデーモン
3決定: Git管理のMarkdownファイル
4結果: ポータブル、バックグラウンドサーバー不要
05決定 · トレードオフ

アーキテクチャ決定記録

実装開始前に背景・決定・結果を記録する。

$ /flow check 04-adr
✓ 背景・決定・結果を記録
✓ 可逆性と異常系テストを整理
06

Contract

flow/05-contract.md

両者が合意しなければ、何も進まない。

SIGflow/05-contract.md解放済み
[✓] human-signoff: @dev が承認
[✓] harness-attest: sha256:7f3a..9e1b
[✓] doctor-check: READY(スキル検証済み)
[✓] dual-agreement: 解放済み -> 進行
PASS · 準備完了

インストール後

スキルはディスク上にある。/flow と入力する(Codexでは $flow)。flow doctor は READY と出力する。 空のideaファイルに対する /flow next は行番号付きで拒否される。

  • スキルファイルがエージェントのホームに配置される。
  • /flow と入力する(Codexでは $flow)。
  • doctor が READY と出力できる。
  • 空のideaファイルに対する /flow next は、行番号付きで拒否される。
$ flow doctor
doctor: READY (skills/flow/SKILL.md verified)
ゲートが開くのは、両者が合意したときだけ。

次は /flow card。完了とは現実世界の証拠である: デプロイ済みURL、インストールして動くCLI、公開API、実際に動いたスキル。

AIコーディングエージェントではない。その周りのハーネスだ。

flowはコードを書かない。書くのはエージェントのまま——ハーネスが、その仕事を先に進めてよいかを決める。