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.
Files changed (149) hide show
  1. package/.qa-ai/adapters/aider/.aider/README.md +25 -0
  2. package/.qa-ai/adapters/aider/.aider.conf.yml +6 -0
  3. package/.qa-ai/adapters/claude/agents/qa-workflow-orchestrator.md +18 -0
  4. package/.qa-ai/adapters/claude/commands/qa-add-tests.md +42 -0
  5. package/.qa-ai/adapters/claude/commands/qa-automation-plan.md +43 -0
  6. package/.qa-ai/adapters/claude/commands/qa-clean.md +42 -0
  7. package/.qa-ai/adapters/claude/commands/qa-config.md +51 -0
  8. package/.qa-ai/adapters/claude/commands/qa-coverage.md +46 -0
  9. package/.qa-ai/adapters/claude/commands/qa-doctor.md +11 -0
  10. package/.qa-ai/adapters/claude/commands/qa-full-flow.md +59 -0
  11. package/.qa-ai/adapters/claude/commands/qa-gate.md +36 -0
  12. package/.qa-ai/adapters/claude/commands/qa-help.md +30 -0
  13. package/.qa-ai/adapters/claude/commands/qa-init.md +70 -0
  14. package/.qa-ai/adapters/claude/commands/qa-status.md +56 -0
  15. package/.qa-ai/adapters/claude/commands/qa-update-tests.md +47 -0
  16. package/.qa-ai/adapters/claude/commands/qa-validate-features.md +36 -0
  17. package/.qa-ai/adapters/cline/.cline/README.md +25 -0
  18. package/.qa-ai/adapters/cline/.clinerules +9 -0
  19. package/.qa-ai/adapters/codex/README.md +44 -0
  20. package/.qa-ai/adapters/codex/prompts/implement-project.md +15 -0
  21. package/.qa-ai/adapters/continue/README.md +26 -0
  22. package/.qa-ai/adapters/continue/checks/qa-feature-conventions.md +15 -0
  23. package/.qa-ai/adapters/gemini/GEMINI.md +40 -0
  24. package/.qa-ai/adapters/generic/AGENTS.md +100 -0
  25. package/.qa-ai/adapters/goose/recipes/qa-flowkit.yaml +20 -0
  26. package/.qa-ai/adapters/opencode/README.md +57 -0
  27. package/.qa-ai/adapters/opencode/agents/qa-workflow.md +18 -0
  28. package/.qa-ai/adapters/opencode/commands/qa-add-tests.md +42 -0
  29. package/.qa-ai/adapters/opencode/commands/qa-automation-plan.md +43 -0
  30. package/.qa-ai/adapters/opencode/commands/qa-clean.md +42 -0
  31. package/.qa-ai/adapters/opencode/commands/qa-config.md +51 -0
  32. package/.qa-ai/adapters/opencode/commands/qa-coverage.md +46 -0
  33. package/.qa-ai/adapters/opencode/commands/qa-doctor.md +13 -0
  34. package/.qa-ai/adapters/opencode/commands/qa-full-flow.md +59 -0
  35. package/.qa-ai/adapters/opencode/commands/qa-gate.md +36 -0
  36. package/.qa-ai/adapters/opencode/commands/qa-help.md +30 -0
  37. package/.qa-ai/adapters/opencode/commands/qa-init.md +70 -0
  38. package/.qa-ai/adapters/opencode/commands/qa-status.md +56 -0
  39. package/.qa-ai/adapters/opencode/commands/qa-update-tests.md +47 -0
  40. package/.qa-ai/adapters/opencode/commands/qa-validate-features.md +36 -0
  41. package/.qa-ai/agents/README.md +39 -0
  42. package/.qa-ai/agents/api-testing-agent.md +73 -0
  43. package/.qa-ai/agents/automation-feasibility-agent.md +128 -0
  44. package/.qa-ai/agents/gherkin-test-design-agent.md +110 -0
  45. package/.qa-ai/agents/jira-task-agent.md +92 -0
  46. package/.qa-ai/agents/pr-agent.md +101 -0
  47. package/.qa-ai/agents/qa-context-intake-agent.md +75 -0
  48. package/.qa-ai/agents/qa-workflow-orchestrator.md +113 -0
  49. package/.qa-ai/agents/release-gate-agent.md +50 -0
  50. package/.qa-ai/agents/requirements-intake-agent.md +79 -0
  51. package/.qa-ai/agents/requirements-normalization-agent.md +80 -0
  52. package/.qa-ai/agents/specialists/available/appium.md +59 -0
  53. package/.qa-ai/agents/specialists/available/cypress.md +68 -0
  54. package/.qa-ai/agents/specialists/available/generic-test-design.md +117 -0
  55. package/.qa-ai/agents/specialists/available/jira.md +108 -0
  56. package/.qa-ai/agents/specialists/available/karate.md +97 -0
  57. package/.qa-ai/agents/specialists/available/playwright-api.md +87 -0
  58. package/.qa-ai/agents/specialists/available/playwright-ui.md +87 -0
  59. package/.qa-ai/agents/specialists/available/postman.md +108 -0
  60. package/.qa-ai/agents/specialists/available/rest-assured.md +103 -0
  61. package/.qa-ai/agents/specialists/available/selenium.md +91 -0
  62. package/.qa-ai/agents/specialists/available/testrail.md +85 -0
  63. package/.qa-ai/agents/specialists/available/webdriverio.md +81 -0
  64. package/.qa-ai/agents/test-design-system-agent.md +33 -0
  65. package/.qa-ai/agents/testrail-coverage-agent.md +84 -0
  66. package/.qa-ai/agents/testrail-sync-agent.md +96 -0
  67. package/.qa-ai/agents/webdriverio-implementation-agent.md +84 -0
  68. package/.qa-ai/presets/manual-only.yaml +65 -0
  69. package/.qa-ai/presets/selenium-jest-browserstack.yaml +72 -0
  70. package/.qa-ai/presets/webdriverio-playwright-api.yaml +85 -0
  71. package/.qa-ai/rules/api-testing.rules.md +7 -0
  72. package/.qa-ai/rules/approval.rules.md +8 -0
  73. package/.qa-ai/rules/automation.rules.md +7 -0
  74. package/.qa-ai/rules/gherkin.rules.md +12 -0
  75. package/.qa-ai/rules/testrail.rules.md +10 -0
  76. package/.qa-ai/rules/webdriverio.rules.md +9 -0
  77. package/.qa-ai/scripts/bootstrap-agent-adapters.mjs +127 -0
  78. package/.qa-ai/scripts/clean.mjs +243 -0
  79. package/.qa-ai/scripts/config.mjs +202 -0
  80. package/.qa-ai/scripts/doctor.mjs +383 -0
  81. package/.qa-ai/scripts/init.mjs +447 -0
  82. package/.qa-ai/scripts/lib/markdown-table.mjs +76 -0
  83. package/.qa-ai/scripts/lib/project-config.mjs +184 -0
  84. package/.qa-ai/scripts/lib/qa-next-steps.mjs +578 -0
  85. package/.qa-ai/scripts/lib/release-gate.mjs +66 -0
  86. package/.qa-ai/scripts/lib/test-design.mjs +92 -0
  87. package/.qa-ai/scripts/lib/test-management-mapping.mjs +73 -0
  88. package/.qa-ai/scripts/lib/utils.mjs +331 -0
  89. package/.qa-ai/scripts/qa-help.mjs +44 -0
  90. package/.qa-ai/scripts/smoke-npm-pack.mjs +187 -0
  91. package/.qa-ai/scripts/smoke-test.mjs +465 -0
  92. package/.qa-ai/scripts/sync-agent-adapters.mjs +121 -0
  93. package/.qa-ai/scripts/test-validators.mjs +334 -0
  94. package/.qa-ai/scripts/validate-active-specialists.mjs +106 -0
  95. package/.qa-ai/scripts/validate-features.mjs +277 -0
  96. package/.qa-ai/scripts/validate-release-gate.mjs +105 -0
  97. package/.qa-ai/scripts/validate-sync-plan.mjs +186 -0
  98. package/.qa-ai/scripts/validate-target.mjs +104 -0
  99. package/.qa-ai/scripts/validate-test-design.mjs +117 -0
  100. package/.qa-ai/scripts/validate-traceability.mjs +183 -0
  101. package/.qa-ai/templates/automation-feasibility-report.template.md +21 -0
  102. package/.qa-ai/templates/automation-implementation-plan.template.md +23 -0
  103. package/.qa-ai/templates/feature.template +13 -0
  104. package/.qa-ai/templates/jira-automation-task.template.md +25 -0
  105. package/.qa-ai/templates/pr-template.md +60 -0
  106. package/.qa-ai/templates/release-gate.template.yaml +16 -0
  107. package/.qa-ai/templates/requirement-analysis.template.md +17 -0
  108. package/.qa-ai/templates/test-design-proposal.template.md +26 -0
  109. package/.qa-ai/templates/test-design-system.template.md +15 -0
  110. package/.qa-ai/templates/test-management-mapping.template.json +18 -0
  111. package/.qa-ai/templates/testrail-coverage-analysis.template.md +17 -0
  112. package/.qa-ai/templates/testrail-sync-plan.template.md +22 -0
  113. package/.qa-ai/templates/traceability-matrix.template.md +4 -0
  114. package/.qa-ai/workflows/automation-analysis.md +23 -0
  115. package/.qa-ai/workflows/cleanup.md +52 -0
  116. package/.qa-ai/workflows/context-intake.md +66 -0
  117. package/.qa-ai/workflows/full-flow.md +55 -0
  118. package/.qa-ai/workflows/implementation.md +24 -0
  119. package/.qa-ai/workflows/intake.md +3 -0
  120. package/.qa-ai/workflows/pr.md +3 -0
  121. package/.qa-ai/workflows/release-gate.md +22 -0
  122. package/.qa-ai/workflows/test-design-system.md +33 -0
  123. package/.qa-ai/workflows/test-design.md +23 -0
  124. package/.qa-ai/workflows/testrail-sync.md +23 -0
  125. package/CHANGELOG.md +108 -0
  126. package/CODE_OF_CONDUCT.md +11 -0
  127. package/CONTRIBUTING.md +39 -0
  128. package/LICENSE +21 -0
  129. package/README.es.md +602 -0
  130. package/README.md +633 -0
  131. package/ROADMAP.md +107 -0
  132. package/SECURITY.md +18 -0
  133. package/bin/qa-flowkit.mjs +214 -0
  134. package/docs/qa-ai/agent-compatibility.md +100 -0
  135. package/docs/qa-ai/architecture.md +130 -0
  136. package/docs/qa-ai/backlog.md +393 -0
  137. package/docs/qa-ai/cleanup.md +104 -0
  138. package/docs/qa-ai/customizing-agents.md +148 -0
  139. package/docs/qa-ai/getting-started.md +385 -0
  140. package/docs/qa-ai/implementation-guide-for-codex.md +210 -0
  141. package/docs/qa-ai/npm-migration-plan.md +50 -0
  142. package/docs/qa-ai/open-source-release-checklist.md +17 -0
  143. package/docs/qa-ai/qa-help.md +76 -0
  144. package/docs/qa-ai/release-gate.md +60 -0
  145. package/docs/qa-ai/terminal-transcripts.md +316 -0
  146. package/docs/qa-ai/test-design-dual-mode.md +75 -0
  147. package/docs/qa-ai/troubleshooting.md +740 -0
  148. package/docs/qa-ai/workflow.md +147 -0
  149. package/package.json +72 -0
