qa-flowkit 0.4.0-alpha.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/.qa-ai/adapters/aider/.aider/README.md +25 -0
- package/.qa-ai/adapters/aider/.aider.conf.yml +6 -0
- package/.qa-ai/adapters/claude/agents/qa-workflow-orchestrator.md +18 -0
- package/.qa-ai/adapters/claude/commands/qa-add-tests.md +42 -0
- package/.qa-ai/adapters/claude/commands/qa-automation-plan.md +43 -0
- package/.qa-ai/adapters/claude/commands/qa-clean.md +42 -0
- package/.qa-ai/adapters/claude/commands/qa-config.md +51 -0
- package/.qa-ai/adapters/claude/commands/qa-coverage.md +46 -0
- package/.qa-ai/adapters/claude/commands/qa-doctor.md +11 -0
- package/.qa-ai/adapters/claude/commands/qa-full-flow.md +59 -0
- package/.qa-ai/adapters/claude/commands/qa-gate.md +36 -0
- package/.qa-ai/adapters/claude/commands/qa-help.md +30 -0
- package/.qa-ai/adapters/claude/commands/qa-init.md +70 -0
- package/.qa-ai/adapters/claude/commands/qa-status.md +56 -0
- package/.qa-ai/adapters/claude/commands/qa-update-tests.md +47 -0
- package/.qa-ai/adapters/claude/commands/qa-validate-features.md +36 -0
- package/.qa-ai/adapters/cline/.cline/README.md +25 -0
- package/.qa-ai/adapters/cline/.clinerules +9 -0
- package/.qa-ai/adapters/codex/README.md +44 -0
- package/.qa-ai/adapters/codex/prompts/implement-project.md +15 -0
- package/.qa-ai/adapters/continue/README.md +26 -0
- package/.qa-ai/adapters/continue/checks/qa-feature-conventions.md +15 -0
- package/.qa-ai/adapters/gemini/GEMINI.md +40 -0
- package/.qa-ai/adapters/generic/AGENTS.md +100 -0
- package/.qa-ai/adapters/goose/recipes/qa-flowkit.yaml +20 -0
- package/.qa-ai/adapters/opencode/README.md +57 -0
- package/.qa-ai/adapters/opencode/agents/qa-workflow.md +18 -0
- package/.qa-ai/adapters/opencode/commands/qa-add-tests.md +42 -0
- package/.qa-ai/adapters/opencode/commands/qa-automation-plan.md +43 -0
- package/.qa-ai/adapters/opencode/commands/qa-clean.md +42 -0
- package/.qa-ai/adapters/opencode/commands/qa-config.md +51 -0
- package/.qa-ai/adapters/opencode/commands/qa-coverage.md +46 -0
- package/.qa-ai/adapters/opencode/commands/qa-doctor.md +13 -0
- package/.qa-ai/adapters/opencode/commands/qa-full-flow.md +59 -0
- package/.qa-ai/adapters/opencode/commands/qa-gate.md +36 -0
- package/.qa-ai/adapters/opencode/commands/qa-help.md +30 -0
- package/.qa-ai/adapters/opencode/commands/qa-init.md +70 -0
- package/.qa-ai/adapters/opencode/commands/qa-status.md +56 -0
- package/.qa-ai/adapters/opencode/commands/qa-update-tests.md +47 -0
- package/.qa-ai/adapters/opencode/commands/qa-validate-features.md +36 -0
- package/.qa-ai/agents/README.md +39 -0
- package/.qa-ai/agents/api-testing-agent.md +73 -0
- package/.qa-ai/agents/automation-feasibility-agent.md +128 -0
- package/.qa-ai/agents/gherkin-test-design-agent.md +110 -0
- package/.qa-ai/agents/jira-task-agent.md +92 -0
- package/.qa-ai/agents/pr-agent.md +101 -0
- package/.qa-ai/agents/qa-context-intake-agent.md +75 -0
- package/.qa-ai/agents/qa-workflow-orchestrator.md +113 -0
- package/.qa-ai/agents/release-gate-agent.md +50 -0
- package/.qa-ai/agents/requirements-intake-agent.md +79 -0
- package/.qa-ai/agents/requirements-normalization-agent.md +80 -0
- package/.qa-ai/agents/specialists/available/appium.md +59 -0
- package/.qa-ai/agents/specialists/available/cypress.md +68 -0
- package/.qa-ai/agents/specialists/available/generic-test-design.md +117 -0
- package/.qa-ai/agents/specialists/available/jira.md +108 -0
- package/.qa-ai/agents/specialists/available/karate.md +97 -0
- package/.qa-ai/agents/specialists/available/playwright-api.md +87 -0
- package/.qa-ai/agents/specialists/available/playwright-ui.md +87 -0
- package/.qa-ai/agents/specialists/available/postman.md +108 -0
- package/.qa-ai/agents/specialists/available/rest-assured.md +103 -0
- package/.qa-ai/agents/specialists/available/selenium.md +91 -0
- package/.qa-ai/agents/specialists/available/testrail.md +85 -0
- package/.qa-ai/agents/specialists/available/webdriverio.md +81 -0
- package/.qa-ai/agents/test-design-system-agent.md +33 -0
- package/.qa-ai/agents/testrail-coverage-agent.md +84 -0
- package/.qa-ai/agents/testrail-sync-agent.md +96 -0
- package/.qa-ai/agents/webdriverio-implementation-agent.md +84 -0
- package/.qa-ai/presets/manual-only.yaml +65 -0
- package/.qa-ai/presets/selenium-jest-browserstack.yaml +72 -0
- package/.qa-ai/presets/webdriverio-playwright-api.yaml +85 -0
- package/.qa-ai/rules/api-testing.rules.md +7 -0
- package/.qa-ai/rules/approval.rules.md +8 -0
- package/.qa-ai/rules/automation.rules.md +7 -0
- package/.qa-ai/rules/gherkin.rules.md +12 -0
- package/.qa-ai/rules/testrail.rules.md +10 -0
- package/.qa-ai/rules/webdriverio.rules.md +9 -0
- package/.qa-ai/scripts/bootstrap-agent-adapters.mjs +127 -0
- package/.qa-ai/scripts/clean.mjs +243 -0
- package/.qa-ai/scripts/config.mjs +202 -0
- package/.qa-ai/scripts/doctor.mjs +383 -0
- package/.qa-ai/scripts/init.mjs +447 -0
- package/.qa-ai/scripts/lib/markdown-table.mjs +76 -0
- package/.qa-ai/scripts/lib/project-config.mjs +184 -0
- package/.qa-ai/scripts/lib/qa-next-steps.mjs +578 -0
- package/.qa-ai/scripts/lib/release-gate.mjs +66 -0
- package/.qa-ai/scripts/lib/test-design.mjs +92 -0
- package/.qa-ai/scripts/lib/test-management-mapping.mjs +73 -0
- package/.qa-ai/scripts/lib/utils.mjs +331 -0
- package/.qa-ai/scripts/qa-help.mjs +44 -0
- package/.qa-ai/scripts/smoke-npm-pack.mjs +187 -0
- package/.qa-ai/scripts/smoke-test.mjs +465 -0
- package/.qa-ai/scripts/sync-agent-adapters.mjs +121 -0
- package/.qa-ai/scripts/test-validators.mjs +334 -0
- package/.qa-ai/scripts/validate-active-specialists.mjs +106 -0
- package/.qa-ai/scripts/validate-features.mjs +277 -0
- package/.qa-ai/scripts/validate-release-gate.mjs +105 -0
- package/.qa-ai/scripts/validate-sync-plan.mjs +186 -0
- package/.qa-ai/scripts/validate-target.mjs +104 -0
- package/.qa-ai/scripts/validate-test-design.mjs +117 -0
- package/.qa-ai/scripts/validate-traceability.mjs +183 -0
- package/.qa-ai/templates/automation-feasibility-report.template.md +21 -0
- package/.qa-ai/templates/automation-implementation-plan.template.md +23 -0
- package/.qa-ai/templates/feature.template +13 -0
- package/.qa-ai/templates/jira-automation-task.template.md +25 -0
- package/.qa-ai/templates/pr-template.md +60 -0
- package/.qa-ai/templates/release-gate.template.yaml +16 -0
- package/.qa-ai/templates/requirement-analysis.template.md +17 -0
- package/.qa-ai/templates/test-design-proposal.template.md +26 -0
- package/.qa-ai/templates/test-design-system.template.md +15 -0
- package/.qa-ai/templates/test-management-mapping.template.json +18 -0
- package/.qa-ai/templates/testrail-coverage-analysis.template.md +17 -0
- package/.qa-ai/templates/testrail-sync-plan.template.md +22 -0
- package/.qa-ai/templates/traceability-matrix.template.md +4 -0
- package/.qa-ai/workflows/automation-analysis.md +23 -0
- package/.qa-ai/workflows/cleanup.md +52 -0
- package/.qa-ai/workflows/context-intake.md +66 -0
- package/.qa-ai/workflows/full-flow.md +55 -0
- package/.qa-ai/workflows/implementation.md +24 -0
- package/.qa-ai/workflows/intake.md +3 -0
- package/.qa-ai/workflows/pr.md +3 -0
- package/.qa-ai/workflows/release-gate.md +22 -0
- package/.qa-ai/workflows/test-design-system.md +33 -0
- package/.qa-ai/workflows/test-design.md +23 -0
- package/.qa-ai/workflows/testrail-sync.md +23 -0
- package/CHANGELOG.md +108 -0
- package/CODE_OF_CONDUCT.md +11 -0
- package/CONTRIBUTING.md +39 -0
- package/LICENSE +21 -0
- package/README.es.md +602 -0
- package/README.md +633 -0
- package/ROADMAP.md +107 -0
- package/SECURITY.md +18 -0
- package/bin/qa-flowkit.mjs +214 -0
- package/docs/qa-ai/agent-compatibility.md +100 -0
- package/docs/qa-ai/architecture.md +130 -0
- package/docs/qa-ai/backlog.md +393 -0
- package/docs/qa-ai/cleanup.md +104 -0
- package/docs/qa-ai/customizing-agents.md +148 -0
- package/docs/qa-ai/getting-started.md +385 -0
- package/docs/qa-ai/implementation-guide-for-codex.md +210 -0
- package/docs/qa-ai/npm-migration-plan.md +50 -0
- package/docs/qa-ai/open-source-release-checklist.md +17 -0
- package/docs/qa-ai/qa-help.md +76 -0
- package/docs/qa-ai/release-gate.md +60 -0
- package/docs/qa-ai/terminal-transcripts.md +316 -0
- package/docs/qa-ai/test-design-dual-mode.md +75 -0
- package/docs/qa-ai/troubleshooting.md +740 -0
- package/docs/qa-ai/workflow.md +147 -0
- package/package.json +72 -0
|
@@ -0,0 +1,393 @@
|
|
|
1
|
+
# Backlog
|
|
2
|
+
|
|
3
|
+
## Product status
|
|
4
|
+
|
|
5
|
+
The folder-copy MVP is complete and the first target-repository pilot has confirmed that the core workflow works correctly. QA FlowKit is now in target-repo hardening: public, CI-backed and usable, with current work focused on strict validation, pilot notes, guided examples and packaging.
|
|
6
|
+
|
|
7
|
+
## Epic 1 - Portable starter foundation
|
|
8
|
+
|
|
9
|
+
### TASK-001 - Create portable `.qa-ai` folder
|
|
10
|
+
|
|
11
|
+
Status: Done
|
|
12
|
+
|
|
13
|
+
Acceptance Criteria:
|
|
14
|
+
- `.qa-ai/agents` exists.
|
|
15
|
+
- `.qa-ai/workflows` exists.
|
|
16
|
+
- `.qa-ai/rules` exists.
|
|
17
|
+
- `.qa-ai/templates` exists.
|
|
18
|
+
- `.qa-ai/scripts` exists.
|
|
19
|
+
- `.qa-ai/presets` exists.
|
|
20
|
+
- `.qa-ai/adapters` exists.
|
|
21
|
+
|
|
22
|
+
### TASK-002 - Implement init script
|
|
23
|
+
|
|
24
|
+
Status: Done
|
|
25
|
+
|
|
26
|
+
Acceptance Criteria:
|
|
27
|
+
- Generates `qa-ai.config.yaml`.
|
|
28
|
+
- Creates QA output, features and configured test folders.
|
|
29
|
+
- Records optional `--qa-context` knowledge folders without interpreting them in Node.
|
|
30
|
+
- Keeps default init minimal: OpenCode adapter only, no starter QA document files unless requested.
|
|
31
|
+
- Does not overwrite files by default.
|
|
32
|
+
- Supports presets.
|
|
33
|
+
- Supports adapter generation and adapter selection.
|
|
34
|
+
|
|
35
|
+
### TASK-003 - Implement agent bootstrap script
|
|
36
|
+
|
|
37
|
+
Status: Done
|
|
38
|
+
|
|
39
|
+
Acceptance Criteria:
|
|
40
|
+
- Runs after only `.qa-ai/` has been copied.
|
|
41
|
+
- Copies Claude Code `/qa-init` into `.claude/commands/`.
|
|
42
|
+
- Copies OpenCode `/qa-init` into `.opencode/commands/`.
|
|
43
|
+
- Does not overwrite files by default.
|
|
44
|
+
- Supports `--agents`, `--agent` and `--force`.
|
|
45
|
+
- Records created files in the manifest.
|
|
46
|
+
|
|
47
|
+
### TASK-004 - Implement doctor script
|
|
48
|
+
|
|
49
|
+
Status: Done
|
|
50
|
+
|
|
51
|
+
Acceptance Criteria:
|
|
52
|
+
- Reports pass/warn/fail.
|
|
53
|
+
- Validates config, core folders and required framework assets.
|
|
54
|
+
- Validates configured QA output, features and tests paths.
|
|
55
|
+
- Validates configured QA context when `knowledge.enabled` is true.
|
|
56
|
+
- Warns for missing automation framework config files.
|
|
57
|
+
|
|
58
|
+
### TASK-005 - Implement feature validator
|
|
59
|
+
|
|
60
|
+
Status: Done
|
|
61
|
+
|
|
62
|
+
Acceptance Criteria:
|
|
63
|
+
- Detects missing Acceptance Criteria.
|
|
64
|
+
- Detects multiple scenarios per file.
|
|
65
|
+
- Detects missing required tags.
|
|
66
|
+
- Detects required tags without values.
|
|
67
|
+
- Detects missing RF ID in filename, Feature and Scenario titles.
|
|
68
|
+
- Requires `# language: es` for Spanish Gherkin files.
|
|
69
|
+
|
|
70
|
+
### TASK-006 - Implement clean script
|
|
71
|
+
|
|
72
|
+
Status: Done
|
|
73
|
+
|
|
74
|
+
Acceptance Criteria:
|
|
75
|
+
- Uses `.qa-ai/state/init-manifest.json`.
|
|
76
|
+
- Runs as dry-run by default.
|
|
77
|
+
- Deletes only tracked generated files and directories.
|
|
78
|
+
- Requires `--force` before deleting.
|
|
79
|
+
- Protects modified tracked files unless `--include-modified` is passed.
|
|
80
|
+
- Removes directories only when tracked and empty.
|
|
81
|
+
|
|
82
|
+
## Epic 2 - Agent compatibility
|
|
83
|
+
|
|
84
|
+
### TASK-007 - Add generic AGENTS.md
|
|
85
|
+
|
|
86
|
+
Status: Done
|
|
87
|
+
|
|
88
|
+
### TASK-008 - Add Claude adapter
|
|
89
|
+
|
|
90
|
+
Status: Done
|
|
91
|
+
|
|
92
|
+
### TASK-009 - Add adapters for other tools
|
|
93
|
+
|
|
94
|
+
Status: Done
|
|
95
|
+
|
|
96
|
+
Supported adapters:
|
|
97
|
+
- Codex
|
|
98
|
+
- OpenCode
|
|
99
|
+
- Cline
|
|
100
|
+
- Continue
|
|
101
|
+
- Aider
|
|
102
|
+
- Goose
|
|
103
|
+
- Gemini CLI
|
|
104
|
+
|
|
105
|
+
Slash command support:
|
|
106
|
+
- Claude Code includes `/qa-init`, `/qa-full-flow`, `/qa-doctor`, `/qa-clean` and `/qa-validate-features`.
|
|
107
|
+
- OpenCode includes `/qa-init`, `/qa-full-flow`, `/qa-doctor`, `/qa-clean` and `/qa-validate-features`.
|
|
108
|
+
- Root bootstrap commands are provided for agent-first initialization before full adapter sync.
|
|
109
|
+
- Slash commands are guided by default and ask for required context when called without arguments.
|
|
110
|
+
|
|
111
|
+
## Epic 3 - QA workflow artifacts
|
|
112
|
+
|
|
113
|
+
### TASK-010 - Add templates for workflow artifacts
|
|
114
|
+
|
|
115
|
+
Status: Done
|
|
116
|
+
|
|
117
|
+
Templates exist for requirement analysis, test management coverage, test design proposal, automation feasibility, automation implementation, traceability, test management sync, issue task drafts and PR summaries.
|
|
118
|
+
|
|
119
|
+
### TASK-011 - Add QA rules
|
|
120
|
+
|
|
121
|
+
Status: Done
|
|
122
|
+
|
|
123
|
+
Rules exist for approval, Gherkin, test management, automation, UI automation and API testing.
|
|
124
|
+
|
|
125
|
+
### TASK-011A - Add optional QA context intake
|
|
126
|
+
|
|
127
|
+
Status: Done
|
|
128
|
+
|
|
129
|
+
Acceptance Criteria:
|
|
130
|
+
- `init.mjs` supports one repo-local `--qa-context` folder.
|
|
131
|
+
- Presets include disabled `knowledge` defaults.
|
|
132
|
+
- Claude Code and OpenCode `/qa-init` read QA context before proposing defaults.
|
|
133
|
+
- `.qa-ai/agents/qa-context-intake-agent.md` exists.
|
|
134
|
+
- `.qa-ai/workflows/context-intake.md` exists.
|
|
135
|
+
- Future agents read QA context summary and decisions when enabled.
|
|
136
|
+
|
|
137
|
+
## Epic 4 - Open-source readiness
|
|
138
|
+
|
|
139
|
+
### TASK-012 - Add public GitHub documents
|
|
140
|
+
|
|
141
|
+
Status: Done
|
|
142
|
+
|
|
143
|
+
Acceptance Criteria:
|
|
144
|
+
- LICENSE exists.
|
|
145
|
+
- CONTRIBUTING.md exists.
|
|
146
|
+
- CODE_OF_CONDUCT.md exists.
|
|
147
|
+
- SECURITY.md exists.
|
|
148
|
+
- README.md is complete for MVP use.
|
|
149
|
+
- ROADMAP.md is complete.
|
|
150
|
+
|
|
151
|
+
## Epic 5 - Stronger validators
|
|
152
|
+
|
|
153
|
+
### TASK-013 - Add stronger local validators
|
|
154
|
+
|
|
155
|
+
Status: Done
|
|
156
|
+
|
|
157
|
+
Acceptance Criteria:
|
|
158
|
+
- Feature validation parses Gherkin structure line-by-line.
|
|
159
|
+
- Feature validation detects duplicate explicit test case IDs.
|
|
160
|
+
- Traceability validation checks feature identifiers against the configured matrix.
|
|
161
|
+
- Sync plan validation keeps test-management sync proposal-first and approval-gated.
|
|
162
|
+
- Active specialist validation checks `.qa-ai/agents/specialists/active.md` against `qa-ai.config.yaml`.
|
|
163
|
+
- CI runs the stronger validators with source-repo-safe empty/missing allowances.
|
|
164
|
+
|
|
165
|
+
### TASK-014 - Add strict target repository validation
|
|
166
|
+
|
|
167
|
+
Status: Done
|
|
168
|
+
|
|
169
|
+
Acceptance Criteria:
|
|
170
|
+
- `doctor --strict` fails when configured target artifacts are missing.
|
|
171
|
+
- Strict mode documents source-repo vs target-repo expectations.
|
|
172
|
+
- Strict mode can be used in target repository CI.
|
|
173
|
+
- Strict mode checks that required QA workflow artifacts exist once generated by a real flow.
|
|
174
|
+
- Strict mode distinguishes warnings for optional adapters from failures for required configured assets.
|
|
175
|
+
|
|
176
|
+
### TASK-015 - Document first pilot findings
|
|
177
|
+
|
|
178
|
+
Status: Planned
|
|
179
|
+
|
|
180
|
+
Acceptance Criteria:
|
|
181
|
+
- Capture what worked in the first target repository pilot.
|
|
182
|
+
- Capture friction points and improvement ideas without exposing private repository details.
|
|
183
|
+
- Add migration notes that help the next adopter run init, doctor, feature validation and traceability validation.
|
|
184
|
+
- Link the notes from README or the guided examples documentation.
|
|
185
|
+
|
|
186
|
+
### TASK-016 - Strengthen traceability matrix validation
|
|
187
|
+
|
|
188
|
+
Status: Done
|
|
189
|
+
|
|
190
|
+
Acceptance Criteria:
|
|
191
|
+
- Validate that `traceability-matrix.md` contains a Markdown table.
|
|
192
|
+
- Require the configured traceability table columns from the template.
|
|
193
|
+
- Detect malformed rows, empty rows and rows without RF/test identifiers.
|
|
194
|
+
- Detect duplicate test case identifiers across matrix rows.
|
|
195
|
+
- Detect duplicate feature file entries across matrix rows.
|
|
196
|
+
- Preserve `--allow-empty` and `--allow-missing` behavior for source-repo CI.
|
|
197
|
+
|
|
198
|
+
### TASK-017 - Strengthen test-management sync plan validation
|
|
199
|
+
|
|
200
|
+
Status: Done
|
|
201
|
+
|
|
202
|
+
Acceptance Criteria:
|
|
203
|
+
- Validate that sync plans contain a Markdown table of proposed actions.
|
|
204
|
+
- Require minimum columns: `ID`, `Proposed action`, `Approval status`.
|
|
205
|
+
- Detect malformed rows, empty rows and rows without RF/test identifiers.
|
|
206
|
+
- Detect duplicate identifiers across sync plan rows.
|
|
207
|
+
- Detect language that claims external writes already happened.
|
|
208
|
+
- Require proposal-first and approval-gated language.
|
|
209
|
+
- Preserve `--allow-empty` and `--allow-missing` behavior for source-repo CI.
|
|
210
|
+
|
|
211
|
+
### TASK-018 - Extract shared Markdown table validation utilities
|
|
212
|
+
|
|
213
|
+
Status: Done
|
|
214
|
+
|
|
215
|
+
Acceptance Criteria:
|
|
216
|
+
- Add shared Markdown table parsing helpers under `.qa-ai/scripts/lib/`.
|
|
217
|
+
- Reuse the shared parser from traceability validation.
|
|
218
|
+
- Reuse the shared parser from sync-plan validation.
|
|
219
|
+
- Preserve current validator behavior and smoke coverage.
|
|
220
|
+
|
|
221
|
+
### TASK-019 - Add native Node tests for shared validators
|
|
222
|
+
|
|
223
|
+
Status: Done
|
|
224
|
+
|
|
225
|
+
Acceptance Criteria:
|
|
226
|
+
- Add dependency-free tests using `node:assert/strict`.
|
|
227
|
+
- Cover valid Markdown table parsing.
|
|
228
|
+
- Cover missing separator rows.
|
|
229
|
+
- Cover missing required columns.
|
|
230
|
+
- Cover malformed row cell counts.
|
|
231
|
+
- Cover empty rows.
|
|
232
|
+
- Include the tests in `validate:oss-extraction`.
|
|
233
|
+
|
|
234
|
+
### TASK-020 - Strengthen test-management mapping validation
|
|
235
|
+
|
|
236
|
+
Status: Done
|
|
237
|
+
|
|
238
|
+
Acceptance Criteria:
|
|
239
|
+
- Keep an empty mapping object `{}` valid for new repositories.
|
|
240
|
+
- Validate that non-empty mapping entries are keyed by RF/test IDs or `.feature` paths.
|
|
241
|
+
- Require each mapping entry value to be an object.
|
|
242
|
+
- Validate supported fields: `externalId`, `section`, `suite`, `status`, `lastReviewedAt`, `notes`.
|
|
243
|
+
- Detect duplicate `externalId` values.
|
|
244
|
+
- Detect secret-like field names or values.
|
|
245
|
+
- Cover the helper with native Node tests and sync-plan smoke tests.
|
|
246
|
+
|
|
247
|
+
### TASK-021 - Add documented test-management mapping template
|
|
248
|
+
|
|
249
|
+
Status: Done
|
|
250
|
+
|
|
251
|
+
Acceptance Criteria:
|
|
252
|
+
- Add a JSON template documenting valid mapping shape.
|
|
253
|
+
- Keep generated target mapping files empty by default.
|
|
254
|
+
- Validate the template with native Node tests.
|
|
255
|
+
- Include the template in doctor required template checks.
|
|
256
|
+
- Document allowed fields and secret-handling expectations in README.
|
|
257
|
+
|
|
258
|
+
### TASK-022 - Align adapter validation guidance with hardened validators
|
|
259
|
+
|
|
260
|
+
Status: Done
|
|
261
|
+
|
|
262
|
+
Acceptance Criteria:
|
|
263
|
+
- Update Claude Code command guidance for hardened target-repository validation.
|
|
264
|
+
- Update OpenCode command guidance with matching validation recommendations.
|
|
265
|
+
- Update Codex and generic adapter docs to mention strict doctor and full validators.
|
|
266
|
+
- Keep source-repo maintainer validation pointed at `npm run validate:oss-extraction`.
|
|
267
|
+
|
|
268
|
+
### TASK-023 - Add target repository validation command
|
|
269
|
+
|
|
270
|
+
Status: Done
|
|
271
|
+
|
|
272
|
+
Acceptance Criteria:
|
|
273
|
+
- Add `validate-target.mjs` to run strict doctor and target validators in order.
|
|
274
|
+
- Support `--allow-empty`, `--allow-missing` and `--no-strict-doctor` for incomplete repositories.
|
|
275
|
+
- Add an npm script for target validation.
|
|
276
|
+
- Include the command in doctor checks.
|
|
277
|
+
- Cover success and failure paths in smoke tests.
|
|
278
|
+
- Update adapter guidance to prefer the aggregated command.
|
|
279
|
+
|
|
280
|
+
## Epic 6 - Guided examples and public docs
|
|
281
|
+
|
|
282
|
+
### TASK-024 - Add getting-started flows by user type
|
|
283
|
+
|
|
284
|
+
Status: Done
|
|
285
|
+
|
|
286
|
+
Acceptance Criteria:
|
|
287
|
+
- Add `docs/qa-ai/getting-started.md` with step-by-step flows for Manual QA, Automation QA, Agent-First and Maintainer profiles.
|
|
288
|
+
- Each flow includes prerequisites, exact commands, expected output and next steps.
|
|
289
|
+
- Link the document from the Documentation table in `README.md` and `README.es.md`.
|
|
290
|
+
|
|
291
|
+
### TASK-025 - Add troubleshooting guide
|
|
292
|
+
|
|
293
|
+
Status: Done
|
|
294
|
+
|
|
295
|
+
Acceptance Criteria:
|
|
296
|
+
- Cover common failures for init, doctor, feature validation, traceability validation and CI.
|
|
297
|
+
- Include expected error messages and resolution steps.
|
|
298
|
+
- Link from README and getting-started.
|
|
299
|
+
|
|
300
|
+
### TASK-026 - Add terminal transcripts for common workflows
|
|
301
|
+
|
|
302
|
+
Status: Done
|
|
303
|
+
|
|
304
|
+
Acceptance Criteria:
|
|
305
|
+
- Short terminal transcripts or screenshots for: default init, manual-only init, agent-first bootstrap, validate-features and validate-target.
|
|
306
|
+
- Transcripts embedded or linked from getting-started or a dedicated examples page.
|
|
307
|
+
|
|
308
|
+
## Epic 7 - Intelligent guidance (BMAD-inspired)
|
|
309
|
+
|
|
310
|
+
### TASK-028 - Add qa-help and qa-next-steps library
|
|
311
|
+
|
|
312
|
+
Status: Done
|
|
313
|
+
|
|
314
|
+
Acceptance Criteria:
|
|
315
|
+
- Add `qa-next-steps.mjs` with track-aware phase inspection and prioritized recommendations.
|
|
316
|
+
- Add `qa-help.mjs` CLI with `--json` support.
|
|
317
|
+
- Add `npm run qa:help`.
|
|
318
|
+
|
|
319
|
+
### TASK-029 - Add QA workflow tracks
|
|
320
|
+
|
|
321
|
+
Status: Done
|
|
322
|
+
|
|
323
|
+
Acceptance Criteria:
|
|
324
|
+
- Add `project.qaTrack` to presets (`quick` for manual-only, `standard` for automation presets).
|
|
325
|
+
- Support `init.mjs --qa-track`.
|
|
326
|
+
- Document track skips in orchestrator and `full-flow.md`.
|
|
327
|
+
|
|
328
|
+
### TASK-030 - Add /qa-help adapter commands
|
|
329
|
+
|
|
330
|
+
Status: Done
|
|
331
|
+
|
|
332
|
+
Acceptance Criteria:
|
|
333
|
+
- Add `qa-help.md` for Claude Code and OpenCode adapters.
|
|
334
|
+
- Update `qa-status` and `qa-full-flow` to reference `qa-help`.
|
|
335
|
+
- Add `docs/qa-ai/qa-help.md` and link from README.
|
|
336
|
+
|
|
337
|
+
## Epic 8 - Quality gates (BMAD-inspired)
|
|
338
|
+
|
|
339
|
+
### TASK-031 - Add release gate artifact and validator
|
|
340
|
+
|
|
341
|
+
Status: Done
|
|
342
|
+
|
|
343
|
+
Acceptance Criteria:
|
|
344
|
+
- Add `release-gate.template.yaml` and `validate-release-gate.mjs`.
|
|
345
|
+
- Support decisions PASS, CONCERNS, FAIL, WAIVED and PENDING (draft).
|
|
346
|
+
- Validate evidence paths exist and WAIVED requires approver plus waived_reason.
|
|
347
|
+
|
|
348
|
+
### TASK-032 - Integrate release gate with enterprise track
|
|
349
|
+
|
|
350
|
+
Status: Done
|
|
351
|
+
|
|
352
|
+
Acceptance Criteria:
|
|
353
|
+
- Add `release-gate-agent.md`, `release-gate.md` workflow and `/qa-gate` adapter commands.
|
|
354
|
+
- Include release gate validation in `validate-target.mjs` for `enterprise` track.
|
|
355
|
+
- Extend `qa-help` enterprise phase list with `release-gate`.
|
|
356
|
+
|
|
357
|
+
### TASK-027 - Add example manual-only repository
|
|
358
|
+
|
|
359
|
+
Status: Planned
|
|
360
|
+
|
|
361
|
+
Acceptance Criteria:
|
|
362
|
+
- Public repository with manual-only preset, feature files, traceability matrix and QA context folder.
|
|
363
|
+
- Passes `validate-target.mjs` in CI.
|
|
364
|
+
- Linked from README and getting-started.
|
|
365
|
+
|
|
366
|
+
## Epic 9 - Test design dual-mode (BMAD TEA-inspired)
|
|
367
|
+
|
|
368
|
+
### TASK-033 - Add system and per-RF test design artifacts
|
|
369
|
+
|
|
370
|
+
Status: Done
|
|
371
|
+
|
|
372
|
+
Acceptance Criteria:
|
|
373
|
+
- Add `test-design-system.template.md` and extend `test-design-proposal.template.md` for per-RF scope.
|
|
374
|
+
- Add `test-design-system-agent.md` and `test-design-system.md` workflow.
|
|
375
|
+
- Add `testDesign.systemPath` and `testDesign.proposalPath` to presets.
|
|
376
|
+
- Generate system template with `init.mjs --with-doc-templates`.
|
|
377
|
+
|
|
378
|
+
### TASK-034 - Add test design validation and qa-help phases
|
|
379
|
+
|
|
380
|
+
Status: Done
|
|
381
|
+
|
|
382
|
+
Acceptance Criteria:
|
|
383
|
+
- Add `lib/test-design.mjs` and `validate-test-design.mjs` with `npm run qa:validate-test-design`.
|
|
384
|
+
- Add `test-design-system` and `test-design-rf` phases to `qa-next-steps.mjs` for standard and enterprise tracks.
|
|
385
|
+
- Include test design validation in `validate-target.mjs` for standard and enterprise tracks.
|
|
386
|
+
- Add `docs/qa-ai/test-design-dual-mode.md` and link from README files.
|
|
387
|
+
|
|
388
|
+
## Future epics
|
|
389
|
+
|
|
390
|
+
- Example WebdriverIO + Playwright API repository.
|
|
391
|
+
- npm CLI migration.
|
|
392
|
+
- MCP read-only integration.
|
|
393
|
+
- Documentation site.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Cleanup
|
|
2
|
+
|
|
3
|
+
QA FlowKit includes a conservative cleanup command for generated files:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
node .qa-ai/scripts/clean.mjs
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
The command is designed for target repositories after `.qa-ai/` has been copied and `init.mjs` has run.
|
|
10
|
+
|
|
11
|
+
## Why cleanup is manifest-based
|
|
12
|
+
|
|
13
|
+
Generated project files can become real user work quickly. For example, `qa-ai-output/test-design-proposal.md` may start as a template and later contain important analysis.
|
|
14
|
+
|
|
15
|
+
For that reason, cleanup does not delete by path pattern alone. It reads:
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
.qa-ai/state/init-manifest.json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
The manifest records what the framework actually created, along with SHA-256 hashes for files. If a tracked file has changed since it was created, cleanup skips it by default.
|
|
22
|
+
|
|
23
|
+
## Dry-run default
|
|
24
|
+
|
|
25
|
+
Running clean without flags shows the plan and deletes nothing:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
node .qa-ai/scripts/clean.mjs
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The output uses actions such as:
|
|
32
|
+
|
|
33
|
+
- `WOULD DELETE FILE`: unchanged tracked file would be removed with `--force`.
|
|
34
|
+
- `WOULD REMOVE DIR`: tracked empty directory would be removed with `--force`.
|
|
35
|
+
- `SKIP`: entry is protected, modified, unsafe or non-empty.
|
|
36
|
+
- `MISSING`: entry no longer exists and would be removed from the manifest when executing.
|
|
37
|
+
|
|
38
|
+
## Cleanup scopes
|
|
39
|
+
|
|
40
|
+
Generated config, QA output artifacts and generated empty folders:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
node .qa-ai/scripts/clean.mjs --generated
|
|
44
|
+
node .qa-ai/scripts/clean.mjs --generated --force
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Agent adapters:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
node .qa-ai/scripts/clean.mjs --adapters
|
|
51
|
+
node .qa-ai/scripts/clean.mjs --adapters --empty-dirs --force
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Tracked empty directories:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
node .qa-ai/scripts/clean.mjs --empty-dirs
|
|
58
|
+
node .qa-ai/scripts/clean.mjs --empty-dirs --force
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Everything tracked:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
node .qa-ai/scripts/clean.mjs --all
|
|
65
|
+
node .qa-ai/scripts/clean.mjs --all --force
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
When no scope flag is passed, `--all` is assumed for the dry-run preview.
|
|
69
|
+
|
|
70
|
+
## Modified files
|
|
71
|
+
|
|
72
|
+
Changed tracked files are skipped by default:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
[SKIP] qa-ai-output/test-design-proposal.md (modified since init)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
To delete modified tracked files, the user must be explicit:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
node .qa-ai/scripts/clean.mjs --generated --force --include-modified
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Use this only when the generated content is intentionally being discarded.
|
|
85
|
+
|
|
86
|
+
## Manifest pruning
|
|
87
|
+
|
|
88
|
+
After all tracked entries are removed, the manifest can be removed too:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
node .qa-ai/scripts/clean.mjs --all --force --prune-state
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Without `--prune-state`, the manifest remains and records any entries that were skipped.
|
|
95
|
+
|
|
96
|
+
## Non-goals
|
|
97
|
+
|
|
98
|
+
The cleanup command does not:
|
|
99
|
+
|
|
100
|
+
- Remove the copied `.qa-ai/` framework folder.
|
|
101
|
+
- Delete untracked user files.
|
|
102
|
+
- Delete non-empty directories.
|
|
103
|
+
- Revert Git changes.
|
|
104
|
+
- Clean configured external tool data.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Customizing Agents
|
|
2
|
+
|
|
3
|
+
QA FlowKit agents are Markdown role instructions. You can adapt them to your team, but keep the shared safety rules and validation scripts as the source of truth.
|
|
4
|
+
|
|
5
|
+
## When to customize
|
|
6
|
+
|
|
7
|
+
Customize agents when your team needs stable behavior that should repeat across QA workflows:
|
|
8
|
+
|
|
9
|
+
- Requirement intake should use your team's RF naming conventions.
|
|
10
|
+
- Gherkin design should follow team vocabulary or scenario style.
|
|
11
|
+
- Automation planning should reflect your framework patterns.
|
|
12
|
+
- Test management planning should match your section, suite or ownership model.
|
|
13
|
+
- PR summaries should match your reviewer expectations.
|
|
14
|
+
|
|
15
|
+
Use `qa-ai.config.yaml` for project-specific paths, frameworks, languages and tools. Use `.qa-ai/rules/` for rules that must apply to every agent. Use agent files for phase-specific working style and output expectations.
|
|
16
|
+
|
|
17
|
+
## Agent layers
|
|
18
|
+
|
|
19
|
+
| Layer | Location | Use for |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| Global agent protocol | `.qa-ai/agents/README.md` | Load order and phase mapping |
|
|
22
|
+
| Shared rules | `.qa-ai/rules/*.rules.md` | Non-negotiable behavior across agents |
|
|
23
|
+
| Phase agents | `.qa-ai/agents/*-agent.md` | Phase-specific instructions and outputs |
|
|
24
|
+
| Specialists | `.qa-ai/agents/specialists/available/*.md` | Tool/framework-specific guidance |
|
|
25
|
+
| Active specialists | `.qa-ai/agents/specialists/active.md` | Generated list of specialists for the current config |
|
|
26
|
+
| Adapter commands | `.qa-ai/adapters/*` and generated root tool folders | Tool-specific slash commands and onboarding |
|
|
27
|
+
|
|
28
|
+
## Safe customization workflow
|
|
29
|
+
|
|
30
|
+
1. Run `node .qa-ai/scripts/doctor.mjs` before changing agent behavior.
|
|
31
|
+
2. Read `.qa-ai/rules/` and `.qa-ai/agents/README.md`.
|
|
32
|
+
3. Identify the smallest layer that should change.
|
|
33
|
+
4. Edit phase agents or specialist files first; avoid duplicating global rules.
|
|
34
|
+
5. If a rule must apply everywhere, update `.qa-ai/rules/` and docs together.
|
|
35
|
+
6. Run `npm run validate:oss-extraction` in the framework source repo, or the relevant validators in a target repo.
|
|
36
|
+
7. Open a PR with examples of changed agent outputs when behavior changes.
|
|
37
|
+
|
|
38
|
+
## What to change in phase agents
|
|
39
|
+
|
|
40
|
+
Phase agents are best for workflow-specific instructions:
|
|
41
|
+
|
|
42
|
+
- Required input questions.
|
|
43
|
+
- Output headings and artifact shape.
|
|
44
|
+
- Decision criteria for that phase.
|
|
45
|
+
- Examples of good and bad outputs.
|
|
46
|
+
- Escalation points where the agent must ask the user.
|
|
47
|
+
|
|
48
|
+
Examples:
|
|
49
|
+
|
|
50
|
+
- Add a required "Risk notes" section to `.qa-ai/agents/automation-feasibility-agent.md`.
|
|
51
|
+
- Tell `.qa-ai/agents/gherkin-test-design-agent.md` to prefer business-domain names over UI control names.
|
|
52
|
+
- Require `.qa-ai/agents/pr-agent.md` to include traceability IDs in every PR summary.
|
|
53
|
+
|
|
54
|
+
Avoid putting secrets, environment names, private URLs or credentials in agent files. Put team-specific private context in a target repository knowledge folder and reference it through `--qa-context`.
|
|
55
|
+
|
|
56
|
+
## What to change in specialists
|
|
57
|
+
|
|
58
|
+
Specialists are best for framework and tool conventions:
|
|
59
|
+
|
|
60
|
+
- Page object conventions.
|
|
61
|
+
- API fixture patterns.
|
|
62
|
+
- Test data setup style.
|
|
63
|
+
- TestRail or Jira field expectations.
|
|
64
|
+
- Browser/device/cloud provider practices.
|
|
65
|
+
|
|
66
|
+
Add or update specialist files under:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
.qa-ai/agents/specialists/available/
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Then make sure `qa-ai.config.yaml` points to matching tools/frameworks and regenerate active specialists:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
node .qa-ai/scripts/init.mjs --force
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
or import a profile:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
node .qa-ai/scripts/config.mjs --import .qa-ai/config-profiles/team.yaml --force
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Validate the result:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
node .qa-ai/scripts/validate-active-specialists.mjs
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Adding a new specialist
|
|
91
|
+
|
|
92
|
+
1. Create `.qa-ai/agents/specialists/available/<id>.md`.
|
|
93
|
+
2. Add the specialist to `specialistCatalog` in `.qa-ai/scripts/lib/project-config.mjs`.
|
|
94
|
+
3. Include aliases for the config values users are likely to enter.
|
|
95
|
+
4. Add docs if the specialist introduces a new supported framework.
|
|
96
|
+
5. Run:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
npm run validate:oss-extraction
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Specialist IDs should be lowercase kebab-case, for example `playwright-ui`, `rest-assured` or `mobile-webview`.
|
|
103
|
+
|
|
104
|
+
## Adapter command customization
|
|
105
|
+
|
|
106
|
+
Adapter templates live under `.qa-ai/adapters/`. Generated tool files live in root folders such as `.claude/`, `.opencode/` or `.codex/`.
|
|
107
|
+
|
|
108
|
+
Prefer editing adapter templates first, then regenerate adapters:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
node .qa-ai/scripts/sync-agent-adapters.mjs --adapters claude,opencode --force
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Only edit generated root adapter files directly when you are customizing a single target repository and do not want the change to become part of the portable framework.
|
|
115
|
+
|
|
116
|
+
## Keeping customizations portable
|
|
117
|
+
|
|
118
|
+
Keep portable framework changes in `.qa-ai/`. Keep target-repository-only knowledge in a repo-local folder such as:
|
|
119
|
+
|
|
120
|
+
```text
|
|
121
|
+
qa-ai-knowledge/
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Then initialize with:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
node .qa-ai/scripts/init.mjs --qa-context qa-ai-knowledge
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Agents should summarize approved team context into:
|
|
131
|
+
|
|
132
|
+
```text
|
|
133
|
+
qa-ai-output/qa-knowledge-summary.md
|
|
134
|
+
qa-ai-output/qa-init-decisions.md
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
This keeps the framework open-source ready while still allowing private teams to adapt behavior.
|
|
138
|
+
|
|
139
|
+
## Review checklist
|
|
140
|
+
|
|
141
|
+
Before merging agent customizations:
|
|
142
|
+
|
|
143
|
+
- [ ] No secrets, credentials, private URLs or personal data were added.
|
|
144
|
+
- [ ] Shared rules were updated only when behavior must apply globally.
|
|
145
|
+
- [ ] Phase-agent changes include expected output shape.
|
|
146
|
+
- [ ] Specialist changes match `qa-ai.config.yaml` aliases.
|
|
147
|
+
- [ ] Adapter changes were made in templates when they should be portable.
|
|
148
|
+
- [ ] `npm run validate:oss-extraction` passes.
|