harness-bootstrap、最初から最後まで
紫 = モデル、課金される
緑 = スクリプト、無料
青 = あなた
赤 = ガードレール
.claude/
空
エージェントは?
ルールは?
ガードレールは?
タスクは?
まずモードを選ぶ - 規模の話ではない
greenfield
空、またはほぼ空のリポジトリ
brownfield
既存のコードがあり、エージェントが変更する
audit
エージェントが分析し、人間が全ての修正を適用する
紫 - モデルが必要
コードベース分析 - 必須
スタック、モジュール、データ層、連携先、規約、危険な操作、既存の.claude/、gitの実態
→
棚卸しレポート
モジュール → 開発エージェント
規約 → ルール
危険な操作 → 拒否リスト + フック
↓
あなたが確認・訂正する
確認される前は1つもファイルを生成しない
紫 - モデルが必要
インテイク質問
AskUserQuestion、1回最大4問。Brownfieldは根拠から事前入力し、コードで判断できないことだけ尋ねる
→
ツールを検出・確認
.cursor/ .codex/ AGENTS.mdを走査し尋ねる: Claude Code / Cursor / Codex
→
1画面のセットアップ計画
作成 / 維持 / 変更、model + effort付きロースター。あなたが確認する
紫 - モデルが必要
ロースター
Tier 0は無条件、プリセットS / M / L、明示的なmodel: と effort:
→
スキル: 適合・審査・配線
検出したスタックに合わせ、提案前に必ずレビューし、選んだら配線される
→
開発OSを検出
Windowsは.ps1へ、macOS/Linuxは.shへ
→
vars.json
vars + flags: ui, db, ai, audit, tdd, ddd, deploy_ask, windows / posix
緑 - スクリプト、決定的で無料
scaffold.py --dry-run
→
scaffold.py
assets/の決定的なコピー
追加
ファイルが存在しなかった
維持
存在し、バイト単位で同一
競合
存在し内容が異なる - 書き込まない
↓
手で突き合わせる: 維持 / 適応 / 追加 / フラグ
exit 0
緑 - スクリプト、決定的で無料
scaffold.py --dry-run
→
scaffold.py
未解決の {{ VAR }}
→
exit 1
プレースホルダーが本番のルールファイルに紛れ込むと、何にも一致せず静かに失敗する
紫、再び - テンプレートには分からないこと
モデルが埋める空白
オーケストレーターのルーティング表、開発エージェントのスコープ、tech-stack.md、coding-standards.md、git-workflow.md、実際のスタック向けsettings.jsonのallow / deny、.env.example
→
オーケストレーションの配線
マスタープランの索引表、分析のギャップ一覧から種をまくPhase 1、AGENTS.mdのエントリーポイント、薄い@AGENTS.mdインポートとしてのCLAUDE.md
品質ゲート
構造 / コスト / 安全性 / 裏付け / 引き継ぎ
→
全て green
ループをスモークテスト
→
両方のグラフを構築
code-graph.py + docs-graph.py、その後graph-html.py: harness-graph.html + specs-graph.html
→
あなたのツールへ移植
↓
ハーネスがオーケストレーションの下で動く
3つの帯として読む
分析 + 決定
モデルが必要
→
スキャフォルド
スクリプト、無料
→
空白埋め + 配線
テンプレートが知らないこと
AGENT HARNESS BOOTSTRAP