qaa-agent 1.6.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/.claude/commands/create-test.md +164 -164
  2. package/.claude/commands/qa-audit.md +37 -37
  3. package/.claude/commands/qa-blueprint.md +54 -54
  4. package/.claude/commands/qa-fix.md +36 -36
  5. package/.claude/commands/qa-from-ticket.md +24 -24
  6. package/.claude/commands/qa-gap.md +20 -20
  7. package/.claude/commands/qa-map.md +47 -47
  8. package/.claude/commands/qa-pom.md +36 -36
  9. package/.claude/commands/qa-pr.md +23 -23
  10. package/.claude/commands/qa-pyramid.md +37 -37
  11. package/.claude/commands/qa-report.md +38 -38
  12. package/.claude/commands/qa-research.md +33 -33
  13. package/.claude/commands/qa-start.md +22 -22
  14. package/.claude/commands/qa-testid.md +19 -19
  15. package/.claude/commands/qa-validate.md +42 -42
  16. package/.claude/commands/update-test.md +58 -58
  17. package/.claude/settings.json +20 -20
  18. package/.claude/skills/qa-bug-detective/SKILL.md +122 -122
  19. package/.claude/skills/qa-learner/SKILL.md +150 -150
  20. package/.claude/skills/qa-repo-analyzer/SKILL.md +88 -88
  21. package/.claude/skills/qa-self-validator/SKILL.md +109 -109
  22. package/.claude/skills/qa-template-engine/SKILL.md +113 -113
  23. package/.claude/skills/qa-testid-injector/SKILL.md +93 -93
  24. package/.claude/skills/qa-workflow-documenter/SKILL.md +87 -87
  25. package/.mcp.json +8 -8
  26. package/CHANGELOG.md +71 -71
  27. package/CLAUDE.md +553 -553
  28. package/agents/qa-pipeline-orchestrator.md +1378 -1378
  29. package/agents/qaa-analyzer.md +524 -524
  30. package/agents/qaa-bug-detective.md +446 -446
  31. package/agents/qaa-codebase-mapper.md +935 -935
  32. package/agents/qaa-e2e-runner.md +415 -415
  33. package/agents/qaa-executor.md +651 -651
  34. package/agents/qaa-planner.md +390 -390
  35. package/agents/qaa-project-researcher.md +319 -319
  36. package/agents/qaa-scanner.md +424 -424
  37. package/agents/qaa-testid-injector.md +585 -585
  38. package/agents/qaa-validator.md +452 -452
  39. package/bin/install.cjs +198 -198
  40. package/bin/lib/commands.cjs +709 -709
  41. package/bin/lib/config.cjs +307 -307
  42. package/bin/lib/core.cjs +497 -497
  43. package/bin/lib/frontmatter.cjs +299 -299
  44. package/bin/lib/init.cjs +989 -989
  45. package/bin/lib/milestone.cjs +241 -241
  46. package/bin/lib/model-profiles.cjs +60 -60
  47. package/bin/lib/phase.cjs +911 -911
  48. package/bin/lib/roadmap.cjs +306 -306
  49. package/bin/lib/state.cjs +748 -748
  50. package/bin/lib/template.cjs +222 -222
  51. package/bin/lib/verify.cjs +842 -842
  52. package/bin/qaa-tools.cjs +607 -607
  53. package/docs/COMMANDS.md +341 -341
  54. package/docs/DEMO.md +182 -182
  55. package/docs/TESTING.md +156 -156
  56. package/package.json +41 -41
  57. package/templates/failure-classification.md +391 -391
  58. package/templates/gap-analysis.md +409 -409
  59. package/templates/pr-template.md +48 -48
  60. package/templates/qa-analysis.md +381 -381
  61. package/templates/qa-audit-report.md +465 -465
  62. package/templates/qa-repo-blueprint.md +636 -636
  63. package/templates/scan-manifest.md +312 -312
  64. package/templates/test-inventory.md +582 -582
  65. package/templates/testid-audit-report.md +354 -354
  66. package/templates/validation-report.md +243 -243
  67. package/workflows/qa-analyze.md +296 -296
  68. package/workflows/qa-from-ticket.md +536 -536
  69. package/workflows/qa-gap.md +303 -303
  70. package/workflows/qa-pr.md +389 -389
  71. package/workflows/qa-start.md +1168 -1168
  72. package/workflows/qa-testid.md +356 -356
  73. package/workflows/qa-validate.md +295 -295
