qaa-agent 1.6.3 → 1.7.0
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.
- package/CHANGELOG.md +22 -0
- package/agents/qaa-analyzer.md +16 -1
- package/agents/qaa-bug-detective.md +33 -0
- package/agents/qaa-discovery.md +384 -0
- package/agents/qaa-e2e-runner.md +7 -6
- package/agents/qaa-planner.md +16 -1
- package/agents/qaa-testid-injector.md +60 -2
- package/agents/qaa-validator.md +38 -0
- package/bin/install.cjs +11 -9
- package/commands/qa-audit.md +119 -0
- package/commands/qa-create-test.md +288 -0
- package/commands/qa-fix.md +147 -0
- package/commands/qa-map.md +137 -0
- package/package.json +40 -41
- package/{.claude/settings.json → settings.json} +19 -20
- package/{.claude/skills → skills}/qa-bug-detective/SKILL.md +122 -122
- package/{.claude/skills → skills}/qa-repo-analyzer/SKILL.md +88 -88
- package/{.claude/skills → skills}/qa-self-validator/SKILL.md +109 -109
- package/{.claude/skills → skills}/qa-template-engine/SKILL.md +113 -113
- package/{.claude/skills → skills}/qa-testid-injector/SKILL.md +93 -93
- package/{.claude/skills → skills}/qa-workflow-documenter/SKILL.md +87 -87
- package/workflows/qa-gap.md +7 -1
- package/workflows/qa-start.md +25 -1
- package/workflows/qa-testid.md +29 -1
- package/workflows/qa-validate.md +5 -1
- package/.claude/commands/create-test.md +0 -164
- package/.claude/commands/qa-audit.md +0 -37
- package/.claude/commands/qa-blueprint.md +0 -54
- package/.claude/commands/qa-fix.md +0 -36
- package/.claude/commands/qa-from-ticket.md +0 -24
- package/.claude/commands/qa-gap.md +0 -20
- package/.claude/commands/qa-map.md +0 -47
- package/.claude/commands/qa-pom.md +0 -36
- package/.claude/commands/qa-pyramid.md +0 -37
- package/.claude/commands/qa-report.md +0 -38
- package/.claude/commands/qa-research.md +0 -33
- package/.claude/commands/qa-validate.md +0 -42
- package/.claude/commands/update-test.md +0 -58
- package/.claude/skills/qa-learner/SKILL.md +0 -150
- /package/{.claude/commands → commands}/qa-pr.md +0 -0
- /package/{.claude/commands → commands}/qa-start.md +0 -0
- /package/{.claude/commands → commands}/qa-testid.md +0 -0
|
@@ -1,164 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
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,20 +0,0 @@
|
|
|
1
|
-
# QA Gap Analysis
|
|
2
|
-
|
|
3
|
-
Compare a developer repository against its QA repository to identify coverage gaps. Requires both repo paths. Produces a detailed gap report showing missing tests, broken tests, and quality assessment.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
/qa-gap --dev-repo <path> --qa-repo <path>
|
|
8
|
-
|
|
9
|
-
- --dev-repo: path to the developer repository (required)
|
|
10
|
-
- --qa-repo: path to the existing QA repository (required)
|
|
11
|
-
|
|
12
|
-
## Instructions
|
|
13
|
-
|
|
14
|
-
1. Read `CLAUDE.md` -- testing pyramid, test spec rules, quality gates.
|
|
15
|
-
2. Execute the workflow:
|
|
16
|
-
|
|
17
|
-
Follow the workflow defined in `@workflows/qa-gap.md` end-to-end.
|
|
18
|
-
Preserve all workflow gates (both-repo scanning, gap metrics).
|
|
19
|
-
|
|
20
|
-
$ARGUMENTS
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# QA Codebase Map & Analysis
|
|
2
|
-
|
|
3
|
-
Deep-scan a codebase for QA-relevant information and produce a complete analysis. Runs codebase mapping (4 parallel agents) followed by repository analysis. One command to fully understand a codebase before writing tests.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
/qa-map [--focus <area>] [--dev-repo <path>] [--qa-repo <path>]
|
|
8
|
-
|
|
9
|
-
- No arguments: runs full map + analysis on current directory
|
|
10
|
-
- --focus: run a single map area only, skip analysis (testability, risk, patterns, existing-tests)
|
|
11
|
-
- --dev-repo: explicit path to developer repository
|
|
12
|
-
- --qa-repo: path to existing QA repository (produces gap analysis instead of blueprint)
|
|
13
|
-
|
|
14
|
-
## What It Produces
|
|
15
|
-
|
|
16
|
-
### Stage 1: Codebase Map (4 parallel agents)
|
|
17
|
-
- TESTABILITY.md + TEST_SURFACE.md — what's testable, entry points, mocking needs
|
|
18
|
-
- RISK_MAP.md + CRITICAL_PATHS.md — business-critical paths, error handling gaps
|
|
19
|
-
- CODE_PATTERNS.md + API_CONTRACTS.md — naming conventions, API shapes, auth patterns
|
|
20
|
-
- TEST_ASSESSMENT.md + COVERAGE_GAPS.md — existing test quality, what's missing
|
|
21
|
-
|
|
22
|
-
### Stage 2: Repository Analysis
|
|
23
|
-
- SCAN_MANIFEST.md — file tree, framework detection, testable surfaces
|
|
24
|
-
- QA_ANALYSIS.md — architecture overview, risk assessment, top 10 unit targets, testing pyramid
|
|
25
|
-
- TEST_INVENTORY.md — every test case with ID, target, inputs, expected outcome, priority
|
|
26
|
-
- QA_REPO_BLUEPRINT.md (no QA repo) or GAP_ANALYSIS.md (QA repo provided)
|
|
27
|
-
|
|
28
|
-
## Instructions
|
|
29
|
-
|
|
30
|
-
1. Read `CLAUDE.md` — QA standards.
|
|
31
|
-
2. Create output directory: `.qa-output/codebase/`
|
|
32
|
-
3. If no --focus flag, spawn 4 agents in parallel (one per focus area):
|
|
33
|
-
|
|
34
|
-
For each focus area, spawn:
|
|
35
|
-
|
|
36
|
-
Agent(
|
|
37
|
-
prompt="Analyze this codebase for QA purposes. Focus area: {focus}. Write documents to .qa-output/codebase/. Follow the process in your agent definition.",
|
|
38
|
-
subagent_type="general-purpose",
|
|
39
|
-
execution_context="@agents/qaa-codebase-mapper.md"
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
4. If --focus flag, spawn only that one area and stop (skip analysis stage).
|
|
43
|
-
5. When all map agents complete, print summary of codebase documents produced.
|
|
44
|
-
6. Run the analysis stage — execute the workflow defined in `@workflows/qa-analyze.md` end-to-end. Pass --dev-repo and --qa-repo arguments if provided. Preserve all workflow gates (scan verification, artifact checks).
|
|
45
|
-
7. Print final summary: all documents produced across both stages.
|
|
46
|
-
|
|
47
|
-
$ARGUMENTS
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Generate Page Object Models
|
|
2
|
-
|
|
3
|
-
Create or update Page Object Model files following CLAUDE.md POM rules. Checks for existing BasePage before creating one. Generates feature-specific POMs with Tier 1 locators, no assertions, and fluent action chaining.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
/qa-pom <path-to-pages> [--framework <name>]
|
|
8
|
-
|
|
9
|
-
- path-to-pages: directory containing page/view source files or URLs to model
|
|
10
|
-
- --framework: override framework auto-detection (playwright, cypress, selenium)
|
|
11
|
-
|
|
12
|
-
## What It Produces
|
|
13
|
-
|
|
14
|
-
- BasePage file (if not already present)
|
|
15
|
-
- Feature-specific POM files following `[PageName]Page.[ext]` naming convention
|
|
16
|
-
|
|
17
|
-
## Instructions
|
|
18
|
-
|
|
19
|
-
1. Read `CLAUDE.md` -- POM rules, locator tier hierarchy, naming conventions.
|
|
20
|
-
2. Invoke executor agent in POM-only mode:
|
|
21
|
-
|
|
22
|
-
Task(
|
|
23
|
-
prompt="
|
|
24
|
-
<objective>Generate Page Object Models following CLAUDE.md POM rules</objective>
|
|
25
|
-
<execution_context>@agents/qaa-executor.md</execution_context>
|
|
26
|
-
<files_to_read>
|
|
27
|
-
- CLAUDE.md
|
|
28
|
-
</files_to_read>
|
|
29
|
-
<parameters>
|
|
30
|
-
user_input: $ARGUMENTS
|
|
31
|
-
mode: pom-only
|
|
32
|
-
</parameters>
|
|
33
|
-
"
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
$ARGUMENTS
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
# Testing Pyramid Analysis
|
|
2
|
-
|
|
3
|
-
Analyze a project's test distribution against the ideal testing pyramid from CLAUDE.md. Compares actual percentages to targets and produces an action plan to reach the recommended distribution.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
/qa-pyramid <path-to-tests> [--dev-repo <path>]
|
|
8
|
-
|
|
9
|
-
- path-to-tests: directory containing test files
|
|
10
|
-
- --dev-repo: path to developer repository (for architecture-aware target adjustment)
|
|
11
|
-
|
|
12
|
-
## What It Produces
|
|
13
|
-
|
|
14
|
-
- PYRAMID_ANALYSIS.md -- current vs target distribution, gap table, prioritized action plan
|
|
15
|
-
|
|
16
|
-
## Instructions
|
|
17
|
-
|
|
18
|
-
1. Read `CLAUDE.md` -- testing pyramid target percentages.
|
|
19
|
-
2. Invoke analyzer agent for pyramid analysis:
|
|
20
|
-
|
|
21
|
-
Task(
|
|
22
|
-
prompt="
|
|
23
|
-
<objective>Produce PYRAMID_ANALYSIS.md comparing actual test distribution to target pyramid</objective>
|
|
24
|
-
<execution_context>@agents/qaa-analyzer.md</execution_context>
|
|
25
|
-
<files_to_read>
|
|
26
|
-
- CLAUDE.md
|
|
27
|
-
</files_to_read>
|
|
28
|
-
<parameters>
|
|
29
|
-
user_input: $ARGUMENTS
|
|
30
|
-
mode: pyramid-analysis
|
|
31
|
-
</parameters>
|
|
32
|
-
"
|
|
33
|
-
)
|
|
34
|
-
|
|
35
|
-
3. Present analysis with action plan to user.
|
|
36
|
-
|
|
37
|
-
$ARGUMENTS
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
# QA Status Report
|
|
2
|
-
|
|
3
|
-
Generate a summary report of current QA status for a project. Adapts detail level to audience: team (file-level details), management (high-level metrics), or client (coverage summary).
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
/qa-report <path-to-tests> [--dev-repo <path>] [--audience <team|management|client>]
|
|
8
|
-
|
|
9
|
-
- path-to-tests: directory containing test files
|
|
10
|
-
- --dev-repo: path to developer repository (for coverage calculation)
|
|
11
|
-
- --audience: report detail level (default: team)
|
|
12
|
-
|
|
13
|
-
## What It Produces
|
|
14
|
-
|
|
15
|
-
- QA_STATUS_REPORT.md -- metrics, testing pyramid distribution, risk areas, recommendations
|
|
16
|
-
|
|
17
|
-
## Instructions
|
|
18
|
-
|
|
19
|
-
1. Read `CLAUDE.md` -- testing pyramid targets, quality gates.
|
|
20
|
-
2. Invoke analyzer agent for status reporting:
|
|
21
|
-
|
|
22
|
-
Task(
|
|
23
|
-
prompt="
|
|
24
|
-
<objective>Produce QA_STATUS_REPORT.md with current test suite metrics and coverage</objective>
|
|
25
|
-
<execution_context>@agents/qaa-analyzer.md</execution_context>
|
|
26
|
-
<files_to_read>
|
|
27
|
-
- CLAUDE.md
|
|
28
|
-
</files_to_read>
|
|
29
|
-
<parameters>
|
|
30
|
-
user_input: $ARGUMENTS
|
|
31
|
-
mode: status-report
|
|
32
|
-
</parameters>
|
|
33
|
-
"
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
3. Present report to user.
|
|
37
|
-
|
|
38
|
-
$ARGUMENTS
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# QA Research
|
|
2
|
-
|
|
3
|
-
Research the best testing approach for a project's stack. Investigates framework capabilities, best practices, and testing patterns using official docs and community sources.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
/qa-research [--mode <mode>]
|
|
8
|
-
|
|
9
|
-
- No arguments: auto-detects stack and researches testing approach
|
|
10
|
-
- --mode: specific research mode (stack-testing, framework-deep-dive, api-testing, e2e-strategy)
|
|
11
|
-
|
|
12
|
-
## What It Produces
|
|
13
|
-
|
|
14
|
-
- TESTING_STACK.md — recommended test framework, assertion libraries, mock strategies
|
|
15
|
-
- FRAMEWORK_CAPABILITIES.md — deep dive into detected test framework
|
|
16
|
-
- API_TESTING_STRATEGY.md — endpoint testing patterns for this stack
|
|
17
|
-
- E2E_STRATEGY.md — E2E approach for the frontend (if detected)
|
|
18
|
-
|
|
19
|
-
## Instructions
|
|
20
|
-
|
|
21
|
-
1. Read `CLAUDE.md` — QA standards.
|
|
22
|
-
2. Detect project stack from package.json, requirements.txt, or similar.
|
|
23
|
-
3. Spawn researcher agent:
|
|
24
|
-
|
|
25
|
-
Agent(
|
|
26
|
-
prompt="Research the testing ecosystem for this project. Mode: {mode}. Write findings to .qa-output/research/. Follow the process in your agent definition.",
|
|
27
|
-
subagent_type="general-purpose",
|
|
28
|
-
execution_context="@agents/qaa-project-researcher.md"
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
4. Present findings with confidence levels.
|
|
32
|
-
|
|
33
|
-
$ARGUMENTS
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# QA Test Validation
|
|
2
|
-
|
|
3
|
-
Validate existing test files against CLAUDE.md standards. Runs 4-layer static validation (syntax, structure, dependencies, logic) and optionally executes E2E tests against a live app to verify locators and assertions with real page data.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
/qa-validate [<test-directory>] [--classify] [--run --app-url <url>]
|
|
8
|
-
|
|
9
|
-
- test-directory: path to test files (auto-detects if omitted)
|
|
10
|
-
- --classify: also run bug-detective to classify failures
|
|
11
|
-
- --run: execute E2E tests against a live application after static validation
|
|
12
|
-
- --app-url: URL of running application (auto-detects if not provided)
|
|
13
|
-
|
|
14
|
-
## Instructions
|
|
15
|
-
|
|
16
|
-
1. Read `CLAUDE.md` -- quality gates, locator tiers, assertion rules.
|
|
17
|
-
2. Execute the static validation workflow:
|
|
18
|
-
|
|
19
|
-
Follow the workflow defined in `@workflows/qa-validate.md` end-to-end.
|
|
20
|
-
Preserve all workflow gates (fix loops, classification).
|
|
21
|
-
|
|
22
|
-
3. If `--run` flag is present and E2E test files exist in the validated directory, invoke the E2E runner:
|
|
23
|
-
|
|
24
|
-
Task(
|
|
25
|
-
prompt="
|
|
26
|
-
<objective>Run E2E tests against live application, capture real locators, fix mismatches, loop until pass</objective>
|
|
27
|
-
<execution_context>@agents/qaa-e2e-runner.md</execution_context>
|
|
28
|
-
<files_to_read>
|
|
29
|
-
- CLAUDE.md
|
|
30
|
-
- {E2E test files from validated directory}
|
|
31
|
-
- {POM files from validated directory}
|
|
32
|
-
</files_to_read>
|
|
33
|
-
<parameters>
|
|
34
|
-
app_url: {from --app-url flag or auto-detect}
|
|
35
|
-
output_dir: .qa-output
|
|
36
|
-
</parameters>
|
|
37
|
-
"
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
4. Present combined results: static validation + E2E execution (if ran).
|
|
41
|
-
|
|
42
|
-
$ARGUMENTS
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
# Update and Improve Existing Tests
|
|
2
|
-
|
|
3
|
-
Audit existing test files and apply targeted improvements. NEVER deletes or rewrites working tests without user approval. Surgical: add, fix, improve -- never replace.
|
|
4
|
-
|
|
5
|
-
## Usage
|
|
6
|
-
|
|
7
|
-
/update-test <path-to-tests> [--scope fix|improve|add|full]
|
|
8
|
-
|
|
9
|
-
- path-to-tests: directory or specific test files to improve
|
|
10
|
-
- --scope: what to do (default: full)
|
|
11
|
-
- fix: repair broken tests only
|
|
12
|
-
- improve: upgrade locators, assertions, POM structure
|
|
13
|
-
- add: add missing test cases without modifying existing
|
|
14
|
-
- full: audit everything, then improve with approval
|
|
15
|
-
|
|
16
|
-
## What It Produces
|
|
17
|
-
|
|
18
|
-
- QA_AUDIT_REPORT.md -- current quality assessment
|
|
19
|
-
- Improved test files (after user approval of audit findings)
|
|
20
|
-
|
|
21
|
-
## Instructions
|
|
22
|
-
|
|
23
|
-
1. Read `CLAUDE.md` -- quality gates, locator tiers, assertion rules, POM rules.
|
|
24
|
-
2. Invoke validator agent in audit mode first:
|
|
25
|
-
|
|
26
|
-
Task(
|
|
27
|
-
prompt="
|
|
28
|
-
<objective>Audit existing test quality and produce QA_AUDIT_REPORT.md</objective>
|
|
29
|
-
<execution_context>@agents/qaa-validator.md</execution_context>
|
|
30
|
-
<files_to_read>
|
|
31
|
-
- CLAUDE.md
|
|
32
|
-
</files_to_read>
|
|
33
|
-
<parameters>
|
|
34
|
-
user_input: $ARGUMENTS
|
|
35
|
-
mode: audit
|
|
36
|
-
</parameters>
|
|
37
|
-
"
|
|
38
|
-
)
|
|
39
|
-
|
|
40
|
-
3. Present audit results and wait for user approval.
|
|
41
|
-
4. Invoke executor agent to apply approved improvements:
|
|
42
|
-
|
|
43
|
-
Task(
|
|
44
|
-
prompt="
|
|
45
|
-
<objective>Apply approved improvements to existing tests without deleting working tests</objective>
|
|
46
|
-
<execution_context>@agents/qaa-executor.md</execution_context>
|
|
47
|
-
<files_to_read>
|
|
48
|
-
- CLAUDE.md
|
|
49
|
-
- .qa-output/QA_AUDIT_REPORT.md
|
|
50
|
-
</files_to_read>
|
|
51
|
-
<parameters>
|
|
52
|
-
user_input: $ARGUMENTS
|
|
53
|
-
mode: update
|
|
54
|
-
</parameters>
|
|
55
|
-
"
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
$ARGUMENTS
|