qaa-agent 1.9.1 → 1.9.5

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 (41) hide show
  1. package/CHANGELOG.md +43 -22
  2. package/CLAUDE.md +170 -9
  3. package/README.md +384 -357
  4. package/VERSION +1 -0
  5. package/agents/qa-pipeline-orchestrator.md +336 -22
  6. package/agents/qaa-analyzer.md +0 -1
  7. package/agents/qaa-bug-detective.md +163 -4
  8. package/agents/qaa-codebase-mapper.md +50 -1
  9. package/agents/qaa-discovery.md +421 -384
  10. package/agents/qaa-e2e-runner.md +163 -1
  11. package/agents/qaa-executor.md +142 -1
  12. package/agents/qaa-planner.md +14 -1
  13. package/agents/qaa-project-researcher.md +194 -0
  14. package/agents/qaa-scanner.md +77 -1
  15. package/agents/qaa-testid-injector.md +0 -1
  16. package/agents/qaa-validator.md +86 -1
  17. package/bin/install.cjs +375 -253
  18. package/bin/lib/context7-cache.cjs +299 -0
  19. package/bin/lib/intent-detector.cjs +488 -0
  20. package/commands/qa-audit.md +255 -126
  21. package/commands/qa-create-test.md +666 -365
  22. package/commands/qa-fix.md +684 -513
  23. package/commands/qa-map.md +283 -139
  24. package/commands/qa-pr.md +63 -0
  25. package/commands/qa-research.md +181 -157
  26. package/commands/qa-start.md +62 -6
  27. package/commands/qa-test-report.md +219 -219
  28. package/frameworks/cypress.json +54 -0
  29. package/frameworks/jest.json +59 -0
  30. package/frameworks/playwright.json +58 -0
  31. package/frameworks/pytest.json +59 -0
  32. package/frameworks/robot-framework.json +54 -0
  33. package/frameworks/selenium.json +65 -0
  34. package/frameworks/vitest.json +57 -0
  35. package/package.json +7 -3
  36. package/workflows/qa-analyze.md +100 -4
  37. package/workflows/qa-from-ticket.md +50 -2
  38. package/workflows/qa-gap.md +50 -2
  39. package/workflows/qa-start.md +819 -33
  40. package/workflows/qa-testid.md +50 -2
  41. package/workflows/qa-validate.md +50 -2
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "pytest",
3
+ "display_name": "pytest",
4
+ "languages": [
5
+ "python"
6
+ ],
7
+ "extensions": [
8
+ ".py"
9
+ ],
10
+ "detection": {
11
+ "manifest_files": [
12
+ "requirements.txt",
13
+ "pyproject.toml",
14
+ "setup.py",
15
+ "Pipfile"
16
+ ],
17
+ "manifest_grep": "pytest",
18
+ "config_files": [
19
+ "pytest.ini",
20
+ "pyproject.toml",
21
+ "conftest.py",
22
+ "setup.cfg"
23
+ ],
24
+ "file_patterns": [
25
+ "tests/**/test_*.py",
26
+ "tests/**/*_test.py",
27
+ "test/**/test_*.py"
28
+ ]
29
+ },
30
+ "validation_commands": {
31
+ "syntax_check": "python -m py_compile {file}",
32
+ "dry_run": "pytest --collect-only",
33
+ "lint": "ruff check {file}"
34
+ },
35
+ "conventions": {
36
+ "test_dirs": [
37
+ "tests/",
38
+ "test/"
39
+ ],
40
+ "pom_dirs": [
41
+ "tests/page_objects/",
42
+ "tests/pages/"
43
+ ],
44
+ "fixture_dirs": [
45
+ "tests/fixtures/",
46
+ "tests/conftest.py"
47
+ ],
48
+ "config_filename": "pytest.ini"
49
+ },
50
+ "context7_keys": [
51
+ "pytest",
52
+ "pytest-dev"
53
+ ],
54
+ "test_kinds": [
55
+ "unit",
56
+ "integration",
57
+ "api"
58
+ ]
59
+ }
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "robot-framework",
3
+ "display_name": "Robot Framework",
4
+ "languages": [
5
+ "python",
6
+ "robot"
7
+ ],
8
+ "extensions": [
9
+ ".robot",
10
+ ".resource"
11
+ ],
12
+ "detection": {
13
+ "manifest_files": [
14
+ "requirements.txt",
15
+ "pyproject.toml"
16
+ ],
17
+ "manifest_grep": "robotframework|robotframework-browser",
18
+ "config_files": [],
19
+ "file_patterns": [
20
+ "tests/**/*.robot",
21
+ "**/*.robot"
22
+ ]
23
+ },
24
+ "validation_commands": {
25
+ "syntax_check": "robot --dryrun {file}",
26
+ "dry_run": "robot --dryrun {test_dir}",
27
+ "lint": "robocop {file}"
28
+ },
29
+ "conventions": {
30
+ "test_dirs": [
31
+ "tests/",
32
+ "tests/e2e/",
33
+ "robot_tests/"
34
+ ],
35
+ "pom_dirs": [
36
+ "resources/pages/",
37
+ "pages/"
38
+ ],
39
+ "fixture_dirs": [
40
+ "resources/data/",
41
+ "resources/"
42
+ ],
43
+ "config_filename": null
44
+ },
45
+ "context7_keys": [
46
+ "robotframework",
47
+ "robotframework-browser",
48
+ "MarketSquare/robotframework"
49
+ ],
50
+ "test_kinds": [
51
+ "e2e",
52
+ "api"
53
+ ]
54
+ }
@@ -0,0 +1,65 @@
1
+ {
2
+ "name": "selenium",
3
+ "display_name": "Selenium",
4
+ "languages": [
5
+ "typescript",
6
+ "javascript",
7
+ "python",
8
+ "java",
9
+ "csharp"
10
+ ],
11
+ "extensions": [
12
+ ".spec.ts",
13
+ ".spec.js",
14
+ ".py",
15
+ ".java",
16
+ ".cs"
17
+ ],
18
+ "detection": {
19
+ "manifest_files": [
20
+ "package.json",
21
+ "requirements.txt",
22
+ "pom.xml",
23
+ "build.gradle"
24
+ ],
25
+ "manifest_grep": "selenium-webdriver|selenium|Selenium\\.WebDriver",
26
+ "config_files": [],
27
+ "file_patterns": [
28
+ "tests/**/*selenium*",
29
+ "src/test/**/*.java"
30
+ ]
31
+ },
32
+ "validation_commands": {
33
+ "syntax_check_ts": "tsc --noEmit",
34
+ "syntax_check_js": "node --check {file}",
35
+ "syntax_check_py": "python -m py_compile {file}",
36
+ "dry_run": null,
37
+ "lint": null
38
+ },
39
+ "conventions": {
40
+ "test_dirs": [
41
+ "tests/",
42
+ "src/test/",
43
+ "src/test/java/"
44
+ ],
45
+ "pom_dirs": [
46
+ "pages/",
47
+ "src/test/java/pages/",
48
+ "tests/pages/"
49
+ ],
50
+ "fixture_dirs": [
51
+ "fixtures/",
52
+ "src/test/resources/"
53
+ ],
54
+ "config_filename": null
55
+ },
56
+ "context7_keys": [
57
+ "selenium",
58
+ "selenium-webdriver",
59
+ "SeleniumHQ"
60
+ ],
61
+ "test_kinds": [
62
+ "e2e",
63
+ "integration"
64
+ ]
65
+ }
@@ -0,0 +1,57 @@
1
+ {
2
+ "name": "vitest",
3
+ "display_name": "Vitest",
4
+ "languages": [
5
+ "typescript",
6
+ "javascript"
7
+ ],
8
+ "extensions": [
9
+ ".test.ts",
10
+ ".test.js",
11
+ ".spec.ts",
12
+ ".spec.js"
13
+ ],
14
+ "detection": {
15
+ "manifest_files": [
16
+ "package.json"
17
+ ],
18
+ "manifest_grep": "\"vitest\"",
19
+ "config_files": [
20
+ "vitest.config.ts",
21
+ "vitest.config.js",
22
+ "vite.config.ts"
23
+ ],
24
+ "file_patterns": [
25
+ "**/*.test.ts",
26
+ "**/*.spec.ts",
27
+ "tests/**/*"
28
+ ]
29
+ },
30
+ "validation_commands": {
31
+ "syntax_check_ts": "tsc --noEmit",
32
+ "syntax_check_js": "node --check {file}",
33
+ "dry_run": "vitest --list",
34
+ "lint": "eslint {file}"
35
+ },
36
+ "conventions": {
37
+ "test_dirs": [
38
+ "tests/",
39
+ "src/__tests__/",
40
+ "test/"
41
+ ],
42
+ "pom_dirs": [],
43
+ "fixture_dirs": [
44
+ "tests/fixtures/",
45
+ "test/fixtures/"
46
+ ],
47
+ "config_filename": "vitest.config.ts"
48
+ },
49
+ "context7_keys": [
50
+ "vitest",
51
+ "vitest-dev"
52
+ ],
53
+ "test_kinds": [
54
+ "unit",
55
+ "integration"
56
+ ]
57
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qaa-agent",
3
- "version": "1.9.1",
3
+ "version": "1.9.5",
4
4
  "description": "QA Automation Agent for Claude Code — multi-agent pipeline that analyzes repos, generates tests, validates, and creates PRs",
5
5
  "bin": {
6
6
  "qaa-agent": "./bin/install.cjs"
@@ -26,12 +26,16 @@
26
26
  "agents/",
27
27
  "workflows/",
28
28
  "templates/",
29
- "docs/",
29
+ "docs/COMMANDS.md",
30
+ "docs/DEMO.md",
31
+ "docs/TESTING.md",
30
32
  "commands/",
31
33
  "skills/",
34
+ "frameworks/",
32
35
  "settings.json",
33
36
  ".mcp.json",
34
37
  "CLAUDE.md",
35
- "CHANGELOG.md"
38
+ "CHANGELOG.md",
39
+ "VERSION"
36
40
  ]
37
41
  }