@@ -1,164 +1,164 @@
1
- # Create Automated Tests
2
-
3
- Generate production-ready test files with POM pattern for a specific feature or module. Reads codebase map, existing analysis artifacts, and CLAUDE.md standards to produce tests that match the project's actual code patterns. If E2E tests are generated and an app URL is available, runs them against the live app and fixes locators until they pass.
4
-
5
- ## Usage
6
-
7
- /create-test <feature-name> [--dev-repo <path>] [--app-url <url>] [--skip-run]
8
-
9
- - feature-name: which feature to test (e.g., "login", "checkout", "user API")
10
- - --dev-repo: path to developer repository (default: current directory)
11
- - --app-url: URL of running application for E2E test execution (auto-detects if not provided)
12
- - --skip-run: skip E2E execution, only generate and statically validate
13
-
14
- ## What It Produces
15
-
16
- - Test spec files (unit, API, E2E as appropriate for the feature)
17
- - Page Object Model files (for E2E tests)
18
- - Fixture files (test data)
19
- - E2E_RUN_REPORT.md (if E2E tests were run against live app)
20
-
21
- ## Instructions
22
-
23
- 1. Read `CLAUDE.md` -- POM rules, locator tiers, assertion rules, naming conventions, quality gates.
24
- 2. Read existing analysis artifacts if available:
25
- - `.qa-output/QA_ANALYSIS.md` -- architecture context
26
- - `.qa-output/TEST_INVENTORY.md` -- pre-defined test cases for this feature
27
- 3. Read codebase map if available (check `.qa-output/codebase/`):
28
- - `CODE_PATTERNS.md` -- naming conventions, import style, code patterns to match
29
- - `API_CONTRACTS.md` -- request/response shapes for API tests
30
- - `TEST_SURFACE.md` -- function signatures and testable entry points
31
- - `TESTABILITY.md` -- pure functions vs stateful code, mock boundaries
32
- If codebase map does not exist, run `/qa-map` first for best results, or proceed without it.
33
-
34
- 4. **Check existing locator registry and extract new locators from live app:**
35
-
36
- a. **Check the locator registry first.** Read `.qa-output/locators/LOCATOR_REGISTRY.md` if it exists. This is the accumulated registry of all locators previously extracted from the live app. Check if locators for this feature's pages already exist.
37
-
38
- b. **If locators for this feature's pages are already in the registry AND no `--app-url` was provided:** Skip browser extraction -- reuse existing locators. Print: `"Reusing cached locators for {feature} from registry."`
39
-
40
- c. **If locators are missing or `--app-url` was provided:** Use the Playwright MCP to navigate the app and extract real locators BEFORE generating tests.
41
-
42
- **Browser extraction process:**
43
-
44
- 1. Navigate to the feature's relevant pages:
45
- ```
46
- mcp__playwright__browser_navigate({ url: "{app_url}/{feature_path}" })
47
- ```
48
-
49
- 2. Take an accessibility snapshot of each page to discover all interactive elements:
50
- ```
51
- mcp__playwright__browser_snapshot()
52
- ```
53
-
54
- 3. Extract real locators from the snapshot -- collect:
55
- - All `data-testid` attributes present on the page
56
- - ARIA roles with accessible names (buttons, inputs, links, etc.)
57
- - Form labels and placeholders
58
- - Navigation structure and page layout
59
-
60
- 4. If the feature has multiple pages/views (e.g., login -> dashboard), navigate through the flow:
61
- ```
62
- mcp__playwright__browser_fill_form({ ... })
63
- mcp__playwright__browser_click({ element: "..." })
64
- mcp__playwright__browser_snapshot() // capture next page
65
- ```
66
-
67
- 5. Write per-feature locator file to `.qa-output/locators/{feature}.locators.md`:
68
- ```markdown
69
- # Locators -- {feature}
70
-
71
- Extracted: {date}
72
- App URL: {app_url}
73
-
74
- ## Page: {page_name} ({url})
75
-
76
- | Element | Locator Type | Locator Value | Tier |
77
- |---------|-------------|---------------|------|
78
- | Email input | data-testid | login-email-input | 1 |
79
- | Password input | data-testid | login-password-input | 1 |
80
- | Submit button | role + name | button "Log in" | 1 |
81
- | Remember me | label | "Remember me" | 2 |
82
-
83
- ## Page: {next_page} ({url})
84
- ...
85
- ```
86
-
87
- 6. Update the registry `.qa-output/locators/LOCATOR_REGISTRY.md` -- merge new locators into the central index:
88
- ```markdown
89
- # Locator Registry
90
-
91
- Last updated: {date}
92
- Total pages: {N}
93
- Total locators: {N}
94
-
95
- ## Index
96
-
97
- | Feature | File | Pages | Locators | Extracted |
98
- |---------|------|-------|----------|-----------|
99
- | login | login.locators.md | 2 | 14 | 2026-03-25 |
100
- | checkout | checkout.locators.md | 3 | 22 | 2026-03-25 |
101
- | dashboard | dashboard.locators.md | 1 | 8 | 2026-03-25 |
102
-
103
- ## All Locators by Page
104
-
105
- ### /login
106
- | Element | Locator Type | Locator Value | Tier | Source |
107
- |---------|-------------|---------------|------|--------|
108
- | Email input | data-testid | login-email-input | 1 | login.locators.md |
109
- | ... | ... | ... | ... | ... |
110
-
111
- ### /dashboard
112
- ...
113
- ```
114
-
115
- If no app URL is available and no locators exist in the registry for this feature, skip this step -- the executor will propose locators based on source code analysis and CLAUDE.md conventions.
116
-
117
- 5. Invoke executor agent to generate test files:
118
-
119
- Task(
120
- prompt="
121
- <objective>Generate test files for the specified feature following CLAUDE.md standards, using codebase map for context</objective>
122
- <execution_context>@agents/qaa-executor.md</execution_context>
123
- <files_to_read>
124
- - CLAUDE.md
125
- - .qa-output/locators/LOCATOR_REGISTRY.md (if exists -- accumulated real locators)
126
- - .qa-output/locators/{feature}.locators.md (if exists -- feature-specific locators)
127
- - .qa-output/codebase/CODE_PATTERNS.md (if exists)
128
- - .qa-output/codebase/API_CONTRACTS.md (if exists)
129
- - .qa-output/codebase/TEST_SURFACE.md (if exists)
130
- - .qa-output/codebase/TESTABILITY.md (if exists)
131
- </files_to_read>
132
- <parameters>
133
- user_input: $ARGUMENTS
134
- mode: feature-test
135
- codebase_map_dir: .qa-output/codebase
136
- locator_registry: .qa-output/locators/LOCATOR_REGISTRY.md
137
- </parameters>
138
- "
139
- )
140
-
141
- 6. If E2E test files were generated AND `--skip-run` was NOT passed, invoke the E2E runner to execute tests against the live app:
142
-
143
- Task(
144
- prompt="
145
- <objective>Run generated E2E tests against live application, capture real locators, fix mismatches, loop until pass</objective>
146
- <execution_context>@agents/qaa-e2e-runner.md</execution_context>
147
- <files_to_read>
148
- - CLAUDE.md
149
- - {generated E2E test files from executor return}
150
- - {generated POM files from executor return}
151
- </files_to_read>
152
- <parameters>
153
- app_url: {from --app-url flag or auto-detect}
154
- output_dir: .qa-output
155
- </parameters>
156
- "
157
- )
158
-
159
- 7. Present results:
160
- - List generated files with type counts (unit, API, E2E, POM, fixture)
161
- - If E2E runner executed: show pass/fail counts, locator fixes applied, app bugs found
162
- - Suggest `/qa-pr` to package as a pull request
163
-
164
- $ARGUMENTS
1
+ # Create Automated Tests
2
+
3
+ Generate production-ready test files with POM pattern for a specific feature or module. Reads codebase map, existing analysis artifacts, and CLAUDE.md standards to produce tests that match the project's actual code patterns. If E2E tests are generated and an app URL is available, runs them against the live app and fixes locators until they pass.
4
+
5
+ ## Usage
6
+
7
+ /create-test <feature-name> [--dev-repo <path>] [--app-url <url>] [--skip-run]
8
+
9
+ - feature-name: which feature to test (e.g., "login", "checkout", "user API")
10
+ - --dev-repo: path to developer repository (default: current directory)
11
+ - --app-url: URL of running application for E2E test execution (auto-detects if not provided)
12
+ - --skip-run: skip E2E execution, only generate and statically validate
13
+
14
+ ## What It Produces
15
+
16
+ - Test spec files (unit, API, E2E as appropriate for the feature)
17
+ - Page Object Model files (for E2E tests)
18
+ - Fixture files (test data)
19
+ - E2E_RUN_REPORT.md (if E2E tests were run against live app)
20
+
21
+ ## Instructions
22
+
23
+ 1. Read `CLAUDE.md` -- POM rules, locator tiers, assertion rules, naming conventions, quality gates.
24
+ 2. Read existing analysis artifacts if available:
25
+ - `.qa-output/QA_ANALYSIS.md` -- architecture context
26
+ - `.qa-output/TEST_INVENTORY.md` -- pre-defined test cases for this feature
27
+ 3. Read codebase map if available (check `.qa-output/codebase/`):
28
+ - `CODE_PATTERNS.md` -- naming conventions, import style, code patterns to match
29
+ - `API_CONTRACTS.md` -- request/response shapes for API tests
30
+ - `TEST_SURFACE.md` -- function signatures and testable entry points
31
+ - `TESTABILITY.md` -- pure functions vs stateful code, mock boundaries
32
+ If codebase map does not exist, run `/qa-map` first for best results, or proceed without it.
33
+
34
+ 4. **Check existing locator registry and extract new locators from live app:**
35
+
36
+ a. **Check the locator registry first.** Read `.qa-output/locators/LOCATOR_REGISTRY.md` if it exists. This is the accumulated registry of all locators previously extracted from the live app. Check if locators for this feature's pages already exist.
37
+
38
+ b. **If locators for this feature's pages are already in the registry AND no `--app-url` was provided:** Skip browser extraction -- reuse existing locators. Print: `"Reusing cached locators for {feature} from registry."`
39
+
40
+ c. **If locators are missing or `--app-url` was provided:** Use the Playwright MCP to navigate the app and extract real locators BEFORE generating tests.
41
+
42
+ **Browser extraction process:**
43
+
44
+ 1. Navigate to the feature's relevant pages:
45
+ ```
46
+ mcp__playwright__browser_navigate({ url: "{app_url}/{feature_path}" })
47
+ ```
48
+
49
+ 2. Take an accessibility snapshot of each page to discover all interactive elements:
50
+ ```
51
+ mcp__playwright__browser_snapshot()
52
+ ```
53
+
54
+ 3. Extract real locators from the snapshot -- collect:
55
+ - All `data-testid` attributes present on the page
56
+ - ARIA roles with accessible names (buttons, inputs, links, etc.)
57
+ - Form labels and placeholders
58
+ - Navigation structure and page layout
59
+
60
+ 4. If the feature has multiple pages/views (e.g., login -> dashboard), navigate through the flow:
61
+ ```
62
+ mcp__playwright__browser_fill_form({ ... })
63
+ mcp__playwright__browser_click({ element: "..." })
64
+ mcp__playwright__browser_snapshot() // capture next page
65
+ ```
66
+
67
+ 5. Write per-feature locator file to `.qa-output/locators/{feature}.locators.md`:
68
+ ```markdown
69
+ # Locators -- {feature}
70
+
71
+ Extracted: {date}
72
+ App URL: {app_url}
73
+
74
+ ## Page: {page_name} ({url})
75
+
76
+ | Element | Locator Type | Locator Value | Tier |
77
+ |---------|-------------|---------------|------|
78
+ | Email input | data-testid | login-email-input | 1 |
79
+ | Password input | data-testid | login-password-input | 1 |
80
+ | Submit button | role + name | button "Log in" | 1 |
81
+ | Remember me | label | "Remember me" | 2 |
82
+
83
+ ## Page: {next_page} ({url})
84
+ ...
85
+ ```
86
+
87
+ 6. Update the registry `.qa-output/locators/LOCATOR_REGISTRY.md` -- merge new locators into the central index:
88
+ ```markdown
89
+ # Locator Registry
90
+
91
+ Last updated: {date}
92
+ Total pages: {N}
93
+ Total locators: {N}
94
+
95
+ ## Index
96
+
97
+ | Feature | File | Pages | Locators | Extracted |
98
+ |---------|------|-------|----------|-----------|
99
+ | login | login.locators.md | 2 | 14 | 2026-03-25 |
100
+ | checkout | checkout.locators.md | 3 | 22 | 2026-03-25 |
101
+ | dashboard | dashboard.locators.md | 1 | 8 | 2026-03-25 |
102
+
103
+ ## All Locators by Page
104
+
105
+ ### /login
106
+ | Element | Locator Type | Locator Value | Tier | Source |
107
+ |---------|-------------|---------------|------|--------|
108
+ | Email input | data-testid | login-email-input | 1 | login.locators.md |
109
+ | ... | ... | ... | ... | ... |
110
+
111
+ ### /dashboard
112
+ ...
113
+ ```
114
+
115
+ If no app URL is available and no locators exist in the registry for this feature, skip this step -- the executor will propose locators based on source code analysis and CLAUDE.md conventions.
116
+
117
+ 5. Invoke executor agent to generate test files:
118
+
119
+ Task(
120
+ prompt="
121
+ <objective>Generate test files for the specified feature following CLAUDE.md standards, using codebase map for context</objective>
122
+ <execution_context>@agents/qaa-executor.md</execution_context>
123
+ <files_to_read>
124
+ - CLAUDE.md
125
+ - .qa-output/locators/LOCATOR_REGISTRY.md (if exists -- accumulated real locators)
126
+ - .qa-output/locators/{feature}.locators.md (if exists -- feature-specific locators)
127
+ - .qa-output/codebase/CODE_PATTERNS.md (if exists)
128
+ - .qa-output/codebase/API_CONTRACTS.md (if exists)
129
+ - .qa-output/codebase/TEST_SURFACE.md (if exists)
130
+ - .qa-output/codebase/TESTABILITY.md (if exists)
131
+ </files_to_read>
132
+ <parameters>
133
+ user_input: $ARGUMENTS
134
+ mode: feature-test
135
+ codebase_map_dir: .qa-output/codebase
136
+ locator_registry: .qa-output/locators/LOCATOR_REGISTRY.md
137
+ </parameters>
138
+ "
139
+ )
140
+
141
+ 6. If E2E test files were generated AND `--skip-run` was NOT passed, invoke the E2E runner to execute tests against the live app:
142
+
143
+ Task(
144
+ prompt="
145
+ <objective>Run generated E2E tests against live application, capture real locators, fix mismatches, loop until pass</objective>
146
+ <execution_context>@agents/qaa-e2e-runner.md</execution_context>
147
+ <files_to_read>
148
+ - CLAUDE.md
149
+ - {generated E2E test files from executor return}
150
+ - {generated POM files from executor return}
151
+ </files_to_read>
152
+ <parameters>
153
+ app_url: {from --app-url flag or auto-detect}
154
+ output_dir: .qa-output
155
+ </parameters>
156
+ "
157
+ )
158
+
159
+ 7. Present results:
160
+ - List generated files with type counts (unit, API, E2E, POM, fixture)
161
+ - If E2E runner executed: show pass/fail counts, locator fixes applied, app bugs found
162
+ - Suggest `/qa-pr` to package as a pull request
163
+
164
+ $ARGUMENTS
@@ -1,37 +1,37 @@
1
- # Full QA Audit
2
-
3
- Comprehensive quality audit of a test suite against CLAUDE.md standards. Scores across 6 dimensions: Locator Quality (20%), Assertion Specificity (20%), POM Compliance (15%), Test Coverage (20%), Naming Convention (15%), Test Data Management (10%).
4
-
5
- ## Usage
6
-
7
- /qa-audit <path-to-tests> [--dev-repo <path>]
8
-
9
- - path-to-tests: directory containing test files to audit
10
- - --dev-repo: path to developer repository (for coverage cross-reference)
11
-
12
- ## What It Produces
13
-
14
- - QA_AUDIT_REPORT.md -- 6-dimension scoring, critical issues list, prioritized recommendations with effort estimates
15
-
16
- ## Instructions
17
-
18
- 1. Read `CLAUDE.md` -- quality gates, locator tiers, assertion rules, POM rules, naming conventions.
19
- 2. Invoke validator agent in audit mode:
20
-
21
- Task(
22
- prompt="
23
- <objective>Audit test suite quality and produce QA_AUDIT_REPORT.md with 6-dimension scoring</objective>
24
- <execution_context>@agents/qaa-validator.md</execution_context>
25
- <files_to_read>
26
- - CLAUDE.md
27
- </files_to_read>
28
- <parameters>
29
- user_input: $ARGUMENTS
30
- mode: audit
31
- </parameters>
32
- "
33
- )
34
-
35
- 3. Present results with overall score and prioritized recommendations.
36
-
37
- $ARGUMENTS
1
+ # Full QA Audit
2
+
3
+ Comprehensive quality audit of a test suite against CLAUDE.md standards. Scores across 6 dimensions: Locator Quality (20%), Assertion Specificity (20%), POM Compliance (15%), Test Coverage (20%), Naming Convention (15%), Test Data Management (10%).
4
+
5
+ ## Usage
6
+
7
+ /qa-audit <path-to-tests> [--dev-repo <path>]
8
+
9
+ - path-to-tests: directory containing test files to audit
10
+ - --dev-repo: path to developer repository (for coverage cross-reference)
11
+
12
+ ## What It Produces
13
+
14
+ - QA_AUDIT_REPORT.md -- 6-dimension scoring, critical issues list, prioritized recommendations with effort estimates
15
+
16
+ ## Instructions
17
+
18
+ 1. Read `CLAUDE.md` -- quality gates, locator tiers, assertion rules, POM rules, naming conventions.
19
+ 2. Invoke validator agent in audit mode:
20
+
21
+ Task(
22
+ prompt="
23
+ <objective>Audit test suite quality and produce QA_AUDIT_REPORT.md with 6-dimension scoring</objective>
24
+ <execution_context>@agents/qaa-validator.md</execution_context>
25
+ <files_to_read>
26
+ - CLAUDE.md
27
+ </files_to_read>
28
+ <parameters>
29
+ user_input: $ARGUMENTS
30
+ mode: audit
31
+ </parameters>
32
+ "
33
+ )
34
+
35
+ 3. Present results with overall score and prioritized recommendations.
36
+
37
+ $ARGUMENTS
@@ -1,54 +1,54 @@
1
- # QA Repository Blueprint
2
-
3
- Generate a complete QA repository structure blueprint for a project that has no existing QA repo. Includes recommended stack, folder structure, config files, CI/CD pipeline, and definition of done.
4
-
5
- ## Usage
6
-
7
- /qa-blueprint [--dev-repo <path>]
8
-
9
- - No arguments: analyzes current directory
10
- - --dev-repo: explicit path to developer repository
11
-
12
- ## What It Produces
13
-
14
- - SCAN_MANIFEST.md -- dev repo scan with framework detection
15
- - QA_REPO_BLUEPRINT.md -- folder structure, recommended stack, config files, CI/CD strategy
16
-
17
- ## Instructions
18
-
19
- 1. Read `CLAUDE.md` -- repo structure, naming conventions, testing pyramid.
20
- 2. Invoke scanner agent:
21
-
22
- Task(
23
- prompt="
24
- <objective>Scan developer repository and produce SCAN_MANIFEST.md</objective>
25
- <execution_context>@agents/qaa-scanner.md</execution_context>
26
- <files_to_read>
27
- - CLAUDE.md
28
- </files_to_read>
29
- <parameters>
30
- user_input: $ARGUMENTS
31
- </parameters>
32
- "
33
- )
34
-
35
- 3. Invoke analyzer agent in full mode (blueprint):
36
-
37
- Task(
38
- prompt="
39
- <objective>Produce QA_REPO_BLUEPRINT.md with complete repository structure</objective>
40
- <execution_context>@agents/qaa-analyzer.md</execution_context>
41
- <files_to_read>
42
- - CLAUDE.md
43
- - .qa-output/SCAN_MANIFEST.md
44
- </files_to_read>
45
- <parameters>
46
- user_input: $ARGUMENTS
47
- mode: full
48
- </parameters>
49
- "
50
- )
51
-
52
- 4. Present blueprint to user. No git operations.
53
-
54
- $ARGUMENTS
1
+ # QA Repository Blueprint
2
+
3
+ Generate a complete QA repository structure blueprint for a project that has no existing QA repo. Includes recommended stack, folder structure, config files, CI/CD pipeline, and definition of done.
4
+
5
+ ## Usage
6
+
7
+ /qa-blueprint [--dev-repo <path>]
8
+
9
+ - No arguments: analyzes current directory
10
+ - --dev-repo: explicit path to developer repository
11
+
12
+ ## What It Produces
13
+
14
+ - SCAN_MANIFEST.md -- dev repo scan with framework detection
15
+ - QA_REPO_BLUEPRINT.md -- folder structure, recommended stack, config files, CI/CD strategy
16
+
17
+ ## Instructions
18
+
19
+ 1. Read `CLAUDE.md` -- repo structure, naming conventions, testing pyramid.
20
+ 2. Invoke scanner agent:
21
+
22
+ Task(
23
+ prompt="
24
+ <objective>Scan developer repository and produce SCAN_MANIFEST.md</objective>
25
+ <execution_context>@agents/qaa-scanner.md</execution_context>
26
+ <files_to_read>
27
+ - CLAUDE.md
28
+ </files_to_read>
29
+ <parameters>
30
+ user_input: $ARGUMENTS
31
+ </parameters>
32
+ "
33
+ )
34
+
35
+ 3. Invoke analyzer agent in full mode (blueprint):
36
+
37
+ Task(
38
+ prompt="
39
+ <objective>Produce QA_REPO_BLUEPRINT.md with complete repository structure</objective>
40
+ <execution_context>@agents/qaa-analyzer.md</execution_context>
41
+ <files_to_read>
42
+ - CLAUDE.md
43
+ - .qa-output/SCAN_MANIFEST.md
44
+ </files_to_read>
45
+ <parameters>
46
+ user_input: $ARGUMENTS
47
+ mode: full
48
+ </parameters>
49
+ "
50
+ )
51
+
52
+ 4. Present blueprint to user. No git operations.
53
+
54
+ $ARGUMENTS
@@ -1,36 +1,36 @@
1
- # Fix Broken Tests
2
-
3
- Diagnose and fix broken test files. Classifies each failure as APPLICATION BUG, TEST CODE ERROR, ENVIRONMENT ISSUE, or INCONCLUSIVE. Auto-fixes only TEST CODE ERRORS. Never touches application code -- only reports APP BUGs for developer attention.
4
-
5
- ## Usage
6
-
7
- /qa-fix <path-to-tests> [error output]
8
-
9
- - path-to-tests: directory or specific test files with failures
10
- - error output: paste test runner output (optional -- agent will run tests if not provided)
11
-
12
- ## What It Produces
13
-
14
- - FAILURE_CLASSIFICATION_REPORT.md -- per-failure classification with evidence, confidence, and auto-fix log
15
-
16
- ## Instructions
17
-
18
- 1. Read `CLAUDE.md` -- classification rules, locator tiers, assertion quality.
19
- 2. Invoke bug-detective agent:
20
-
21
- Task(
22
- prompt="
23
- <objective>Run tests, classify failures, and auto-fix TEST CODE ERRORS</objective>
24
- <execution_context>@agents/qaa-bug-detective.md</execution_context>
25
- <files_to_read>
26
- - CLAUDE.md
27
- </files_to_read>
28
- <parameters>
29
- user_input: $ARGUMENTS
30
- </parameters>
31
- "
32
- )
33
-
34
- 3. Present results. APPLICATION BUGs are reported for developer action, not auto-fixed.
35
-
36
- $ARGUMENTS
1
+ # Fix Broken Tests
2
+
3
+ Diagnose and fix broken test files. Classifies each failure as APPLICATION BUG, TEST CODE ERROR, ENVIRONMENT ISSUE, or INCONCLUSIVE. Auto-fixes only TEST CODE ERRORS. Never touches application code -- only reports APP BUGs for developer attention.
4
+
5
+ ## Usage
6
+
7
+ /qa-fix <path-to-tests> [error output]
8
+
9
+ - path-to-tests: directory or specific test files with failures
10
+ - error output: paste test runner output (optional -- agent will run tests if not provided)
11
+
12
+ ## What It Produces
13
+
14
+ - FAILURE_CLASSIFICATION_REPORT.md -- per-failure classification with evidence, confidence, and auto-fix log
15
+
16
+ ## Instructions
17
+
18
+ 1. Read `CLAUDE.md` -- classification rules, locator tiers, assertion quality.
19
+ 2. Invoke bug-detective agent:
20
+
21
+ Task(
22
+ prompt="
23
+ <objective>Run tests, classify failures, and auto-fix TEST CODE ERRORS</objective>
24
+ <execution_context>@agents/qaa-bug-detective.md</execution_context>
25
+ <files_to_read>
26
+ - CLAUDE.md
27
+ </files_to_read>
28
+ <parameters>
29
+ user_input: $ARGUMENTS
30
+ </parameters>
31
+ "
32
+ )
33
+
34
+ 3. Present results. APPLICATION BUGs are reported for developer action, not auto-fixed.
35
+
36
+ $ARGUMENTS
@@ -1,24 +1,24 @@
1
- # Create Tests from Ticket
2
-
3
- Generate test cases and executable test files from a ticket (Jira, Linear, GitHub Issue, or plain text user story). Combines the ticket's acceptance criteria with actual source code analysis to produce targeted, concrete tests. If an app URL is available, navigates the live app with Playwright MCP to extract real locators before generating tests.
4
-
5
- ## Usage
6
-
7
- /qa-from-ticket <ticket-source> [--dev-repo <path>] [--app-url <url>]
8
-
9
- - ticket-source: one of:
10
- - URL to GitHub/Jira/Linear issue
11
- - Plain text user story or acceptance criteria
12
- - File path to a .md or .txt with ticket details
13
- - --dev-repo: path to developer repository (default: current directory)
14
- - --app-url: URL of running application for browser-based locator extraction (auto-detects if not provided)
15
-
16
- ## Instructions
17
-
18
- 1. Read `CLAUDE.md` -- all QA standards.
19
- 2. Execute the workflow:
20
-
21
- Follow the workflow defined in `@workflows/qa-from-ticket.md` end-to-end.
22
- Preserve all workflow gates (ticket parsing, traceability, validation).
23
-
24
- $ARGUMENTS
1
+ # Create Tests from Ticket
2
+
3
+ Generate test cases and executable test files from a ticket (Jira, Linear, GitHub Issue, or plain text user story). Combines the ticket's acceptance criteria with actual source code analysis to produce targeted, concrete tests. If an app URL is available, navigates the live app with Playwright MCP to extract real locators before generating tests.
4
+
5
+ ## Usage
6
+
7
+ /qa-from-ticket <ticket-source> [--dev-repo <path>] [--app-url <url>]
8
+
9
+ - ticket-source: one of:
10
+ - URL to GitHub/Jira/Linear issue
11
+ - Plain text user story or acceptance criteria
12
+ - File path to a .md or .txt with ticket details
13
+ - --dev-repo: path to developer repository (default: current directory)
14
+ - --app-url: URL of running application for browser-based locator extraction (auto-detects if not provided)
15
+
16
+ ## Instructions
17
+
18
+ 1. Read `CLAUDE.md` -- all QA standards.
19
+ 2. Execute the workflow:
20
+
21
+ Follow the workflow defined in `@workflows/qa-from-ticket.md` end-to-end.
22
+ Preserve all workflow gates (ticket parsing, traceability, validation).
23
+
24
+ $ARGUMENTS