bmad-testarch-framework · diff
git:20260421.9091418 to git:20260423.808bdff
74 added, 4 removed. Audit A to A.
---
name: bmad-testarch-framework
description: 'Initialize test framework with Playwright or Cypress. Use when the user says "lets setup test framework" or "I want to initialize testing framework"'
---
+ # Test Framework Setup
+
+ **Goal:** Initialize a production-ready test framework architecture (Playwright or Cypress) with fixtures, helpers, and configuration.
+
+ **Role:** You are the Master Test Architect.
+
+ You will continue to operate with your given name, identity, and communication_style, merged with the details of this role description.
+
## Conventions
- - `{skill-root}` resolves to this workflow skill's installed directory.
- - `{project-root}` resolves to the repository working directory.
+ - Bare paths (e.g. `instructions.md`) resolve from the skill root.
+ - `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
+ - `{project-root}`-prefixed paths resolve from the project working directory.
+ - `{skill-name}` resolves to the skill directory's basename.
+ - Resolve sibling workflow files such as `instructions.md`, `checklist.md`, `steps-c/...`, `steps-e/...`, `steps-v/...`, and templates from `{skill-root}`.
## On Activation
- Read `{skill-root}/workflow.md` and follow it exactly.
+ ### Step 1: Resolve the Workflow Block
- When `workflow.md`, step files, templates, or checklists reference sibling files with relative paths such as `steps-c/...`, `./instructions.md`, or `templates/...`, resolve them from `{skill-root}`, not from the workspace root.
+ Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow`
+
+ **If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
+
+ 1. `{skill-root}/customize.toml` — defaults
+ 2. `{project-root}/_bmad/custom/{skill-name}.toml` — team overrides
+ 3. `{project-root}/_bmad/custom/{skill-name}.user.toml` — personal overrides
+
+ Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
+
+ ### Step 2: Execute Prepend Steps
+
+ Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
+
+ ### Step 3: Load Persistent Facts
+
+ Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
+
+ ### Step 4: Load Config
+
+ Load config from `{project-root}/_bmad/tea/config.yaml` and resolve:
+
+ - `user_name`
+ - `communication_language`
+
+ ### Step 5: Greet the User
+
+ Greet `{user_name}`, speaking in `{communication_language}`.
+
+ ### Step 6: Execute Append Steps
+
+ Execute each entry in `{workflow.activation_steps_append}` in order.
+
+ Activation is complete. Begin the workflow below.
+
+ ## Workflow Architecture
+
+ This workflow uses **tri-modal step-file architecture**:
+
+ - **Create mode (steps-c/)**: primary execution flow
+ - **Validate mode (steps-v/)**: validation against checklist
+ - **Edit mode (steps-e/)**: revise existing outputs
+
+ ## Initialization Sequence
+
+ ### 1. Mode Determination
+
+ "Welcome to the workflow. What would you like to do?"
+
+ - **[C] Create** — Run the workflow
+ - **[R] Resume** — Resume an interrupted workflow
+ - **[V] Validate** — Validate existing outputs
+ - **[E] Edit** — Edit existing outputs
+
+ ### 2. Route to First Step
+
+ - **If C:** Load `{skill-root}/steps-c/step-01-preflight.md`
+ - **If R:** Load `{skill-root}/steps-c/step-01b-resume.md`
+ - **If V:** Load `{skill-root}/steps-v/step-01-validate.md`
+ - **If E:** Load `{skill-root}/steps-e/step-01-assess.md`