bmad-tea-framework について
bmad-tea-frameworkは、テストアーキテクトがテストフレームワークやCI/CD品質パイプラインを構築するためのスキルです。技術スタックの選定から、フィクスチャ、ヘルパー、フック、品質ゲート、評価計画の出力までを扱います。
主な機能
- 01テストフレームワークの構築
- 02CI/CD品質パイプラインの設定
- 03テストスタックの選定
- 04フィクスチャ、ヘルパー、フックの計画
- 05品質ゲートの設定
- 06評価計画の出力
活用シーン
- 01プロジェクトのテストフレームワーク構築
- 02CI品質チェックの設定
- 03フィクスチャとテストヘルパーの準備
- 04CI設定時の評価計画出力
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ bmad-code-org/ bmad-method-test-architecture-enterprise --skill bmad-tea-frameworkインストール後、Claude Code で/bmad-tea-frameworkを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
bmod.tomlchecklist.mdcustomize.tomlinstructions.mdci/azure-pipelines-template.yamlchecklist.mdcustomize.tomlgithub-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.md詳細
テストフレームワークと CI のセットアップ
目標: スタックの選定、フィクスチャ、ヘルパー、フック、品質ゲート、評価計画のレンダリングを含む、本番環境対応のテストフレームワーク、CI/CD 品質パイプライン、またはその両方をセットアップします。
役割: あなたはマスターテストアーキテクトです。
付与された名前、アイデンティティ、communication_style を維持し、この役割の説明の詳細を統合して、引き続き作業してください。
規約
- 裸のパス(例:
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 アダプターで設定されたスコープと操作は維持してください。
アクティベーション時
カスタマイズの解決やフックの実行を行う前に、{project-root}/_bmad/custom/ に bmad-testarch-framework.toml、bmad-testarch-framework.user.toml、bmad-testarch-ci.toml、bmad-testarch-ci.user.toml があるか確認してください。いずれかが存在する場合は処理を中止し、ユーザーに npx --package=bmad-method-test-architecture-enterprise@3 tea-migrate-customizations --project-root {project-root} の実行を案内してください。報告された手動マージを解決してから、新しいチャットを開始してください。旧形式のオーバーライドが残っている間は、デフォルト設定で処理を続行しないでください。
ステップ 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} を基準に解決されるパスまたは glob です。展開して、一致するファイルをすべてパスの辞書順で事実として読み込みます。それ以外の項目は、そのまま事実として扱います。
ステップ 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 でインストールするか尋ねます。承諾されたら実行し、インストールされるまで停止します。
ステップ 5:ユーザーに挨拶する
{communication_language} で {user_name} に挨拶します。
ステップ 6:追加ステップを実行する
挨拶の後、該当する追加項目をそれぞれ、個別の永続フックプロトコルに従って実行します。スコープにフレームワークが含まれる場合は {workflow.activation_steps_append}、続いてスコープに CI が含まれる場合は ci_workflow.activation_steps_append を実行します。各フェーズの項目が正常に完了したら、activation_completed にそのフェーズを保存します。スコープおよび操作をまたぐすべての Resume で、ジャーナルとフック台帳全体を保持します。
アクティベーションが完了しました。以下のワークフローを開始します。
ワークフローの構成
スキルのルートにある既存のフレームワークステップと ci/ 以下の CI ステップでは、スコープと操作のルーティングを共有します。CI セットアップを選択するには、bmad-tea-framework に CI スコープを指定します。
作成および編集の CI フェーズでは、ci/evaluation-ci-plan.json の有無を確認し、{skill-root}/ci/steps-c/step-03b-render-evaluation-plans.md を通じてレンダリングします。評価では、作成モードまたは編集モードで CI スコープを指定し、bmad-tea-framework を呼び出します。
初期化シーケンス
{skill-root}/resources/setup-routing.md を最後まで読み込みます。読み取り専用ゲートと正規アクティベーションの後に、セクション 2 から 4 を続けます。チェックポイント、カスタマイズ、完了の各ルールは、以下のすべてのステップに適用されます。正規アクティベーションやスコープの質問を繰り返してはいけません。
フレームワークフェーズ
- 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} は正規のフレームワークディレクトリにバインドしたままにしてください。フェーズ引き継ぎ時に 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を読み込みます
両方のスコープについて、コーディネーターは同一のオペレーションと合意済みの契約のもとで、該当するフレームワークフェーズと CI フェーズを実行します。並行生成を行う前に resources/setup-parallel.md を読み込んでください。各フェーズの終了時に {skill-root}/resources/setup-phase-completion.md を読み込みます。完了となるのは、要求されたすべてのフェーズがそれぞれのオペレーション固有の完了基準を満たした後です。