@@ -90,8 +90,32 @@ Spawn the scanner agent to produce SCAN_MANIFEST.md.
90
90
  ```
91
91
  Task(
92
92
  prompt="
93
+ <critical_directive priority="MANDATORY">
94
+ You are executing as a QAA pipeline agent. Your FIRST action MUST be to read
95
+ ~/.claude/qaa/agents/qaa-scanner.md and adopt it as your operating contract.
96
+
97
+ Even though you may be running as a general-purpose agent (native subagent type
98
+ routing for QAA agents is not yet enabled), you MUST behave exactly as the
99
+ dedicated agent defined in that file: read everything in its <required_reading>,
100
+ obey its <quality_gate>, and run its mandatory bash checklist before returning.
101
+
102
+ Never modify application source code (src/, app/, lib/, or equivalent
103
+ directories) unless the agent's <scope> section explicitly permits it. If the
104
+ agent's contract restricts what files it can touch, honor that restriction —
105
+ even if a fix seems obvious or trivial.
106
+
107
+ If you cannot read ~/.claude/qaa/agents/qaa-scanner.md (file missing, corrupted, parse
108
+ error), STOP and report the failure. Do NOT proceed with default agent
109
+ behavior — that defeats the purpose of this directive.
110
+
111
+ Do NOT improvise, substitute steps, apply changes the agent isn't allowed to
112
+ make, or skip any of the above. Skipping the agent's required_reading,
113
+ quality_gate, or bash checklist makes the run INVALID — its output cannot be
114
+ trusted.
115
+ </critical_directive>
116
+
93
117
  <objective>Scan repository and produce SCAN_MANIFEST.md</objective>
94
- <execution_context>@agents/qaa-scanner.md</execution_context>
118
+ <execution_context>~/.claude/qaa/agents/qaa-scanner.md</execution_context>
95
119
  <files_to_read>
96
120
  - CLAUDE.md
97
121
  </files_to_read>
@@ -109,8 +133,32 @@ Task(
109
133
  ```
