qaa-agent 1.9.5 → 1.9.7

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.
@@ -2,12 +2,97 @@
2
2
 
3
3
  Scan frontend source code, audit missing data-testid attributes, and inject them following the naming convention in CLAUDE.md. Creates a separate branch for the changes.
4
4
 
5
+ ## ⚠ MANDATORY: How to Execute This Command
6
+
7
+ Execute these steps IN ORDER. Every step is mandatory. Do NOT improvise,
8
+ reorder, skip, or invent steps.
9
+
10
+ 1. Read `CLAUDE.md` — the data-testid Convention section — before anything else.
11
+ 2. Execute `workflows/qa-testid.md` end-to-end, in order, without skipping steps.
12
+ 3. Preserve ALL workflow gates. In particular, do NOT bypass:
13
+ - **Framework detection** (workflow Step 2, `detect_frontend`): if no frontend
14
+ directory, no framework, or no component files are found, STOP with the
15
+ workflow's error — do NOT proceed to injection.
16
+ - **Audit checkpoint / user approval** (workflow Step 4, CHECKPOINT phase):
17
+ the testid-injector MUST present TESTID_AUDIT_REPORT.md and wait for the
18
+ user to approve proposed values BEFORE injecting. Do NOT inject without it.
19
+ - **Branch creation** (workflow Step 4 INJECT phase / Step 5,
20
+ `create_branch_and_commit`): injection happens ONLY on the separate branch
21
+ `qa/testid-inject-{YYYY-MM-DD}` — never on the working branch.
22
+ 4. Spawn the scanner and testid-injector via Task() with their
23
+ `<critical_directive>` blocks, as the workflow specifies — do NOT do the
24
+ scan/audit/injection inline.
25
+
26
+ ### DO NOT
27
+ - Inject any data-testid before the user approves the audit report
28
+ - Modify source files on the working branch (injection is branch-isolated)
29
+ - Change application logic — only add data-testid attributes
30
+ - Skip framework detection or proceed when it reports no frontend
31
+ - Invent steps not in the workflow, or reorder them
32
+
33
+ If you find yourself injecting before approval, working off-branch, or skipping
34
+ the framework-detection gate — STOP and restart from step 1.
35
+
5
36
  ## Usage
6
37
 
7
38
  /qa-testid [<source-directory>]
8
39
 
9
40
  - source-directory: path to frontend source (auto-detects if omitted)
10
41
 
42
+ ## Pre-flight checks
43
+
44
+ Run these BEFORE the main flow. A **[STOP]** check that fails: print the error EXACTLY as shown (fill in the `{...}` placeholders) and STOP. A **[WARN]** check that fails: print the notice and continue in degraded mode.
45
+
46
+ ### Source directory not found [STOP]
47
+ If a source directory argument was given but does not exist:
48
+ ```
49
+ ❌ Source directory not found: {path}
50
+
51
+ /qa-testid scans frontend components at the given path. That directory does not
52
+ exist.
53
+
54
+ Options:
55
+ 1. Pass a valid path: /qa-testid <path-to-frontend-src>
56
+ 2. Run with no path to auto-detect (looks for src/, app/, components/, pages/, ...)
57
+ 3. Check for a typo or an unexpanded ~ in the path
58
+
59
+ Try: ls {path}
60
+ ```
61
+
62
+ ### No frontend framework detected [STOP]
63
+ If auto-detection finds no React / Vue / Angular / Svelte / HTML:
64
+ ```
65
+ ❌ No frontend framework detected.
66
+
67
+ /qa-testid injects data-testid into UI components, but no React (.jsx/.tsx), Vue
68
+ (.vue), Angular (.component.ts), Svelte (.svelte), or HTML files were found in
69
+ the scanned directory.
70
+
71
+ Options:
72
+ 1. Point at the frontend source explicitly: /qa-testid <path-to-components>
73
+ 2. If this is a monorepo, target the frontend package: /qa-testid <path/to/web-app>
74
+ 3. This command only applies to frontend repos — there's nothing to inject on a backend/API-only project
75
+
76
+ Try: ls {source-dir} (to confirm it holds component files)
77
+ ```
78
+
79
+ ### Playwright MCP not connected [WARN]
80
+ If the Playwright MCP tools are unavailable (used to browser-verify injected attributes):
81
+ ```
82
+ ❌ Playwright MCP is not connected — DOM verification will be skipped.
83
+
84
+ /qa-testid uses Playwright MCP to confirm injected data-testid attributes render
85
+ in the live DOM. Without it, injection and the audit report still run — only the
86
+ browser-verify step is skipped.
87
+
88
+ Options:
89
+ 1. Connect Playwright MCP (ships with QAA — check ~/.claude.json) for full verification
90
+ 2. Reinstall to re-register the MCP servers: npx qaa-agent
91
+ 3. Continue now with static validation only (no live DOM check)
92
+
93
+ Try: /mcp
94
+ ```
95
+
11
96
  ## Instructions
12
97
 
13
98
  1. Read `CLAUDE.md` -- data-testid Convention section.
package/package.json CHANGED
@@ -1,41 +1,41 @@
1
- {
2
- "name": "qaa-agent",
3
- "version": "1.9.5",
4
- "description": "QA Automation Agent for Claude Code — multi-agent pipeline that analyzes repos, generates tests, validates, and creates PRs",
5
- "bin": {
6
- "qaa-agent": "./bin/install.cjs"
7
- },
8
- "keywords": [
9
- "qa",
10
- "automation",
11
- "testing",
12
- "claude-code",
13
- "playwright",
14
- "jest",
15
- "pytest",
16
- "ai-agent"
17
- ],
18
- "author": "Backhaus7997",
19
- "license": "MIT",
20
- "dependencies": {
21
- "@playwright/mcp": "latest",
22
- "@upstash/context7-mcp": "latest"
23
- },
24
- "files": [
25
- "bin/",
26
- "agents/",
27
- "workflows/",
28
- "templates/",
29
- "docs/COMMANDS.md",
30
- "docs/DEMO.md",
31
- "docs/TESTING.md",
32
- "commands/",
33
- "skills/",
34
- "frameworks/",
35
- "settings.json",
36
- ".mcp.json",
37
- "CLAUDE.md",
38
- "CHANGELOG.md",
39
- "VERSION"
40
- ]
41
- }
1
+ {
2
+ "name": "qaa-agent",
3
+ "version": "1.9.7",
4
+ "description": "QA Automation Agent for Claude Code — multi-agent pipeline that analyzes repos, generates tests, validates, and creates PRs",
5
+ "bin": {
6
+ "qaa-agent": "./bin/install.cjs"
7
+ },
8
+ "keywords": [
9
+ "qa",
10
+ "automation",
11
+ "testing",
12
+ "claude-code",
13
+ "playwright",
14
+ "jest",
15
+ "pytest",
16
+ "ai-agent"
17
+ ],
18
+ "author": "Backhaus7997",
19
+ "license": "MIT",
20
+ "dependencies": {
21
+ "@playwright/mcp": "latest",
22
+ "@upstash/context7-mcp": "latest"
23
+ },
24
+ "files": [
25
+ "bin/",
26
+ "agents/",
27
+ "workflows/",
28
+ "templates/",
29
+ "docs/COMMANDS.md",
30
+ "docs/DEMO.md",
31
+ "docs/TESTING.md",
32
+ "commands/",
33
+ "skills/",
34
+ "frameworks/",
35
+ "settings.json",
36
+ ".mcp.json",
37
+ "CLAUDE.md",
38
+ "CHANGELOG.md",
39
+ "VERSION"
40
+ ]
41
+ }