From a62e7a3c2513e601f31fd2f41b874cf29bf2411a Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Sat, 14 Mar 2026 13:38:42 -0600 Subject: [PATCH] Convert qa-generate-e2e-tests workflow to native skill packaging (#1951) * convert qa-generate-e2e-tests to native skill packaging * fix(bmm): remove workflow metadata and normalize refs for qa-generate-e2e-tests Remove name/description from workflow.md (belongs in SKILL.md). Normalize installed_path to relative. Update QA agent exec to skill URI. Co-Authored-By: Claude Opus 4.6 (1M context) --------- Co-authored-by: Claude Opus 4.6 (1M context) --- src/bmm/agents/qa.agent.yaml | 2 +- src/bmm/module-help.csv | 2 +- src/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md | 6 ++++++ .../bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml | 1 + .../checklist.md | 0 .../workflow.md | 9 ++------- .../qa-generate-e2e-tests/bmad-skill-manifest.yaml | 3 --- 7 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 src/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md create mode 100644 src/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml rename src/bmm/workflows/{qa-generate-e2e-tests => bmad-qa-generate-e2e-tests}/checklist.md (100%) rename src/bmm/workflows/{qa-generate-e2e-tests => bmad-qa-generate-e2e-tests}/workflow.md (91%) delete mode 100644 src/bmm/workflows/qa-generate-e2e-tests/bmad-skill-manifest.yaml diff --git a/src/bmm/agents/qa.agent.yaml b/src/bmm/agents/qa.agent.yaml index 65b0711b2..c5aa97fdd 100644 --- a/src/bmm/agents/qa.agent.yaml +++ b/src/bmm/agents/qa.agent.yaml @@ -29,7 +29,7 @@ agent: menu: - trigger: QA or fuzzy match on qa-automate - exec: "{project-root}/_bmad/bmm/workflows/qa-generate-e2e-tests/workflow.md" + exec: "skill:bmad-qa-generate-e2e-tests" description: "[QA] Automate - Generate tests for existing features (simplified)" prompts: diff --git a/src/bmm/module-help.csv b/src/bmm/module-help.csv index 997732fa5..116f84fa6 100644 --- a/src/bmm/module-help.csv +++ b/src/bmm/module-help.csv @@ -28,5 +28,5 @@ bmm,4-implementation,Validate Story,VS,35,skill:bmad-create-story,bmad-bmm-creat bmm,4-implementation,Create Story,CS,30,skill:bmad-create-story,bmad-bmm-create-story,true,sm,Create Mode,"Story cycle start: Prepare first found story in the sprint plan that is next, or if the command is run with a specific epic and story designation with context. Once complete, then VS then DS then CR then back to DS if needed or next CS or ER",implementation_artifacts,story, bmm,4-implementation,Dev Story,DS,40,skill:bmad-dev-story,bmad-bmm-dev-story,true,dev,Create Mode,"Story cycle: Execute story implementation tasks and tests then CR then back to DS if fixes needed",,, bmm,4-implementation,Code Review,CR,50,skill:bmad-code-review,bmad-bmm-code-review,false,dev,Create Mode,"Story cycle: If issues back to DS if approved then next CS or ER if epic complete",,, -bmm,4-implementation,QA Automation Test,QA,45,_bmad/bmm/workflows/qa-generate-e2e-tests/workflow.md,bmad-bmm-qa-automate,false,qa,Create Mode,"Generate automated API and E2E tests for implemented code using the project's existing test framework (detects existing well known in use test frameworks). Use after implementation to add test coverage. NOT for code review or story validation - use CR for that.",implementation_artifacts,"test suite", +bmm,4-implementation,QA Automation Test,QA,45,skill:bmad-qa-generate-e2e-tests,bmad-bmm-qa-automate,false,qa,Create Mode,"Generate automated API and E2E tests for implemented code using the project's existing test framework (detects existing well known in use test frameworks). Use after implementation to add test coverage. NOT for code review or story validation - use CR for that.",implementation_artifacts,"test suite", bmm,4-implementation,Retrospective,ER,60,skill:bmad-retrospective,bmad-bmm-retrospective,false,sm,Create Mode,"Optional at epic end: Review completed work lessons learned and next epic or if major issues consider CC",implementation_artifacts,retrospective, diff --git a/src/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md b/src/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md new file mode 100644 index 000000000..b34d2fc9c --- /dev/null +++ b/src/bmm/workflows/bmad-qa-generate-e2e-tests/SKILL.md @@ -0,0 +1,6 @@ +--- +name: bmad-qa-generate-e2e-tests +description: 'Generate end to end automated tests for existing features. Use when the user says "create qa automated tests for [feature]"' +--- + +Follow the instructions in [workflow.md](workflow.md). diff --git a/src/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml b/src/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml new file mode 100644 index 000000000..d0f08abdb --- /dev/null +++ b/src/bmm/workflows/bmad-qa-generate-e2e-tests/bmad-skill-manifest.yaml @@ -0,0 +1 @@ +type: skill diff --git a/src/bmm/workflows/qa-generate-e2e-tests/checklist.md b/src/bmm/workflows/bmad-qa-generate-e2e-tests/checklist.md similarity index 100% rename from src/bmm/workflows/qa-generate-e2e-tests/checklist.md rename to src/bmm/workflows/bmad-qa-generate-e2e-tests/checklist.md diff --git a/src/bmm/workflows/qa-generate-e2e-tests/workflow.md b/src/bmm/workflows/bmad-qa-generate-e2e-tests/workflow.md similarity index 91% rename from src/bmm/workflows/qa-generate-e2e-tests/workflow.md rename to src/bmm/workflows/bmad-qa-generate-e2e-tests/workflow.md index f911090b0..98f4cfe57 100644 --- a/src/bmm/workflows/qa-generate-e2e-tests/workflow.md +++ b/src/bmm/workflows/bmad-qa-generate-e2e-tests/workflow.md @@ -1,8 +1,3 @@ ---- -name: qa-generate-e2e-tests -description: 'Generate end to end automated tests for existing features. Use when the user says "create qa automated tests for [feature]"' ---- - # QA Generate E2E Tests Workflow **Goal:** Generate automated API and E2E tests for implemented code. @@ -25,8 +20,8 @@ Load config from `{project-root}/_bmad/bmm/config.yaml` and resolve: ### Paths -- `installed_path` = `{project-root}/_bmad/bmm/workflows/qa-generate-e2e-tests` -- `checklist` = `{installed_path}/checklist.md` +- `installed_path` = `.` +- `checklist` = `./checklist.md` - `test_dir` = `{project-root}/tests` - `source_dir` = `{project-root}` - `default_output_file` = `{implementation_artifacts}/tests/test-summary.md` diff --git a/src/bmm/workflows/qa-generate-e2e-tests/bmad-skill-manifest.yaml b/src/bmm/workflows/qa-generate-e2e-tests/bmad-skill-manifest.yaml deleted file mode 100644 index 20e08be69..000000000 --- a/src/bmm/workflows/qa-generate-e2e-tests/bmad-skill-manifest.yaml +++ /dev/null @@ -1,3 +0,0 @@ -canonicalId: bmad-qa-generate-e2e-tests -type: workflow -description: "Generate end-to-end automated tests for existing features"