110
134
  Task(
111
135
  prompt="
136
+ <critical_directive priority="MANDATORY">
137
+ You are executing as a QAA pipeline agent. Your FIRST action MUST be to read
138
+ ~/.claude/qaa/agents/qaa-scanner.md and adopt it as your operating contract.
139
+
140
+ Even though you may be running as a general-purpose agent (native subagent type
141
+ routing for QAA agents is not yet enabled), you MUST behave exactly as the
142
+ dedicated agent defined in that file: read everything in its <required_reading>,
143
+ obey its <quality_gate>, and run its mandatory bash checklist before returning.
144
+
145
+ Never modify application source code (src/, app/, lib/, or equivalent
146
+ directories) unless the agent's <scope> section explicitly permits it. If the
147
+ agent's contract restricts what files it can touch, honor that restriction —
148
+ even if a fix seems obvious or trivial.
149
+
150
+ If you cannot read ~/.claude/qaa/agents/qaa-scanner.md (file missing, corrupted, parse
151
+ error), STOP and report the failure. Do NOT proceed with default agent
152
+ behavior — that defeats the purpose of this directive.
153
+
154
+ Do NOT improvise, substitute steps, apply changes the agent isn't allowed to
155
+ make, or skip any of the above. Skipping the agent's required_reading,
156
+ quality_gate, or bash checklist makes the run INVALID — its output cannot be
157
+ trusted.
158
+ </critical_directive>
159
+
112
160
  <objective>Scan both developer and QA repositories and produce SCAN_MANIFEST.md</objective>
113
- <execution_context>@agents/qaa-scanner.md</execution_context>
161
+ <execution_context>~/.claude/qaa/agents/qaa-scanner.md</execution_context>
114
162
  <files_to_read>
115
163
  - CLAUDE.md
116
164
  </files_to_read>
@@ -148,8 +196,32 @@ Spawn the analyzer agent to produce analysis artifacts.
148
196
  ```
149
197
  Task(
150
198
  prompt="
199
+ <critical_directive priority="MANDATORY">
200
+ You are executing as a QAA pipeline agent. Your FIRST action MUST be to read
201
+ ~/.claude/qaa/agents/qaa-analyzer.md and adopt it as your operating contract.
202
+
203
+ Even though you may be running as a general-purpose agent (native subagent type
204
+ routing for QAA agents is not yet enabled), you MUST behave exactly as the
205
+ dedicated agent defined in that file: read everything in its <required_reading>,
206
+ obey its <quality_gate>, and run its mandatory bash checklist before returning.
207
+
208
+ Never modify application source code (src/, app/, lib/, or equivalent
209
+ directories) unless the agent's <scope> section explicitly permits it. If the
210
+ agent's contract restricts what files it can touch, honor that restriction —
211
+ even if a fix seems obvious or trivial.
212
+
213
+ If you cannot read ~/.claude/qaa/agents/qaa-analyzer.md (file missing, corrupted, parse
214
+ error), STOP and report the failure. Do NOT proceed with default agent
215
+ behavior — that defeats the purpose of this directive.
216
+
217
+ Do NOT improvise, substitute steps, apply changes the agent isn't allowed to
218
+ make, or skip any of the above. Skipping the agent's required_reading,
219
+ quality_gate, or bash checklist makes the run INVALID — its output cannot be
220
+ trusted.
221
+ </critical_directive>
222
+
151
223
  <objective>Analyze scanned repository and produce QA_ANALYSIS.md, TEST_INVENTORY.md, and QA_REPO_BLUEPRINT.md</objective>
152
- <execution_context>@agents/qaa-analyzer.md</execution_context>
224
+ <execution_context>~/.claude/qaa/agents/qaa-analyzer.md</execution_context>
153
225
  <files_to_read>
154
226
  - {OUTPUT_DIR}/SCAN_MANIFEST.md
155
227
  - CLAUDE.md
@@ -169,8 +241,32 @@ Task(
169
241
  ```
170
242
  Task(
171
243
  prompt="
244
+ <critical_directive priority="MANDATORY">
245
+ You are executing as a QAA pipeline agent. Your FIRST action MUST be to read
246
+ ~/.claude/qaa/agents/qaa-analyzer.md and adopt it as your operating contract.
247
+
248
+ Even though you may be running as a general-purpose agent (native subagent type
249
+ routing for QAA agents is not yet enabled), you MUST behave exactly as the
250
+ dedicated agent defined in that file: read everything in its <required_reading>,
251
+ obey its <quality_gate>, and run its mandatory bash checklist before returning.
252
+
253
+ Never modify application source code (src/, app/, lib/, or equivalent
254
+ directories) unless the agent's <scope> section explicitly permits it. If the
255
+ agent's contract restricts what files it can touch, honor that restriction —
256
+ even if a fix seems obvious or trivial.
257
+
258
+ If you cannot read ~/.claude/qaa/agents/qaa-analyzer.md (file missing, corrupted, parse
259
+ error), STOP and report the failure. Do NOT proceed with default agent
260
+ behavior — that defeats the purpose of this directive.
261
+
262
+ Do NOT improvise, substitute steps, apply changes the agent isn't allowed to
263
+ make, or skip any of the above. Skipping the agent's required_reading,
264
+ quality_gate, or bash checklist makes the run INVALID — its output cannot be
265
+ trusted.
266
+ </critical_directive>
267
+
172
268
  <objective>Analyze scanned repositories and produce QA_ANALYSIS.md, TEST_INVENTORY.md, and GAP_ANALYSIS.md</objective>
173
- <execution_context>@agents/qaa-analyzer.md</execution_context>
269
+ <execution_context>~/.claude/qaa/agents/qaa-analyzer.md</execution_context>
174
270
  <files_to_read>
175
271
  - {OUTPUT_DIR}/SCAN_MANIFEST.md
176
272
  - CLAUDE.md
@@ -417,8 +417,32 @@ Write to `{OUTPUT_DIR}/GENERATION_PLAN_TICKET.md`.
417
417
  ```
418
418
  Task(
419
419
  prompt="
420
+ <critical_directive priority="MANDATORY">
421
+ You are executing as a QAA pipeline agent. Your FIRST action MUST be to read
422
+ ~/.claude/qaa/agents/qaa-executor.md and adopt it as your operating contract.
423
+
424
+ Even though you may be running as a general-purpose agent (native subagent type
425
+ routing for QAA agents is not yet enabled), you MUST behave exactly as the
426
+ dedicated agent defined in that file: read everything in its <required_reading>,
427
+ obey its <quality_gate>, and run its mandatory bash checklist before returning.
428
+
429
+ Never modify application source code (src/, app/, lib/, or equivalent
430
+ directories) unless the agent's <scope> section explicitly permits it. If the
431
+ agent's contract restricts what files it can touch, honor that restriction —
432
+ even if a fix seems obvious or trivial.
433
+
434
+ If you cannot read ~/.claude/qaa/agents/qaa-executor.md (file missing, corrupted, parse
435
+ error), STOP and report the failure. Do NOT proceed with default agent
436
+ behavior — that defeats the purpose of this directive.
437
+
438
+ Do NOT improvise, substitute steps, apply changes the agent isn't allowed to
439
+ make, or skip any of the above. Skipping the agent's required_reading,
440
+ quality_gate, or bash checklist makes the run INVALID — its output cannot be
441
+ trusted.
442
+ </critical_directive>
443
+
420
444
  <objective>Generate test files from ticket-derived test cases</objective>
421
- <execution_context>@agents/qaa-executor.md</execution_context>
445
+ <execution_context>~/.claude/qaa/agents/qaa-executor.md</execution_context>
422
446
  <files_to_read>
423
447
  - {OUTPUT_DIR}/GENERATION_PLAN_TICKET.md
424
448
  - {OUTPUT_DIR}/TEST_CASES_FROM_TICKET.md
@@ -445,8 +469,32 @@ Validate the generated test files against CLAUDE.md standards.
445
469
  ```
446
470
  Task(
447
471
  prompt="
472
+ <critical_directive priority="MANDATORY">
473
+ You are executing as a QAA pipeline agent. Your FIRST action MUST be to read
474
+ ~/.claude/qaa/agents/qaa-validator.md and adopt it as your operating contract.
475
+
476
+ Even though you may be running as a general-purpose agent (native subagent type
477
+ routing for QAA agents is not yet enabled), you MUST behave exactly as the
478
+ dedicated agent defined in that file: read everything in its <required_reading>,
479
+ obey its <quality_gate>, and run its mandatory bash checklist before returning.
480
+
481
+ Never modify application source code (src/, app/, lib/, or equivalent
482
+ directories) unless the agent's <scope> section explicitly permits it. If the
483
+ agent's contract restricts what files it can touch, honor that restriction —
484
+ even if a fix seems obvious or trivial.
485
+
486
+ If you cannot read ~/.claude/qaa/agents/qaa-validator.md (file missing, corrupted, parse
487
+ error), STOP and report the failure. Do NOT proceed with default agent
488
+ behavior — that defeats the purpose of this directive.
489
+
490
+ Do NOT improvise, substitute steps, apply changes the agent isn't allowed to
491
+ make, or skip any of the above. Skipping the agent's required_reading,
492
+ quality_gate, or bash checklist makes the run INVALID — its output cannot be
493
+ trusted.
494
+ </critical_directive>
495
+
448
496
  <objective>Validate generated test files across 4 layers</objective>
449
- <execution_context>@agents/qaa-validator.md</execution_context>
497
+ <execution_context>~/.claude/qaa/agents/qaa-validator.md</execution_context>
450
498
  <files_to_read>
451
499
  - CLAUDE.md
452
500
  - {OUTPUT_DIR}/GENERATION_PLAN_TICKET.md
@@ -92,8 +92,32 @@ Spawn the scanner agent to scan both the developer and QA repositories, producin
92
92
  ```
93
93
  Task(
94
94
  prompt="
95
+ <critical_directive priority="MANDATORY">
96
+ You are executing as a QAA pipeline agent. Your FIRST action MUST be to read
97
+ ~/.claude/qaa/agents/qaa-scanner.md and adopt it as your operating contract.
98
+
99
+ Even though you may be running as a general-purpose agent (native subagent type
100
+ routing for QAA agents is not yet enabled), you MUST behave exactly as the
101
+ dedicated agent defined in that file: read everything in its <required_reading>,
102
+ obey its <quality_gate>, and run its mandatory bash checklist before returning.
103
+
104
+ Never modify application source code (src/, app/, lib/, or equivalent
105
+ directories) unless the agent's <scope> section explicitly permits it. If the
106
+ agent's contract restricts what files it can touch, honor that restriction —
107
+ even if a fix seems obvious or trivial.
108
+
109
+ If you cannot read ~/.claude/qaa/agents/qaa-scanner.md (file missing, corrupted, parse
110
+ error), STOP and report the failure. Do NOT proceed with default agent
111
+ behavior — that defeats the purpose of this directive.
112
+
113
+ Do NOT improvise, substitute steps, apply changes the agent isn't allowed to
114
+ make, or skip any of the above. Skipping the agent's required_reading,
115
+ quality_gate, or bash checklist makes the run INVALID — its output cannot be
116
+ trusted.
117
+ </critical_directive>
118
+
95
119
  <objective>Scan both developer and QA repositories and produce SCAN_MANIFEST.md with combined file trees</objective>
96
- <execution_context>@agents/qaa-scanner.md</execution_context>
120
+ <execution_context>~/.claude/qaa/agents/qaa-scanner.md</execution_context>
97
121
  <files_to_read>
98
122
  - CLAUDE.md
99
123
  </files_to_read>
@@ -129,8 +153,32 @@ Spawn the analyzer agent in gap analysis mode to compare dev repo testable surfa
129
153
  ```
130
154
  Task(
131
155
  prompt="
156
+ <critical_directive priority="MANDATORY">
157
+ You are executing as a QAA pipeline agent. Your FIRST action MUST be to read
158
+ ~/.claude/qaa/agents/qaa-analyzer.md and adopt it as your operating contract.
159
+
160
+ Even though you may be running as a general-purpose agent (native subagent type
161
+ routing for QAA agents is not yet enabled), you MUST behave exactly as the
162
+ dedicated agent defined in that file: read everything in its <required_reading>,
163
+ obey its <quality_gate>, and run its mandatory bash checklist before returning.
164
+
165
+ Never modify application source code (src/, app/, lib/, or equivalent
166
+ directories) unless the agent's <scope> section explicitly permits it. If the
167
+ agent's contract restricts what files it can touch, honor that restriction —
168
+ even if a fix seems obvious or trivial.
169
+
170
+ If you cannot read ~/.claude/qaa/agents/qaa-analyzer.md (file missing, corrupted, parse
171
+ error), STOP and report the failure. Do NOT proceed with default agent
172
+ behavior — that defeats the purpose of this directive.
173
+
174
+ Do NOT improvise, substitute steps, apply changes the agent isn't allowed to
175
+ make, or skip any of the above. Skipping the agent's required_reading,
176
+ quality_gate, or bash checklist makes the run INVALID — its output cannot be
177
+ trusted.
178
+ </critical_directive>
179
+
132
180
  <objective>Perform gap analysis comparing dev repo testable surfaces against QA repo test coverage. Use codebase map for deep context and locator registry for frontend coverage assessment. Produce QA_ANALYSIS.md, TEST_INVENTORY.md, and GAP_ANALYSIS.md.</objective>
133
- <execution_context>@agents/qaa-analyzer.md</execution_context>
181
+ <execution_context>~/.claude/qaa/agents/qaa-analyzer.md</execution_context>
134
182
  <files_to_read>
135
183
  - {OUTPUT_DIR}/SCAN_MANIFEST.md
136
184
  - CLAUDE.md