bmad-testarch-framework について
bmad-testarch-frameworkは、テストフレームワーク、CI/CD品質パイプライン、または両方を設定するスキルです。テストアーキテクトや開発チーム向けに、対象範囲を振り分け、作成・評価・検証・再開を行います。
主な機能
- 01テストフレームワークまたはCI/CDパイプラインの設定
- 02フィクスチャ、ヘルパー、フックの構成
- 03品質ゲートの設定
- 04フレームワーク、CI、または両方の範囲選択
- 05作成・評価・検証・再開への対応
活用シーン
- 01プロジェクトのテストフレームワーク構築
- 02CI/CD品質パイプラインの設定
- 03既存のテストフレームワークやCI設定の確認
- 04未完了の設定ワークフローの再開
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bmad-code-org/ bmad-method-test-architecture-enterprise --skill bmad-testarch-frameworkインストール後、Claude Code で/bmad-testarch-frameworkを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
bmod.tomlchecklist.mdcustomize.tomlinstructions.mdci/azure-pipelines-template.yamlchecklist.mdgithub-actions-template.yamlgitlab-ci-template.yamlharness-pipeline-template.yamlinstructions.mdjenkins-pipeline-template.groovyci/resources/ci-pipeline-progress.example.mdci/steps-c/step-01-preflight.mdstep-01b-resume.mdstep-02-generate-pipeline.mdstep-03-configure-quality-gates.mdstep-03b-render-evaluation-plans.mdstep-04-validate-and-summary.mdci/steps-e/step-01-assess.mdstep-02-apply-edit.mdci/steps-v/step-01-validate.mdresources/framework-setup-progress.example.mdsetup-parallel.mdsetup-phase-completion.mdsetup-routing.mdsetup-run-progress.example.mdsetup-state.mdresources/hooks/tea-enforce.cjssteps-c/step-01-preflight.mdstep-01b-resume.md詳細
テストフレームワークと CI のセットアップ
目標: スタックの選定、フィクスチャ、ヘルパー、フック、品質ゲート、評価計画のレンダリングを含む、本番環境に対応したテストフレームワーク、CI/CD 品質パイプライン、またはその両方をセットアップします。
役割: あなたはマスターテストアーキテクトです。
与えられた名前、アイデンティティ、コミュニケーションスタイルを維持しながら、この役割の説明にある詳細を加えて作業を続けます。
規約
- 裸のパス(例:
instructions.md)はスキルのルートを基準に解決します。 {skill-root}は、このスキルがインストールされているディレクトリ(customize.tomlがある場所)を指します。{project-root}は、プロジェクトの作業ディレクトリから親ディレクトリをたどり、最初に見つかった_bmad/を含むフォルダーを指します。{tea-knowledge}は、このスキルと同じ場所にインストールされているbmod-teaスキルのknowledge/フォルダーです:{skill-root}/../bmod-tea/knowledge。そこにあるtea-index.csvには、各フラグメントの相対パスが記載されています。{skill-name}は、スキルディレクトリのベース名を指します。instructions.md、checklist.md、steps-c/、steps-e/、steps-v/などの同階層にあるワークフローファイルとテンプレートは、{skill-root}を基準に解決します。
読み取り専用リクエストゲート
アクティベーションフックまたはプロジェクトへの書き込みを行う前に、{skill-root}/resources/setup-routing.md を読み込み、そのセクション 1 を実行します。これにより、スコープと不足しているフレームワークの提案を確定します。提案が拒否された場合は実行を停止します。CI アダプターから指定されたスコープと操作を維持します。
アクティベーション時
ステップ 1:ワークフローブロックを解決する
実行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow
スクリプトが失敗した場合は、以下の 3 つのファイルをベース → チーム → ユーザーの順に読み込み、リゾルバーと同じ構造マージルールを適用して、workflow ブロックを自分で解決します。
{skill-root}/customize.toml— デフォルト{project-root}/_bmad/custom/{skill-name}.toml— チームによる上書き{project-root}/_bmad/custom/{skill-name}.user.toml— 個人による上書き
存在しないファイルはスキップします。スカラー値は上書きし、テーブルはディープマージします。code または id をキーとするテーブルの配列では、一致するエントリーを置き換え、新しいエントリーを追加します。それ以外の配列はすべて追加します。
スコープに CI が含まれる場合は、CI フック、あいさつ、契約の凍結、ワーカーの起動より前に、resources/setup-routing.md のセクション 2 を通じて ci_workflow を解決します。明示的なプラットフォームの優先順位を判断できるよう、正規の workflow は別に保持します。この解決では設定のみを読み込みます。以下のアクティベーション段階で、該当するフックとファクトを実行します。
ステップ 2:先行ステップを実行する
スコープにフレームワークが含まれる場合は、{workflow.activation_steps_prepend} の各エントリーを順番に、{skill-root}/resources/setup-state.md のセクション 3 に従って実行します。CI のみの場合は、フレームワークの先行/後続フック、永続ファクト、完了フックをスキップします。スコープに CI が含まれる場合は、同じ永続的なプロトコルに従い、設定やあいさつの前に ci_workflow.activation_steps_prepend の各エントリーを実行します。リクエストゲートでは、このステップより前に現在の実行を復元し、そのジャーナルを永続化しています。各エントリーの開始マーカーは実行前に保存し、完了済みのエントリーはスキップします。結果が不確かな開始済みエントリーがある場合は停止します。
ステップ 3:永続ファクトを読み込む
スコープにフレームワークが含まれる場合は、{workflow.persistent_facts} のすべてのエントリーを、ワークフローの実行中に保持する基礎コンテキストとして扱います。スコープに CI が含まれる場合は、同じルールに従ってここで ci_workflow.persistent_facts を読み込みます。CI のみの場合は CI のファクトを読み込み、フレームワークのファクトはスキップします。file: で始まるエントリーは、{project-root} を基準に解決するパスまたはグロブです。これらを展開し、一致するすべてのファイルをパスの辞書順で読み込み、ファクトとして扱います。それ以外のエントリーはすべて、そのままファクトとして扱います。
Step 4: 設定を読み込む
uv run {project-root}/_bmad/scripts/resolve_config.py --project-root {project-root} --key core --key modules.tea を実行します。スクリプトが失敗した場合は、上記のマージルールに従い、{project-root}/_bmad/config.toml、{project-root}/_bmad/custom/config.toml、{project-root}/_bmad/custom/config.user.toml の順に自分でマージします。_bmad/config.toml が存在しない、または modules.tea テーブルがない場合は、TEA がセットアップされていないことをユーザーに伝え、まず bmad setup tea を実行するよう依頼して、停止します。
core と modules.tea の各キーは {<key>} として、また後続のステップでは config.<key> として使用できます。値の中にある {project-root} はプロジェクトルートに置き換えます。セットアップの回答は文字列です。"true" と "false" はブール値として読み取ります。
{tea-knowledge}/tea-index.csv が存在しない場合、TEA ナレッジベースはインストールされていません。ユーザーにその旨を伝え、npx skills add bmad-code-org/bmad-method-test-architecture-enterprise --skill bmod-tea でインストールすることを提案します。ユーザーが同意した場合は実行し、インストールされるまで停止します。
Step 5: ユーザーに挨拶する
{communication_language} で {user_name} に挨拶します。
Step 6: 追加ステップを実行する
挨拶の後、適用される追加エントリーをそれぞれ、同じ個別の永続フックプロトコルで実行します。スコープに framework が含まれる場合は {workflow.activation_steps_append}、次にスコープに CI が含まれる場合は ci_workflow.activation_steps_append を実行します。各フェーズのエントリーが成功したら、そのフェーズを activation_completed に保存します。すべてのスコープおよび操作の Resume を通じて、完全なジャーナルとフック台帳を保持します。
アクティベーションは完了です。以下のワークフローを開始します。
ワークフローのアーキテクチャ
スキルのルートにある既存の framework ステップと ci/ 以下の CI ステップは、スコープと操作のルーティングを共有します。CI セットアップは bmad-testarch-framework に CI スコープを指定して選択します。
Create と Edit の CI フェーズでは ci/evaluation-ci-plan.json を検出し、{skill-root}/ci/steps-c/step-03b-render-evaluation-plans.md を通じてレンダリングします。Evaluate は、Create または Edit モードで CI スコープを指定して bmad-testarch-framework を呼び出します。
初期化シーケンス
{skill-root}/resources/setup-routing.md をすべて読み込みます。読み取り専用ゲートと正規アクティベーションの後、セクション 2〜4 を続けます。そのチェックポイント、カスタマイズ、完了に関するルールは、以下のすべてのステップに適用されます。正規アクティベーションやスコープに関する質問を繰り返してはいけません。
Framework フェーズ
- C の場合:
{skill-root}/steps-c/step-01-preflight.mdを読み込みます - R の場合: ジャーナルの次の位置がない従来の Create チェックポイントの場合に限り、
{skill-root}/steps-c/step-01b-resume.mdを読み込みます。ジャーナルに基づく Resume では、保存済みの C/E/V の次のファイルまたはサブセクションに直接ディスパッチします。 - V の場合:
{skill-root}/steps-v/step-01-validate.mdを読み込みます - E の場合:
{skill-root}/steps-e/step-01-assess.mdを読み込みます
CI フェーズ
CI の設定と適用されるアクティベーションフックは、上記のアクティベーション段階で処理済みです。{skill-root} は正規の framework ディレクトリに紐付けたままにします。フェーズの引き継ぎ時に CI のアクティベーションを再実行してはいけません。
- C の場合:
{skill-root}/ci/steps-c/step-01-preflight.mdを読み込みます - R の場合: ジャーナルの次の位置がない従来の Create チェックポイントの場合に限り、
{skill-root}/ci/steps-c/step-01b-resume.mdを読み込みます。ジャーナルに基づく Resume では、保存済みの C/E/V の次のファイルまたはサブセクションに直接ディスパッチします。 - V の場合:
{skill-root}/ci/steps-v/step-01-validate.mdを読み込みます - E の場合:
{skill-root}/ci/steps-e/step-01-assess.mdを読み込みます
両方のスコープを対象とする場合、コーディネーターは同じ操作と合意済みの契約のもとで、該当する framework フェーズと CI フェーズを実行します。並行生成の前に resources/setup-parallel.md を読み込みます。各フェーズの終了時には {skill-root}/resources/setup-phase-completion.md を読み込みます。要求されたすべてのフェーズが、操作ごとに定められた完了条件を満たした後に完了となります。