@@ -0,0 +1,76 @@
1
+ # QA Help and Workflow Tracks
2
+
3
+ QA FlowKit includes guided next-step recommendations inspired by [BMAD Method `bmad-help`](https://docs.bmad-method.org/reference/core-tools/). Use it when you are unsure which phase or command to run next.
4
+
5
+ ## Quick commands
6
+
7
+ ```bash
8
+ node .qa-ai/scripts/qa-help.mjs
9
+ npm run qa:help
10
+ ```
11
+
12
+ In Claude Code or OpenCode (after adapter sync):
13
+
14
+ ```text
15
+ /qa-help
16
+ /qa-help where do I start for manual QA?
17
+ ```
18
+
19
+ Machine-readable output:
20
+
21
+ ```bash
22
+ node .qa-ai/scripts/qa-help.mjs --json
23
+ ```
24
+
25
+ ## Workflow tracks (`project.qaTrack`)
26
+
27
+ Set during `init` (from preset or `--qa-track`):
28
+
29
+ | Track | Best for | Active phases |
30
+ |---|---|---|
31
+ | `quick` | Manual QA, narrow scope, Gherkin + traceability + PR | Context (optional), intake, normalization, Gherkin (proposal + features), traceability, PR |
32
+ | `standard` | Full QA AI workflow (default) | All phases when tools and frameworks are configured, including system and per-RF test design |
33
+ | `enterprise` | Teams that require strict target validation | Same as `standard`, plus `/qa-gate` and `validate-release-gate.mjs` |
34
+
35
+ ### Preset defaults
36
+
37
+ | Preset | Default track |
38
+ |---|---|
39
+ | `manual-only` | `quick` |
40
+ | `webdriverio-playwright-api` | `standard` |
41
+ | `selenium-jest-browserstack` | `standard` |
42
+
43
+ Override at init:
44
+
45
+ ```bash
46
+ node .qa-ai/scripts/init.mjs --preset manual-only --qa-track quick
47
+ node .qa-ai/scripts/init.mjs --preset webdriverio-playwright-api --qa-track enterprise
48
+ ```
49
+
50
+ ## How `qa-help` decides the next step
51
+
52
+ 1. Reads `qa-ai.config.yaml` and `project.qaTrack`.
53
+ 2. Checks which workflow artifacts and `.feature` files exist.
54
+ 3. Applies track-based skips (for example, `quick` skips test-management sync and automation implementation).
55
+ 4. Applies config-based skips (for example, `tools.testManagement: none`).
56
+ 5. Prints prioritized recommendations: **required**, **recommended**, **optional**.
57
+
58
+ ## Relationship to `/qa-status`
59
+
60
+ | Command | Purpose |
61
+ |---|---|
62
+ | `/qa-help` | What to do **next** in the workflow |
63
+ | `/qa-status` | Snapshot of **current** config, artifacts and health |
64
+
65
+ `/qa-status` includes `qa-help` output for the recommended next command.
66
+
67
+ ## After each workflow step
68
+
69
+ Run `qa-help` again to confirm the next phase. The orchestrator and `/qa-full-flow` command templates remind agents to do this automatically.
70
+
71
+ ## See also
72
+
73
+ - [Test design dual-mode](test-design-dual-mode.md)
74
+ - [Workflow](workflow.md)
75
+ - [Getting started](getting-started.md)
76
+ - [Agent compatibility](agent-compatibility.md)
@@ -0,0 +1,60 @@
1
+ # Release Quality Gate
2
+
3
+ Formal go/no-go record inspired by BMAD Test Architect (TEA) `*trace` gate decisions: `PASS`, `CONCERNS`, `FAIL`, `WAIVED`.
4
+
5
+ ## When to use
6
+
7
+ - `project.qaTrack: enterprise` in `qa-ai.config.yaml`
8
+ - Regulated or audit-sensitive releases
9
+ - When the team needs a single YAML artifact with evidence paths and residual risk
10
+
11
+ Quick and standard tracks do not require a release gate file.
12
+
13
+ ## Commands
14
+
15
+ ```bash
16
+ node .qa-ai/scripts/validate-release-gate.mjs
17
+ npm run qa:validate-release-gate
18
+ ```
19
+
20
+ Agent command (after adapter sync):
21
+
22
+ ```text
23
+ /qa-gate
24
+ ```
25
+
26
+ Enterprise target validation includes the release gate:
27
+
28
+ ```bash
29
+ node .qa-ai/scripts/validate-target.mjs
30
+ ```
31
+
32
+ Use `--skip-release-gate` or `--allow-missing` only for incomplete repositories.
33
+
34
+ ## Artifact
35
+
36
+ Default path: `qa-ai-output/release-gate.yaml`
37
+
38
+ Template: `.qa-ai/templates/release-gate.template.yaml`
39
+
40
+ | Field | Purpose |
41
+ |---|---|
42
+ | `decision` | `PASS`, `CONCERNS`, `FAIL`, `WAIVED`, or draft `PENDING` |
43
+ | `approver` | Required for `WAIVED` |
44
+ | `coverage_summary` | Human-readable validation and coverage summary |
45
+ | `open_risks` | List of risks; required for `CONCERNS` and `FAIL` |
46
+ | `evidence_paths` | Repository-relative paths that exist on disk |
47
+ | `waived_reason` | Required for `WAIVED` |
48
+
49
+ ## Workflow
50
+
51
+ 1. Complete the QA workflow through PR summary.
52
+ 2. Run `validate-target.mjs`.
53
+ 3. Load `.qa-ai/agents/release-gate-agent.md` or `/qa-gate`.
54
+ 4. Update the gate file and validate.
55
+ 5. Run `/qa-help` to confirm completion.
56
+
57
+ ## See also
58
+
59
+ - [QA help and tracks](qa-help.md)
60
+ - [Workflow](workflow.md)
@@ -0,0 +1,316 @@
1
+ # Terminal Transcripts
2
+
3
+ Real command output for the most common QA FlowKit workflows. All transcripts were captured from a clean temporary directory with only `.qa-ai/` copied in.
4
+
5
+ - [Default init (WebdriverIO + Playwright API)](#default-init-webdriverio--playwright-api)
6
+ - [Manual-only init](#manual-only-init)
7
+ - [Agent-first bootstrap](#agent-first-bootstrap)
8
+ - [Feature validation — passing](#feature-validation--passing)
9
+ - [Feature validation — failing](#feature-validation--failing)
10
+ - [Target repository validation — incomplete repo](#target-repository-validation--incomplete-repo)
11
+ - [Target repository validation — passing](#target-repository-validation--passing)
12
+
13
+ ---
14
+
15
+ ## Default init (WebdriverIO + Playwright API)
16
+
17
+ ```
18
+ $ node .qa-ai/scripts/init.mjs
19
+
20
+ === QA FlowKit init ===
21
+
22
+ Using base template: webdriverio-playwright-api
23
+ Using interface language: en
24
+ Using Gherkin language: en
25
+
26
+ Skipping starter QA docs. Use --with-doc-templates to generate qa-ai-output/*.md templates.
27
+ Skipping test management mapping file. Use --with-test-management-mapping to create it.
28
+
29
+ Syncing agent adapters...
30
+
31
+ === Sync agent adapters ===
32
+
33
+ Adapter opencode:
34
+ created .opencode
35
+ created .opencode/agents
36
+ created .opencode/commands
37
+ copied .opencode/agents/qa-workflow.md
38
+ copied .opencode/commands/qa-add-tests.md
39
+ copied .opencode/commands/qa-automation-plan.md
40
+ copied .opencode/commands/qa-clean.md
41
+ copied .opencode/commands/qa-config.md
42
+ copied .opencode/commands/qa-coverage.md
43
+ copied .opencode/commands/qa-doctor.md
44
+ copied .opencode/commands/qa-full-flow.md
45
+ copied .opencode/commands/qa-init.md
46
+ copied .opencode/commands/qa-status.md
47
+ copied .opencode/commands/qa-update-tests.md
48
+ copied .opencode/commands/qa-validate-features.md
49
+ copied .opencode/README.md
50
+
51
+ updated .qa-ai/state/init-manifest.json
52
+
53
+ Init completed. Summary:
54
+ created features
55
+ created features/accessibility
56
+ created features/api
57
+ created features/e2e
58
+ created features/functional
59
+ created features/integration
60
+ created features/manual
61
+ created qa-ai-output
62
+ created tests/api/specs
63
+ created tests/wdio/pageobjects
64
+ created tests/wdio/specs
65
+ created tests/api/clients
66
+ created tests/api/fixtures
67
+ created tests/api/helpers
68
+ created tests/api/schemas
69
+ created tests/wdio/fixtures
70
+ created tests/wdio/helpers
71
+ created qa-ai.config.yaml
72
+ created .qa-ai/agents/specialists/active.md
73
+ updated .qa-ai/state/init-manifest.json
74
+
75
+ Next: node .qa-ai/scripts/doctor.mjs
76
+ ```
77
+
78
+ Then run doctor to verify:
79
+
80
+ ```
81
+ $ node .qa-ai/scripts/doctor.mjs
82
+
83
+ === QA FlowKit doctor ===
84
+
85
+ [PASS] config: qa-ai.config.yaml
86
+ [PASS] framework folder: .qa-ai
87
+ [PASS] agents folder: .qa-ai/agents
88
+ [PASS] rules folder: .qa-ai/rules
89
+ [PASS] templates folder: .qa-ai/templates
90
+ [PASS] scripts folder: .qa-ai/scripts
91
+ [PASS] presets folder: .qa-ai/presets
92
+ [PASS] adapters folder: .qa-ai/adapters
93
+ [WARN] generic agent instructions: AGENTS.md
94
+ ... (framework scripts, rules, templates, agents, presets, workflows, adapter templates — all PASS) ...
95
+ [WARN] Claude adapter: .claude
96
+ [WARN] Codex adapter: .codex
97
+ [PASS] OpenCode adapter: .opencode
98
+ [WARN] Cline rules: .clinerules
99
+ ... (other optional adapters — WARN, expected) ...
100
+ [PASS] configured feature root: features
101
+ [PASS] configured QA output path: qa-ai-output
102
+ [WARN] configured traceability matrix: qa-ai-output/traceability-matrix.md
103
+ [WARN] WebdriverIO config: wdio.conf.ts or wdio.conf.js or wdio.conf.mjs or wdio.conf.cjs
104
+ [WARN] Playwright API config: playwright.api.config.ts or ...
105
+ [PASS] configured UI specs path: tests/wdio/specs
106
+ [PASS] configured UI page objects path: tests/wdio/pageobjects
107
+ [PASS] configured API specs path: tests/api/specs
108
+ [PASS] init manifest: .qa-ai/state/init-manifest.json
109
+ [PASS] active specialists index: .qa-ai/agents/specialists/active.md
110
+
111
+ Result:
112
+ VALID WITH WARNINGS - 22 optional checks missing.
113
+ ```
114
+
115
+ The warnings are expected for a freshly initialized repository:
116
+ - Optional adapters (`[WARN] Claude adapter`) — generate with `--adapters all` when needed.
117
+ - Framework config files (`[WARN] WebdriverIO config`) — these do not exist until you add them to your project.
118
+ - Workflow artifacts — not yet generated; they appear after the first QA flow.
119
+
120
+ ---
121
+
122
+ ## Manual-only init
123
+
124
+ ```
125
+ $ node .qa-ai/scripts/init.mjs --preset manual-only --interface-language en --gherkin-language en --no-adapters
126
+
127
+ === QA FlowKit init ===
128
+
129
+ Using base template: manual-only
130
+ Using interface language: en
131
+ Using Gherkin language: en
132
+
133
+ Skipping starter QA docs. Use --with-doc-templates to generate qa-ai-output/*.md templates.
134
+ Skipping test management mapping file. Use --with-test-management-mapping to create it.
135
+
136
+ Skipping agent adapter sync.
137
+
138
+ Init completed. Summary:
139
+ created features
140
+ created features/accessibility
141
+ created features/api
142
+ created features/e2e
143
+ created features/functional
144
+ created features/integration
145
+ created features/manual
146
+ created qa-ai-output
147
+ created qa-ai.config.yaml
148
+ created .qa-ai/agents/specialists/active.md
149
+ updated .qa-ai/state/init-manifest.json
150
+
151
+ Next: node .qa-ai/scripts/doctor.mjs
152
+ ```
153
+
154
+ No `tests/` folders are created because `manual-only` sets all automation frameworks to `none`.
155
+
156
+ ---
157
+
158
+ ## Agent-first bootstrap
159
+
160
+ Copy `.qa-ai/` first, then bootstrap slash commands for Claude Code and OpenCode:
161
+
162
+ ```
163
+ $ node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode
164
+
165
+ === QA FlowKit agent bootstrap ===
166
+
167
+ claude: copied .claude/commands/qa-init.md
168
+ opencode: copied .opencode/commands/qa-init.md
169
+ updated .qa-ai/state/init-manifest.json
170
+
171
+ Next: open Claude Code or OpenCode in this repository and run:
172
+ /qa-init
173
+
174
+ Advanced example for a manual-only QA setup:
175
+ /qa-init --preset manual-only --adapters claude,opencode
176
+ ```
177
+
178
+ Then open Claude Code or OpenCode and run `/qa-init`. The guided command asks for base template, languages, adapters and optional overrides before running `init.mjs`.
179
+
180
+ ---
181
+
182
+ ## Feature validation — passing
183
+
184
+ After the agent generates a valid feature file:
185
+
186
+ ```
187
+ $ node .qa-ai/scripts/validate-features.mjs
188
+
189
+ === QA AI feature validator ===
190
+
191
+ [PASS] features/functional/RF-101-TC-001-login.feature
192
+
193
+ VALID - all feature files passed.
194
+ ```
195
+
196
+ A valid feature file looks like:
197
+
198
+ ```gherkin
199
+ @priority:high @type:functional @manual:false @id:TC-001
200
+ Feature: RF-101 Login
201
+
202
+ Acceptance Criteria:
203
+ - User can sign in with valid credentials.
204
+
205
+ Scenario: RF-101 TC-001 Valid login
206
+ Given a registered user
207
+ When the user enters valid credentials
208
+ Then the dashboard is displayed
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Feature validation — failing
214
+
215
+ When a feature file is missing required elements:
216
+
217
+ ```
218
+ $ node .qa-ai/scripts/validate-features.mjs
219
+
220
+ === QA AI feature validator ===
221
+
222
+ [FAIL] features/functional/bad-login.feature
223
+ - Missing Acceptance Criteria.
224
+ - Missing required tag value @type:<value>
225
+ - Missing required tag value @manual:<value>
226
+ - Feature title does not contain an RF-like ID.
227
+ - Scenario title does not contain an RF-like ID.
228
+ - Feature filename does not contain an RF-like ID.
229
+ [PASS] features/functional/RF-101-TC-001-login.feature
230
+
231
+ FAILED - 6 validation errors.
232
+ ```
233
+
234
+ Fix each reported error in the failing file. See [Troubleshooting — Feature validation](troubleshooting.md#feature-validation) for resolution steps.
235
+
236
+ ---
237
+
238
+ ## Target repository validation — incomplete repo
239
+
240
+ After init but before the first full QA flow, use flags to match the actual state:
241
+
242
+ ```
243
+ $ node .qa-ai/scripts/validate-target.mjs --allow-empty --allow-missing --no-strict-doctor
244
+
245
+ === QA AI target repository validator ===
246
+
247
+ --- doctor ---
248
+ === QA FlowKit doctor ===
249
+ [PASS] config: qa-ai.config.yaml
250
+ [PASS] framework folder: .qa-ai
251
+ ... (all framework checks PASS) ...
252
+ [PASS] configured feature root: features
253
+ [PASS] configured QA output path: qa-ai-output
254
+ [WARN] configured traceability matrix: qa-ai-output/traceability-matrix.md
255
+ ... (optional artifact warnings) ...
256
+
257
+ Result:
258
+ VALID WITH WARNINGS - 16 optional checks missing.
259
+
260
+ --- feature validation ---
261
+ === QA AI feature validator ===
262
+ [PASS] features/functional/RF-101-TC-001-login.feature
263
+ VALID - all feature files passed.
264
+
265
+ --- traceability validation ---
266
+ === QA AI traceability validator ===
267
+ Traceability matrix not found at qa-ai-output/traceability-matrix.md.
268
+
269
+ --- sync plan validation ---
270
+ === QA AI sync plan validator ===
271
+ Sync plan not found at qa-ai-output/testrail-sync-plan.md.
272
+
273
+ --- active specialist validation ---
274
+ === QA AI active specialists validator ===
275
+ [PASS] .qa-ai/agents/specialists/active.md matches qa-ai.config.yaml.
276
+
277
+ VALID - target repository validation passed.
278
+ ```
279
+
280
+ Remove flags incrementally as artifacts are generated:
281
+
282
+ | Stage | Command |
283
+ |---|---|
284
+ | After init, no features yet | `validate-target.mjs --allow-empty --allow-missing --no-strict-doctor` |
285
+ | Features exist, no matrix yet | `validate-target.mjs --allow-missing --no-strict-doctor` |
286
+ | Full flow completed | `validate-target.mjs` |
287
+
288
+ ---
289
+
290
+ ## Target repository validation — passing
291
+
292
+ After a complete QA flow with all artifacts generated:
293
+
294
+ ```
295
+ $ node .qa-ai/scripts/validate-target.mjs
296
+
297
+ === QA AI target repository validator ===
298
+
299
+ --- doctor ---
300
+ Result:
301
+ VALID WITH WARNINGS - optional adapter checks only.
302
+
303
+ --- feature validation ---
304
+ VALID - all feature files passed.
305
+
306
+ --- traceability validation ---
307
+ [PASS] qa-ai-output/traceability-matrix.md covers identifiers from 12 feature file(s).
308
+
309
+ --- sync plan validation ---
310
+ [PASS] qa-ai-output/testrail-sync-plan.md is valid.
311
+
312
+ --- active specialist validation ---
313
+ [PASS] .qa-ai/agents/specialists/active.md matches qa-ai.config.yaml.
314
+
315
+ VALID - target repository validation passed.
316
+ ```
@@ -0,0 +1,75 @@
1
+ # Test Design Dual-Mode
2
+
3
+ Inspired by [BMAD Method TEA `*test-design`](https://docs.bmad-method.org/explanation/tea/overview/), QA FlowKit separates **system-level** test design from **per-RF (epic) test design** before Gherkin `.feature` generation.
4
+
5
+ ## Modes
6
+
7
+ | Mode | Artifact | When | Track |
8
+ |---|---|---|---|
9
+ | System | `qa-ai-output/test-design-system.md` | After normalization, before per-RF proposals | `standard`, `enterprise` |
10
+ | Per RF / epic | `qa-ai-output/test-design-proposal.md` | After system design (or directly on `quick`) | All tracks |
11
+
12
+ Optional future naming: `qa-ai-output/test-design-rf-RF-101.md` for large programs. The default template path remains `test-design-proposal.md` for one active RF batch.
13
+
14
+ ## Standard / enterprise sequence
15
+
16
+ ```text
17
+ normalized-requirements.md
18
+ -> test-design-system.md
19
+ -> test-design-proposal.md (approval)
20
+ -> features/*.feature
21
+ ```
22
+
23
+ ## Quick track
24
+
25
+ `quick` skips the system phase. The Gherkin agent may still produce `test-design-proposal.md` and `.feature` files in one pass.
26
+
27
+ ## Configuration
28
+
29
+ In `qa-ai.config.yaml`:
30
+
31
+ ```yaml
32
+ testDesign:
33
+ systemPath: qa-ai-output/test-design-system.md
34
+ proposalPath: qa-ai-output/test-design-proposal.md
35
+ ```
36
+
37
+ Generate starter files:
38
+
39
+ ```bash
40
+ node .qa-ai/scripts/init.mjs --with-doc-templates
41
+ ```
42
+
43
+ ## Agents and workflows
44
+
45
+ | Resource | Purpose |
46
+ |---|---|
47
+ | `.qa-ai/agents/test-design-system-agent.md` | System-wide strategy |
48
+ | `.qa-ai/workflows/test-design-system.md` | System design steps |
49
+ | `.qa-ai/agents/gherkin-test-design-agent.md` | Per-RF proposal + Gherkin |
50
+ | `.qa-ai/workflows/test-design.md` | Per-RF proposal and features |
51
+
52
+ ## Validation
53
+
54
+ ```bash
55
+ node .qa-ai/scripts/validate-test-design.mjs
56
+ npm run qa:validate-test-design
57
+ ```
58
+
59
+ Options:
60
+
61
+ - `--allow-missing` — pass when files are not created yet
62
+ - `--require-rf-id` — fail per-RF proposal without an `RF-###` reference
63
+
64
+ ## Guided help
65
+
66
+ `qa-help` lists `test-design-system` and `test-design-rf` phases on `standard` and `enterprise` tracks. Run:
67
+
68
+ ```bash
69
+ node .qa-ai/scripts/qa-help.mjs
70
+ ```
71
+
72
+ ## See also
73
+
74
+ - [QA help and tracks](qa-help.md)
75
+ - [Workflow](workflow.md)