bmad-loop-setup について
bmad-loop-setupは、BMADとコーディングCLIを使うプロジェクトで、bmad-loopモジュールをインストール、設定、アップグレードするスキルです。オーケストレーターの導入に加え、CLIフックと付属スキルを配置し、準備状況を検査します。
主な機能
- 01bmad-loopオーケストレーターの導入・更新
- 02選択したコーディングCLIへのフック登録
- 03付属のbmad-loopスキルの配置
- 04ポリシー設定とgitignore項目の作成
- 05プロジェクトの準備状況を検査
活用シーン
- 01プロジェクトでbmad-loopを初期設定
- 02ツールを更新してプロジェクトのスキルを再配置
- 03コーディングCLIとプロジェクト設定の準備状況を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bmad-code-org/ bmad-loop --skill bmad-loop-setupインストール後、Claude Code で/bmad-loop-setupを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
bmod.tomlassets/module-help.csvmodule.yaml詳細
モジュールのセットアップ
概要
プロジェクトに bmad-loop モジュールをインストール、設定、およびアップグレードします。
このモジュールは特殊です。自動化スキルに加えて、ループを実際に実行する Python プログラムである bmad-loop オーケストレーターツールに依存しています。このツールは公開 Git リポジトリから bmad-loop パッケージとしてインストールされます。スキルは単独では何も実行しません。
_bmad/ への登録を担うのは BMAD インストーラーであり、このスキルではありません。 BMAD インストーラー(npx bmad-method install)を使って bmad-loop をインストールすると、インストーラーはスキルを _bmad/bmad-loop/ に配置し、そのモジュール独自の設定ファイルとヘルプファイルを書き込み、_bmad/_config/(マニフェスト、スキルマニフェスト、ファイルマニフェスト)に登録して、/bmad-help カタログを再構築します。実行のたびに中央の _bmad/config.toml を再生成するため、インストーラー以外がそこに書き込んではいけません。
したがって、このスキルの役割は、インストーラーでは構造上できない作業です。
- オーケストレーターツールをインストールまたはアップグレードします(インストーラーがコピーするのはスキルディレクトリのみで、Python パッケージは扱えません)。
bmad-loop initを実行して CLI ごとのフックを登録し、同梱スキルを配置して、.bmad-loop/policy.tomlと gitignore エントリーを書き込みます。bmad-loop validateで事前チェックを行い、ユーザーにロールごとのアダプター設定を案内します。
また、_bmad/bmad-loop/module-help.csv を更新し、BMAD インストーラーではなくツールを直接インストールしたプロジェクトでも、モジュールのヘルプ項目が表示されるようにします。_bmad/ 配下のそれ以外のファイルは、書き込みも削除もしません。
モジュールの識別情報(名前、コード、バージョン)は ./assets/module.yaml から取得します。
{project-root} は BMAD 設定の 値 に含まれる文字どおりのトークンです。そこでは決して置き換えないでください。これは以下のコマンドにおけるファイルシステムパスの_引数_には適用されません。それらは実際のパスなので、実行前に {project-root} を実際のプロジェクトルートに解決してください。
アクティベーション時
- モジュールのメタデータ(
codeフィールドがモジュール識別子です)を確認するため、./assets/module.yamlを読み取ります。 {project-root}/_bmad/が存在するか確認します。存在しない場合、このプロジェクトには BMAD がインストールされていません。その旨を伝え、自動化スキルは BMAD のインストールを前提としていることも伝えます。セットアップによるオーケストレーターツールのインストールは引き続き可能です。{project-root}/_bmad/bmad-loop/が存在するか確認します。存在する場合、このモジュールは BMAD インストーラーによってインストールされ、すでに登録されています。存在しない場合は、このモジュールが BMAD に登録されていないこと、またnpx bmad-method installで bmad-loop を選択してインストールすると/bmad-helpに追加されることをユーザーに伝えます。これをセットアップの条件にはせず、いずれの場合も続行してください。BMAD v7 では、代わりにbmad setup bmad-loopでインストールします(v6 インストーラーではありません。bmad-loop のdocs/setup-guide.mdの「BMAD v7 へのインストール」を参照してください)。
新規インストールかアップグレードかを判断します。 これによって、ツールをアップグレードするか、プロジェクトごとのスキルを更新するかが決まります。以下のいずれかに当てはまる場合は、アップグレードとして扱います。
- ユーザーが引数で指定している場合(
upgrade、update、upgrade tool and skillsなど)。 - オーケストレーターツールがすでに uv にインストールされている場合:
uv tool listを実行し、bmad-loopのエントリーを探します(単独のbmad-loop --versionだけでは不十分です。ソースのチェックアウトや無関係な仮想環境でも実行できるためです。下の手順 1 を参照してください)。
それ以外の場合は、新規インストールです。続行する前に判断結果をユーザーに伝えます。例:「既存の bmad-loop インストールを検出しました。アップグレードを実行します:ツール + スキル」または「既存のインストールは検出されませんでした。新規セットアップを実行します」。
ユーザーが引数(例:accept all defaults、--headless、upgrade)を指定した場合は、それを使用し、対話形式の確認は省略します。最後に、確認内容の概要をすべて表示してください。
ヘルプエントリーを登録する
このモジュールのヘルプエントリーを更新します。このスキルが _bmad/ の下に書き込むファイルはこれだけで、BMAD インストーラー自体が配置するものとまったく同じです。そのため、インストーラーでセットアップ済みのプロジェクトでは何も変更されず、再実行しても安全です。
mkdir -p "{project-root}/_bmad/bmad-loop"
cp ./assets/module-help.csv "{project-root}/_bmad/bmad-loop/module-help.csv"
/bmad-help は、_bmad/<module>/module-help.csv をすべて基に BMAD インストーラーが再構築する、組み立て済みのカタログ _bmad/_config/bmad-help.csv を読み込みます。そのため、BMAD インストーラーを一度も実行していないプロジェクトでは、これらのエントリーは次回のインストーラー実行時に表示されるようになります。すぐには表示されません。ヘルプシステムが更新されたと主張するのではなく、確認ステップでそのことを明確に伝えてください。
{project-root}/_bmad/ が存在しない場合は、このステップを完全にスキップしてください。
オーケストレーターツールをインストールする
オーケストレーターは、選択したアダプターを通じて新しいコーディング CLI セッションを起動し、開発パスでは bmad-build-auto(上流の開発プリミティブ。名称変更前のリリースでは bmad-dev-auto)を実行します。続いて、done になった仕様に対して再度実行し、フォローアップのレビューパスを行います。また、bmad-loop-sweep を実行し、フックのシグナルを監視して、成果物を検証します。したがって、インストールはセットアップの一部であり、任意の追加項目ではありません。
Git からインストールする理由: BMAD インストーラーはスキルディレクトリのみをプロジェクトにコピーし、隣接するファイルは含めないため、ツールをスキルフォルダーに同梱できません。正式なソースは https://github.com/bmad-code-org/bmad-loop です。(ただし逆の場合は成り立ちます。ツールのホイールにはスキルが同梱されているため、
bmad-loop initを実行すると、プロジェクトのスキルツリーにスキルが自動的に配置されます。ステップ 3 を参照してください。)
ユーザーから明示的にスキップするよう依頼された場合(例:skills only/--no-tool)を除き、今すぐインストールまたはアップグレードして、ブートストラップしてください。実行前に {project-root} を実際のプロジェクトパスに解決してください。
-
PATH 上にすでにあるものを確認する:
bmad-loop --versionを実行します。ここでバージョンが表示されても、このプロジェクトのセットアップが完了していることを意味するわけではありません。現在の環境で何らかのbmad-loopをインポートできることを示しているだけです。これを信頼する前に、uv tool listを実行してbmad-loopを探してください。見つからない場合(PATH 上のコピーがソースチェックアウトまたは無関係な仮想環境由来の場合)は、アクティブな環境がクリーンなインストールを上書きしており、プロジェクトがそのチェックアウトに依存することになるとユーザーに警告してください。ユーザーが明示的に断らない限り、プロジェクトが偶発的な開発環境に依存しないよう、以下の正式なソースからインストールまたはアップグレードしてください。 -
Git リポジトリからインストールまたはアップグレードする(
[tui]エクストラによって Textual ダッシュボードがインストールされ、bmad-loop tuiが使えるようになります)。uv tool installは uv 独自の管理環境にbmad-loopをインストールするため、PEP 668 による外部管理環境の競合は発生せず、--user、有効化した仮想環境、--break-system-packagesも不要です。-
新規インストール(uv 管理の
bmad-loopがない場合):uv tool install "bmad-loop[tui] @ git+https://github.com/bmad-code-org/bmad-loop.git"再現性を高めるためにリリースタグを固定するには、Git URL の末尾に
@v<X.Y.Z>を追加してください。 -
アップグレード(uv がすでに
bmad-loopを管理している場合):-
差分を報告できるよう、最初に現在のバージョンを記録します:
bmad-loop --version。 -
デフォルトでは
main(または現在固定されているタグ)を使用します:uv tool upgrade bmad-loop --reinstallGit ソースの場合は
--reinstallが必須です。通常のuv tool upgradeではキャッシュされたコミットが再利用され、新しいコードが取得されません。次に、再現性のためリリースタグを固定するかどうかを提案してください。ユーザーが特定のバージョンを希望する場合は、次のコマンドで切り替えます:uv tool install --force "bmad-loop[tui] @ git+https://github.com/bmad-code-org/bmad-loop.git@v<X.Y.Z>" -
bmad-loop --versionを再実行し、確認ステップで報告するため、変更前 → 変更後を記録します。
-
-
-
プロジェクトをブートストラップする — コーディング CLI フック、同梱の
bmad-loop-*スキル、.bmad-loop/policy.tomlテンプレート、および gitignore エントリーをインストールします(繰り返し実行しても安全です)。 まず、オーケストレーターで操作するコーディング CLIを決めます。サポートされているアダプターはclaude(デフォルト)、codex、gemini、copilot、antigravity(Google のagy)です。フックは CLI ごとに登録されるため、この選択は重要です。開発/レビュー/トリアージに使う予定の CLI はすべて登録してください。ユーザーに確認します(セットアップ引数で既に指定されている場合(例:cli: claude, codex)、またはデフォルトを選択済みの場合を除きます。その場合はclaudeのみをデフォルトにします)。「オーケストレーターで操作するコーディング CLI はどれですか?
claude、codex、gemini、copilot、antigravityから選んでください。複数選択できます。[claude]」選択した CLI ごとに
--cli <name>を 1 つ指定して、コマンドを組み立てます(このフラグは繰り返し指定できます)。アップグレード時は--force-skillsを追加してください。これにより、プロジェクトごとのスキルのコピーが確実に更新されます。この指定がないと、initは既存のスキルディレクトリをすべてスキップするため、アップグレードしたツールに対して古いスキルがプロジェクトに残ります。新規インストール時は省略してください。# fresh install, claude only (default) bmad-loop init --project "{project-root}" --cli claude # fresh install, multiple, e.g. claude + codex + gemini bmad-loop init --project "{project-root}" --cli claude --cli codex --cli gemini # upgrade — refresh the bundled skills in place bmad-loop init --project "{project-root}" --cli claude --force-skills名前は
claude、codex、gemini、copilot、antigravityのいずれかと完全に一致する必要があります。未知のプロファイルを指定すると、initはエラーを返し、有効な名前を一覧表示します。initは CLI ごとに初回のみ必要な注意事項を表示します(例:bmad-loop runの前にプロジェクトでclaudeを一度起動し、ワークスペースの信頼とフックの承認ダイアログに応答します。起動されたセッションでは初回のダイアログに応答できません)。これらの注意事項をユーザーに伝えてください。スキルは自動的にインストールされます。
initは、選択した CLI ごとに、同梱のbmad-loop-*スキルを適切なディレクトリに配置します。claudeの場合は.claude/skills/、codex/gemini/copilot/antigravityの場合は.agents/skills/です。新規インストール時は既存のスキルディレクトリをそのまま残します。アップグレード時は--force-skillsにより、アップグレードしたツールに同梱されているコピーで上書きします(この手順をスキップしてスキルを自分で管理する場合は--no-skillsを使用してください)。注:
--force-skillsはbmad-loop-setup自体も上書きします(同じバンドルに含まれています)。これは想定どおりの安全な動作です。新たに配置されたセットアップスキルは次回の呼び出しから有効になり、_bmad/custom/*.tomlのオーバーライド(スキルディレクトリ名をキーとする)は変更されません。 -
事前確認 — 設定、sprint-status、git、tmux、コーディング CLI を検証します。
bmad-loop validate --project "{project-root}"プロジェクトの準備が完全に整っていない場合(例:まだ
sprint-status.yamlがない、またはbmad-sprint-planningが実行されていない場合)、validateはゼロ以外の終了コードを返します。新規プロジェクトではこれは想定どおりです。インストールの失敗としてではなく、準備状況のチェックリストとして、検出結果をユーザーに伝えてください。 -
役割ごとのアダプター設定をユーザーに案内します。 手順 3 の
--cliは、各 CLI の フック を登録するだけです。各ステージを実際に実行する CLI は、initがテンプレートから作成する{project-root}/.bmad-loop/policy.tomlで設定します。[adapter] name(デフォルトはclaude)はすべてのステージに適用されます。省略可能な[adapter.dev]、[adapter.review]、[adapter.triage]テーブルでは、個々のステージを上書きできます(それぞれ独自のname、model、effort、extra_argsを指定します)。したがって、開発にclaude、レビューにcodexを使うなど、複数 CLI を組み合わせる構成では、フックを登録する(手順 3)だけでなく、policy.tomlで役割に応じた CLI を指定する必要があります。[adapter] name = "claude" # default for all stages [adapter.review] name = "codex" # review runs on codex insteadファイルの場所と、
policy.tomlに記載する CLI はすべて手順 3 で--cliを使って登録しておく必要があることをユーザーに伝えてください(後から追加する場合はbmad-loop init --cli <name>を再実行します)。CLI を 1 つしか使わない場合はpolicy.tomlを変更しないでください。デフォルト設定のままで問題ありません。
確認
報告内容:
- 新規インストール: インストールされた
bmad-loop --version、bmad-loop initによってフックが登録され、bmad-loop-*スキルがインストールされ、選択したコーディング CLI 用のポリシーと gitignore が書き込まれたこと(それぞれの名前を明記してください。例:「claude、codex 用にフックとスキルをインストール」)。 - アップグレード: アップグレード前後の
bmad-loop --version(例:「0.3.1 → 0.3.2 にアップグレード」または「0.3.2 で最新の状態」)、および各 CLI ツリーで--force-skillsを使ってbmad-loop-*スキルを更新したこと(スキップしていないこと)。
また、次の内容も報告してください。
bmad-loop validateの事前チェック結果(合格、または未対応項目を示す準備チェックリスト)。_bmad/bmad-loop/module-help.csvを更新したこと。実行前に_bmad/bmad-loop/が存在しなかった(つまり、BMAD インストーラーがモジュールをインストールしていなかった)場合は、次回 BMAD インストーラーを実行した後にヘルプ項目が/bmad-helpに表示されること、およびnpx bmad-method installでモジュールをインストールすると正しく登録されること(BMAD v7 では代わりにbmad setup bmad-loopを使うこと)を伝えてください。- このスキルは
_bmad/以下にそれ以外のものを書き込んでいないこと。モジュール登録、config.toml、ヘルプカタログは BMAD インストーラーが管理します。
続いて、./assets/module.yaml の module_greeting をユーザーに表示してください。
結果
このセッションの残りでは、ユーザーが設定した名前と言語を使用してください。BMAD の中央設定から、BMAD 独自のリゾルバー(4 層の TOML マージ。BMAD v6.10 以降と Python 3.11 以降が必要)を使って読み取ります。
uv run "{project-root}/_bmad/scripts/resolve_config.py" --project-root "{project-root}" --key core
core テーブルから user_name と communication_language を取得してください。スクリプトが存在しない、またはゼロ以外の終了コードを返す場合は、設定ファイルを書き込んだり修復したりせず、ユーザーに中立的な英語で話しかけてください。