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
package/README.md
ADDED
|
@@ -0,0 +1,633 @@
|
|
|
1
|
+
# QA FlowKit
|
|
2
|
+
|
|
3
|
+
[](LICENSE)
|
|
4
|
+
[](package.json)
|
|
5
|
+
[](ROADMAP.md)
|
|
6
|
+
[](docs/qa-ai/workflow.md)
|
|
7
|
+
[](https://github.com/warante/QA_FlowKit/actions/workflows/ci.yml)
|
|
8
|
+
|
|
9
|
+
Portable open-source framework and npm CLI for adding an AI-assisted QA workflow to an existing QA or automation repository.
|
|
10
|
+
|
|
11
|
+
Language: **English** | [Español](README.es.md)
|
|
12
|
+
|
|
13
|
+
## Table of Contents
|
|
14
|
+
|
|
15
|
+
- [What It Does](#what-it-does)
|
|
16
|
+
- [Quick Start](#quick-start)
|
|
17
|
+
- [Upgrading the framework](#upgrading-the-framework)
|
|
18
|
+
- [Guided Usage Paths](#guided-usage-paths)
|
|
19
|
+
- [Agent-First Bootstrap](#agent-first-bootstrap)
|
|
20
|
+
- [QA Context Folder](#qa-context-folder)
|
|
21
|
+
- [QA Workflow Tracks and Guided Help](#qa-workflow-tracks-and-guided-help)
|
|
22
|
+
- [Commands](#commands)
|
|
23
|
+
- [Validation](#validation)
|
|
24
|
+
- [Init Options](#init-options)
|
|
25
|
+
- [Base Templates](#base-templates)
|
|
26
|
+
- [Adapters](#adapters)
|
|
27
|
+
- [Generated Structure](#generated-structure)
|
|
28
|
+
- [Gherkin Rules](#gherkin-rules)
|
|
29
|
+
- [Cleanup](#cleanup)
|
|
30
|
+
- [Documentation](#documentation)
|
|
31
|
+
- [License](#license)
|
|
32
|
+
|
|
33
|
+
## What It Does
|
|
34
|
+
|
|
35
|
+
QA FlowKit is in **Early Product** stage: the portable folder workflow is implemented, validated in CI, and now gaining an npm CLI. Run `npx qa-flowkit init` in a target repository, and the repo receives configuration, agent instructions, workflow docs, validation scripts, templates and adapters for common coding-agent tools.
|
|
36
|
+
|
|
37
|
+
The starter does **not** perform external writes to configured tools. It creates proposal-first artifacts and local repo files only.
|
|
38
|
+
|
|
39
|
+
| Area | Included |
|
|
40
|
+
|---|---|
|
|
41
|
+
| Framework | Portable `.qa-ai/` folder |
|
|
42
|
+
| Scripts | `bootstrap-agent-adapters`, `init`, `config`, `doctor`, `clean`, `qa-help`, stronger validators, `validate-target`, `validate-release-gate`, `smoke-test`, `sync-agent-adapters` |
|
|
43
|
+
| Rules | Approval, Gherkin, test management, automation, UI automation and API testing |
|
|
44
|
+
| Agents | Phase agents plus active specialists from `.qa-ai/agents/specialists/active.md` |
|
|
45
|
+
| Templates | Requirement analysis, system/RF test design, traceability, automation planning, release gate and PR summary |
|
|
46
|
+
| Guided help | `qa-help` and `/qa-help` recommend the next workflow phase from artifacts and `project.qaTrack` |
|
|
47
|
+
| Release gate | Enterprise `release-gate.yaml` with `PASS` / `CONCERNS` / `FAIL` / `WAIVED` decisions |
|
|
48
|
+
| QA context | Optional repo-local folder with team QA practices for agent-assisted init defaults |
|
|
49
|
+
| Adapters | AGENTS.md, Claude Code, Codex, OpenCode, Cline, Continue, Aider, Goose and Gemini CLI |
|
|
50
|
+
|
|
51
|
+
```text
|
|
52
|
+
Requirements
|
|
53
|
+
-> requirement intake
|
|
54
|
+
-> official RF + acceptance criteria validation
|
|
55
|
+
-> system test design (standard / enterprise)
|
|
56
|
+
-> per-RF test design proposal
|
|
57
|
+
-> Gherkin feature files
|
|
58
|
+
-> test management coverage analysis
|
|
59
|
+
-> test management sync plan
|
|
60
|
+
-> traceability matrix
|
|
61
|
+
-> automation feasibility
|
|
62
|
+
-> configured-framework implementation plan
|
|
63
|
+
-> PR-ready summary
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Quick Start
|
|
67
|
+
|
|
68
|
+
Run this from the target repository where you want to install QA FlowKit:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
npx qa-flowkit init
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Then open the repository with your AI coding tool and start with:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
Read AGENTS.md, qa-ai.config.yaml and .qa-ai/workflows/full-flow.md. Follow .qa-ai/rules/ before making changes.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
When unsure what to run next:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npx qa-flowkit help
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Or use `/qa-help` in Claude Code or OpenCode after syncing adapters.
|
|
87
|
+
|
|
88
|
+
By default, init uses the `webdriverio-playwright-api` base template with English interface, English Gherkin and the OpenCode adapter only. It creates the minimum usable structure first; starter QA documents and extra adapters are opt-in.
|
|
89
|
+
|
|
90
|
+
Manual fallback when npm is not available:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
cp -R /path/to/QA_FlowKit/.qa-ai .qa-ai
|
|
94
|
+
node .qa-ai/scripts/init.mjs
|
|
95
|
+
node .qa-ai/scripts/doctor.mjs
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Upgrading the framework
|
|
99
|
+
|
|
100
|
+
If you already copied an older `.qa-ai/` folder into your repository, refresh the **portable framework** with the npm CLI or from a newer [QA FlowKit](https://github.com/warante/QA_FlowKit) release. Your workflow artifacts (`qa-ai.config.yaml`, `qa-ai-output/`, `features/`, `tests/`, custom `AGENTS.md` edits) live **outside** `.qa-ai/` and are not removed when you replace that folder.
|
|
101
|
+
|
|
102
|
+
### Before you start
|
|
103
|
+
|
|
104
|
+
1. Commit or back up the repository (especially `qa-ai.config.yaml` and `qa-ai-output/`).
|
|
105
|
+
2. Note which adapters you use (Claude Code, OpenCode, Codex, etc.).
|
|
106
|
+
3. Skim the release notes or [CHANGELOG](CHANGELOG.md) for new config keys (for example `project.qaTrack`, `testDesign.*`, `release.gatePath`).
|
|
107
|
+
|
|
108
|
+
### Recommended upgrade steps
|
|
109
|
+
|
|
110
|
+
**1. Preferred: update through npm**:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npx qa-flowkit update
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
This replaces only `.qa-ai/`, preserves `.qa-ai/state/` and `.qa-ai/config-profiles/`, refreshes active specialists, syncs existing adapters without overwriting them, and runs `doctor`.
|
|
117
|
+
|
|
118
|
+
**Manual fallback: replace the `.qa-ai/` folder** with the version from the latest QA FlowKit checkout or release tag:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Unix / macOS (from your target repository root)
|
|
122
|
+
rm -rf .qa-ai
|
|
123
|
+
cp -R /path/to/QA_FlowKit/.qa-ai .qa-ai
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```powershell
|
|
127
|
+
# Windows PowerShell (from your target repository root)
|
|
128
|
+
Remove-Item -Recurse -Force .\.qa-ai
|
|
129
|
+
Copy-Item -Recurse -LiteralPath C:\path\to\QA_FlowKit\.qa-ai -Destination .\.qa-ai
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**2. Refresh agent slash commands and adapter files** (safe to overwrite adapter templates; does not touch `qa-ai.config.yaml`):
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
node .qa-ai/scripts/sync-agent-adapters.mjs --adapters claude,opencode --force
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Add every adapter you use (`generic`, `codex`, `cline`, `continue`, `aider`, `goose`, `gemini`) or pass `--adapters all`.
|
|
139
|
+
|
|
140
|
+
**3. Re-run init without overwriting your config** (creates missing folders, refreshes `.qa-ai/agents/specialists/active.md`; skips existing `qa-ai.config.yaml` unless you pass `--force`):
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
node .qa-ai/scripts/init.mjs --no-adapters
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**4. Merge new settings into `qa-ai.config.yaml` manually** by comparing your file with the matching preset under `.qa-ai/presets/`. Do **not** run `init.mjs --force` unless you intend to replace the whole config. Typical additions in recent versions:
|
|
147
|
+
|
|
148
|
+
| Key | Purpose |
|
|
149
|
+
|---|---|
|
|
150
|
+
| `project.qaTrack` | Workflow depth: `quick`, `standard`, `enterprise` |
|
|
151
|
+
| `testDesign.systemPath` | System-level test design document |
|
|
152
|
+
| `testDesign.proposalPath` | Per-RF test design proposal |
|
|
153
|
+
| `release.gatePath` | Enterprise release gate YAML |
|
|
154
|
+
|
|
155
|
+
To export your current config before editing:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
node .qa-ai/scripts/config.mjs --export .qa-ai/config-profiles/backup-before-upgrade.yaml
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**5. Add missing starter documents** (optional; only creates files that do not exist yet):
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
node .qa-ai/scripts/init.mjs --with-doc-templates --no-adapters
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Use `--force` only if you explicitly want to reset generated templates under `qa-ai-output/`.
|
|
168
|
+
|
|
169
|
+
**6. Verify the upgrade:**
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
node .qa-ai/scripts/doctor.mjs
|
|
173
|
+
node .qa-ai/scripts/qa-help.mjs
|
|
174
|
+
npm run qa:validate-target -- --allow-empty --allow-missing --no-strict-doctor
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Adjust flags when your repository already has real `.feature` files and workflow artifacts.
|
|
178
|
+
|
|
179
|
+
### What init does and does not overwrite
|
|
180
|
+
|
|
181
|
+
| Path | Default on re-init | With `--force` |
|
|
182
|
+
|---|---|---|
|
|
183
|
+
| `.qa-ai/` | Replace manually (step 1) | Same |
|
|
184
|
+
| `qa-ai.config.yaml` | Skipped if present | Overwritten from preset |
|
|
185
|
+
| `qa-ai-output/*.md` (templates) | Skipped if present | Overwritten when using `--with-doc-templates` |
|
|
186
|
+
| `.claude/`, `.opencode/`, etc. | Skipped | Overwritten via `sync-agent-adapters --force` |
|
|
187
|
+
| `.qa-ai/agents/specialists/active.md` | Always regenerated | Always regenerated |
|
|
188
|
+
| `features/`, `tests/` | Never touched by init | Never touched |
|
|
189
|
+
|
|
190
|
+
### Minimal agent-first upgrade
|
|
191
|
+
|
|
192
|
+
If you only use `/qa-init` in Claude Code or OpenCode:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
rm -rf .qa-ai
|
|
196
|
+
cp -R /path/to/QA_FlowKit/.qa-ai .qa-ai
|
|
197
|
+
node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode --force
|
|
198
|
+
node .qa-ai/scripts/doctor.mjs
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
Then merge any new keys into `qa-ai.config.yaml` and run `/qa-help` to see the updated workflow phases.
|
|
202
|
+
|
|
203
|
+
## Guided Usage Paths
|
|
204
|
+
|
|
205
|
+
### Try QA FlowKit in a new repository
|
|
206
|
+
|
|
207
|
+
Use the default setup when you want the quickest path to a working QA AI workflow:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
npx qa-flowkit init
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Manual QA only
|
|
214
|
+
|
|
215
|
+
Use this when you want requirements-to-Gherkin and traceability without automation folders:
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
npx qa-flowkit init --preset manual-only --interface-language en --gherkin-language en
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### Automation repository
|
|
222
|
+
|
|
223
|
+
Use the default template for WebdriverIO UI/E2E plus Playwright API planning:
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
npx qa-flowkit init --preset webdriverio-playwright-api
|
|
227
|
+
npx qa-flowkit validate-features --allow-empty
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### Agent-first setup
|
|
231
|
+
|
|
232
|
+
Use this when Claude Code or OpenCode should guide initialization through `/qa-init`:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Then open the agent and run:
|
|
239
|
+
|
|
240
|
+
```text
|
|
241
|
+
/qa-init
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Agent-First Bootstrap
|
|
245
|
+
|
|
246
|
+
Use this flow when Claude Code or OpenCode should initialize the repo through `/qa-init`.
|
|
247
|
+
|
|
248
|
+
| Platform | Command |
|
|
249
|
+
|---|---|
|
|
250
|
+
| Unix/macOS | `cp -R /path/to/qa-flowkit/.qa-ai .qa-ai` |
|
|
251
|
+
| PowerShell | `Copy-Item -Recurse -LiteralPath C:\path\to\qa-flowkit\.qa-ai -Destination .\.qa-ai` |
|
|
252
|
+
|
|
253
|
+
Then run:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Open Claude Code or OpenCode in the target repository and run:
|
|
260
|
+
|
|
261
|
+
```text
|
|
262
|
+
/qa-init
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
Use `/qa-init` rather than `/init`; both Claude Code and OpenCode have their own built-in `/init` commands. The guided command asks for language, base template, adapters, optional framework overrides and overwrite behavior.
|
|
266
|
+
|
|
267
|
+
Advanced direct form:
|
|
268
|
+
|
|
269
|
+
```text
|
|
270
|
+
/qa-init --preset webdriverio-playwright-api --interface-language es --gherkin-language en --adapters claude,opencode
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## QA Context Folder
|
|
274
|
+
|
|
275
|
+
For a more tailored setup, add a repository-local folder that documents how QA works for your team, then start init through an agent:
|
|
276
|
+
|
|
277
|
+
```text
|
|
278
|
+
/qa-init --qa-context qa-ai-knowledge
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
The agent reads `.qa-ai/workflows/context-intake.md`, summarizes the QA context, proposes default init flags, asks for approval, and then runs `init.mjs` with `--qa-context <path>`. The Node script records the approved folder in `qa-ai.config.yaml`; it does not interpret the documents itself.
|
|
282
|
+
|
|
283
|
+
When enabled, future QA workflows should read the configured knowledge artifacts before planning:
|
|
284
|
+
|
|
285
|
+
```text
|
|
286
|
+
qa-ai-output/qa-knowledge-summary.md
|
|
287
|
+
qa-ai-output/qa-init-decisions.md
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## QA Workflow Tracks and Guided Help
|
|
291
|
+
|
|
292
|
+
QA FlowKit adapts workflow depth using `project.qaTrack` in `qa-ai.config.yaml` (inspired by BMAD Method tracks and TEA gate decisions).
|
|
293
|
+
|
|
294
|
+
### Workflow tracks
|
|
295
|
+
|
|
296
|
+
| Track | Default preset | Active phases (summary) | Best for |
|
|
297
|
+
|---|---|---|---|
|
|
298
|
+
| `quick` | `manual-only` | Intake, normalization, Gherkin, traceability, PR | Manual QA, narrow scope, fast Gherkin + traceability |
|
|
299
|
+
| `standard` | `webdriverio-playwright-api` | Full workflow including test-management planning, feasibility and automation phases when configured | Most automation repositories |
|
|
300
|
+
| `enterprise` | set with `--qa-track enterprise` | Same as `standard`, plus **release gate** and stricter `validate-target` | Compliance, audit trails, formal go/no-go |
|
|
301
|
+
|
|
302
|
+
Set the track at init:
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
node .qa-ai/scripts/init.mjs --preset manual-only --qa-track quick
|
|
306
|
+
node .qa-ai/scripts/init.mjs --preset webdriverio-playwright-api --qa-track standard
|
|
307
|
+
node .qa-ai/scripts/init.mjs --qa-track enterprise --with-doc-templates
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
| Track | Skipped by default |
|
|
311
|
+
|---|---|
|
|
312
|
+
| `quick` | Test-management coverage/sync, automation feasibility, UI/API implementation, issue task drafts, system test design, release gate |
|
|
313
|
+
| `standard` | Release gate; phases skipped when tools/frameworks are `none` (see orchestrator) |
|
|
314
|
+
| `enterprise` | None beyond config-based skips; requires `release-gate.yaml` before calling the workflow complete |
|
|
315
|
+
|
|
316
|
+
Details: [QA help and tracks](docs/qa-ai/qa-help.md).
|
|
317
|
+
|
|
318
|
+
### Guided next steps (`qa-help`)
|
|
319
|
+
|
|
320
|
+
`qa-help` inspects `qa-ai.config.yaml`, `qa-ai-output/`, `features/` and `.qa-ai/state/` to list completed, pending and skipped phases, then prints prioritized recommendations (`required`, `recommended`, `optional`).
|
|
321
|
+
|
|
322
|
+
```bash
|
|
323
|
+
npm run qa:help
|
|
324
|
+
node .qa-ai/scripts/qa-help.mjs
|
|
325
|
+
node .qa-ai/scripts/qa-help.mjs --json
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
After each `/qa-full-flow` step or agent phase, run `/qa-help` again. `/qa-status` includes `qa-help` output for the suggested next command.
|
|
329
|
+
|
|
330
|
+
### Release gate (enterprise)
|
|
331
|
+
|
|
332
|
+
After the PR summary, record a formal decision in `qa-ai-output/release-gate.yaml`:
|
|
333
|
+
|
|
334
|
+
| Decision | Meaning |
|
|
335
|
+
|---|---|
|
|
336
|
+
| `PASS` | Ready to release |
|
|
337
|
+
| `CONCERNS` | Release with documented follow-ups |
|
|
338
|
+
| `FAIL` | Blocking gaps remain |
|
|
339
|
+
| `WAIVED` | Exception accepted (requires `approver` and `waived_reason`) |
|
|
340
|
+
|
|
341
|
+
```bash
|
|
342
|
+
node .qa-ai/scripts/validate-release-gate.mjs
|
|
343
|
+
npm run qa:validate-release-gate
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
`/qa-gate` guides the agent through the gate workflow. `validate-target.mjs` runs the release gate validator automatically when `project.qaTrack` is `enterprise`.
|
|
347
|
+
|
|
348
|
+
Details: [Release gate](docs/qa-ai/release-gate.md).
|
|
349
|
+
|
|
350
|
+
### Test design dual-mode (standard / enterprise)
|
|
351
|
+
|
|
352
|
+
Before per-RF Gherkin files, produce:
|
|
353
|
+
|
|
354
|
+
1. `qa-ai-output/test-design-system.md` — architecture alignment, risks and cross-RF strategy.
|
|
355
|
+
2. `qa-ai-output/test-design-proposal.md` — cases for the active RF/epic (approval before `.feature` files).
|
|
356
|
+
|
|
357
|
+
The `quick` track skips the system phase and may combine proposal + features in one Gherkin pass.
|
|
358
|
+
|
|
359
|
+
Details: [Test design dual-mode](docs/qa-ai/test-design-dual-mode.md).
|
|
360
|
+
|
|
361
|
+
## Commands
|
|
362
|
+
|
|
363
|
+
| Command | Purpose |
|
|
364
|
+
|---|---|
|
|
365
|
+
| `npx qa-flowkit init` | Install `.qa-ai/`, generate config, folders and the default OpenCode adapter |
|
|
366
|
+
| `npx qa-flowkit update` | Refresh `.qa-ai/` from the npm package while preserving target artifacts |
|
|
367
|
+
| `npx qa-flowkit doctor` | Check setup health through the npm CLI |
|
|
368
|
+
| `npx qa-flowkit validate-target --allow-empty --allow-missing --no-strict-doctor` | Run target validation through the npm CLI |
|
|
369
|
+
| `node .qa-ai/scripts/bootstrap-agent-adapters.mjs --agents claude,opencode` | Copy minimal root slash commands for agent-first setup |
|
|
370
|
+
| `node .qa-ai/scripts/init.mjs` | Generate the minimum config, folders and OpenCode adapter |
|
|
371
|
+
| `node .qa-ai/scripts/init.mjs --qa-context qa-ai-knowledge` | Record a QA context folder for agent-assisted defaults |
|
|
372
|
+
| `node .qa-ai/scripts/config.mjs --export .qa-ai/config-profiles/team.yaml` | Export the current config as a reusable profile |
|
|
373
|
+
| `node .qa-ai/scripts/config.mjs --import .qa-ai/config-profiles/team.yaml` | Import a reusable config profile |
|
|
374
|
+
| `node .qa-ai/scripts/sync-agent-adapters.mjs --adapters all` | Sync selected adapter templates |
|
|
375
|
+
| `node .qa-ai/scripts/doctor.mjs` | Check setup health |
|
|
376
|
+
| `node .qa-ai/scripts/doctor.mjs --strict` | Fail CI-style checks for initialized target repositories |
|
|
377
|
+
| `node .qa-ai/scripts/validate-features.mjs` | Validate generated `.feature` files |
|
|
378
|
+
| `node .qa-ai/scripts/validate-traceability.mjs` | Validate traceability matrix coverage for feature IDs |
|
|
379
|
+
| `node .qa-ai/scripts/validate-sync-plan.mjs` | Validate proposal-first test-management sync plans |
|
|
380
|
+
| `node .qa-ai/scripts/validate-active-specialists.mjs` | Validate active specialist list against config |
|
|
381
|
+
| `node .qa-ai/scripts/validate-target.mjs` | Run strict target-repository validation after real QA artifacts exist |
|
|
382
|
+
| `node .qa-ai/scripts/qa-help.mjs` | Recommend the next QA phase from artifacts and `project.qaTrack` |
|
|
383
|
+
| `node .qa-ai/scripts/validate-release-gate.mjs` | Validate enterprise release gate YAML |
|
|
384
|
+
| `npm run qa:help` | Same as `qa-help.mjs` |
|
|
385
|
+
| `npm run qa:validate-release-gate` | Same as `validate-release-gate.mjs` |
|
|
386
|
+
| `node .qa-ai/scripts/validate-test-design.mjs` | Validate system and per-RF test design markdown structure |
|
|
387
|
+
| `npm run qa:validate-test-design` | Same as `validate-test-design.mjs` |
|
|
388
|
+
| `node .qa-ai/scripts/test-validators.mjs` | Run native Node unit tests for shared validator helpers |
|
|
389
|
+
| `node .qa-ai/scripts/smoke-test.mjs` | Run maintainer smoke checks |
|
|
390
|
+
| `node .qa-ai/scripts/smoke-npm-pack.mjs` | Run npm pack/install smoke checks |
|
|
391
|
+
| `npm run validate:oss-extraction` | Run doctor, stronger validators, validator unit tests and smoke tests (same as CI) |
|
|
392
|
+
| `node .qa-ai/scripts/clean.mjs` | Preview cleanup of generated artifacts |
|
|
393
|
+
|
|
394
|
+
Claude Code and OpenCode adapters also provide guided slash commands:
|
|
395
|
+
|
|
396
|
+
| Slash Command | Purpose |
|
|
397
|
+
|---|---|
|
|
398
|
+
| `/qa-init` | Guided initialization |
|
|
399
|
+
| `/qa-config` | Import or export reusable QA AI config profiles |
|
|
400
|
+
| `/qa-full-flow` | End-to-end requirements-to-PR QA flow |
|
|
401
|
+
| `/qa-add-tests` | Add tests for a new RF without disturbing existing tests |
|
|
402
|
+
| `/qa-update-tests` | Review existing tests after RF changes and apply approved updates |
|
|
403
|
+
| `/qa-automation-plan` | Classify existing `.feature` files and plan automation |
|
|
404
|
+
| `/qa-coverage` | Analyze functional coverage across RFs, manual tests and automated tests |
|
|
405
|
+
| `/qa-help` | Context-aware guidance for the next QA workflow step |
|
|
406
|
+
| `/qa-status` | Summarize config, artifacts, feature health and recommended next steps |
|
|
407
|
+
| `/qa-gate` | Record enterprise release gate decision (`PASS` / `CONCERNS` / `FAIL` / `WAIVED`) |
|
|
408
|
+
| `/qa-doctor` | Setup health checks |
|
|
409
|
+
| `/qa-clean` | Manifest-based cleanup preview/execution |
|
|
410
|
+
| `/qa-validate-features` | Gherkin convention validation |
|
|
411
|
+
|
|
412
|
+
`init.mjs` and `config.mjs --import` never overwrite existing files unless `--force` is passed. `validate-features.mjs` fails when no `.feature` files are found; use `--allow-empty` only for source-repo smoke checks or other cases where an empty feature folder is expected.
|
|
413
|
+
|
|
414
|
+
## Validation
|
|
415
|
+
|
|
416
|
+
QA FlowKit now uses stronger local validators without external dependencies:
|
|
417
|
+
|
|
418
|
+
| Validator | Checks |
|
|
419
|
+
|---|---|
|
|
420
|
+
| `doctor.mjs` | Framework assets, required scripts, rules, templates, agents, presets, adapters and configured paths; `--strict` promotes target-repository workflow artifacts and configured framework files from warnings to failures |
|
|
421
|
+
| `validate-features.mjs` | Parsed Gherkin structure, language directive, one Feature, one Scenario, acceptance criteria, required tags, RF IDs and duplicate explicit test IDs |
|
|
422
|
+
| `validate-traceability.mjs` | Feature RF/test identifiers are represented in the configured traceability matrix, with Markdown table shape and duplicate case/file checks |
|
|
423
|
+
| `validate-sync-plan.mjs` | Test-management sync plans stay proposal-first, mention approval, cover feature identifiers and pass Markdown table, duplicate ID and mapping-file checks |
|
|
424
|
+
| `validate-active-specialists.mjs` | `.qa-ai/agents/specialists/active.md` matches `qa-ai.config.yaml` and referenced specialist files exist |
|
|
425
|
+
| `validate-release-gate.mjs` | Enterprise release gate YAML shape, decision rules and evidence paths |
|
|
426
|
+
| `validate-test-design.mjs` | System and per-RF test design markdown section structure |
|
|
427
|
+
| `smoke-test.mjs` | Copy-folder install, config import/export, adapters, no-overwrite behavior, unsafe path rejection and validator behavior |
|
|
428
|
+
|
|
429
|
+
For source-repo CI, use:
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
npm run validate:oss-extraction
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
For a configured target repository with real `.feature` files and workflow artifacts, run the validators without `--allow-empty` / `--allow-missing` once the corresponding files should exist.
|
|
436
|
+
|
|
437
|
+
Use strict doctor mode in target repository CI after initialization and at least one real QA flow has generated the configured workflow artifacts:
|
|
438
|
+
|
|
439
|
+
```bash
|
|
440
|
+
node .qa-ai/scripts/validate-target.mjs
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
For incomplete target repositories, use `node .qa-ai/scripts/validate-target.mjs --allow-empty --allow-missing --no-strict-doctor`.
|
|
444
|
+
|
|
445
|
+
### Test-management mapping
|
|
446
|
+
|
|
447
|
+
When `--with-test-management-mapping` is passed, init creates the configured mapping file as an empty JSON object (`{}`) so new repositories do not start with fake external IDs.
|
|
448
|
+
|
|
449
|
+
Use [.qa-ai/templates/test-management-mapping.template.json](.qa-ai/templates/test-management-mapping.template.json) as the documented reference. Mapping keys must be RF/test IDs such as `RF-101` or `TC-001`, or `.feature` paths. Values must be objects with supported fields only: `externalId`, `section`, `suite`, `status`, `lastReviewedAt`, and `notes`. Do not store secrets, tokens or credentials in mapping files.
|
|
450
|
+
|
|
451
|
+
To reuse the same setup across repositories with the same structure, export a profile from the configured repository and import it in the next one:
|
|
452
|
+
|
|
453
|
+
```bash
|
|
454
|
+
node .qa-ai/scripts/config.mjs --export .qa-ai/config-profiles/team.yaml
|
|
455
|
+
node .qa-ai/scripts/config.mjs --import .qa-ai/config-profiles/team.yaml
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
Importing a profile writes `qa-ai.config.yaml`, creates the configured folders and refreshes `.qa-ai/agents/specialists/active.md`. Use `--no-structure` when you only want to copy the YAML.
|
|
459
|
+
|
|
460
|
+
## Init Options
|
|
461
|
+
|
|
462
|
+
`init.mjs` works with no flags. Use flags only when the default base template or language choices are not what you want.
|
|
463
|
+
|
|
464
|
+
| Option | Values | Default | Purpose |
|
|
465
|
+
|---|---|---|---|
|
|
466
|
+
| `--preset <name>` | `webdriverio-playwright-api`, `selenium-jest-browserstack`, `manual-only` | `webdriverio-playwright-api` | Selects the base template used to generate `qa-ai.config.yaml` |
|
|
467
|
+
| `--interface-language <lang>` | `en`, `es` | `en` | Language for generated QA artifact headings and guided workflow text |
|
|
468
|
+
| `--gherkin-language <lang>` | `en`, `es` | `en` | Language for generated `.feature` files |
|
|
469
|
+
| `--requirements-source <name>` | `markdown`, `jira`, `confluence`, `pasted-text`, custom value | Base template value | Sets the primary requirement source |
|
|
470
|
+
| `--test-management-tool <name>` | `none`, `testrail`, `zephyr`, `xray`, custom value | Base template value | Sets the configured test management tool |
|
|
471
|
+
| `--issue-tracker <name>` | `none`, `jira`, `github`, custom value | Base template value | Sets the configured issue tracker |
|
|
472
|
+
| `--qa-context <path>` | repo-local folder | off | Enables QA knowledge context for agent-assisted init |
|
|
473
|
+
| `--qa-track <name>` | `quick`, `standard`, `enterprise` | From preset | Controls workflow depth and `qa-help` phase list |
|
|
474
|
+
| `--adapters <list>` | `all`, `generic`, `codex`, `claude`, `opencode`, `cline`, `continue`, `aider`, `goose`, `gemini` | `opencode` | Selects generated agent adapters |
|
|
475
|
+
| `--no-adapters` | flag | off | Skips adapter generation |
|
|
476
|
+
| `--with-doc-templates` | flag | off | Generates starter Markdown artifacts under `qa-ai-output/` |
|
|
477
|
+
| `--with-test-management-mapping` | flag | off | Creates the configured test management mapping file |
|
|
478
|
+
| `--force` | flag | off | Allows overwriting generated files |
|
|
479
|
+
|
|
480
|
+
Advanced framework and path overrides:
|
|
481
|
+
|
|
482
|
+
| Option | Example Values | Purpose |
|
|
483
|
+
|---|---|---|
|
|
484
|
+
| `--ui-framework <name>` | `none`, `undecided`, `webdriverio`, `playwright`, `cypress`, `selenium` | Overrides the UI/E2E framework from the base template |
|
|
485
|
+
| `--api-framework <name>` | `none`, `undecided`, `playwright-api`, `postman`, `rest-assured`, `karate` | Overrides the API/integration framework from the base template |
|
|
486
|
+
| `--ui-specs-path <path>` | `tests/wdio/specs` | Overrides the UI specs path |
|
|
487
|
+
| `--ui-page-objects-path <path>` | `tests/wdio/pageobjects` | Overrides the UI page objects path |
|
|
488
|
+
| `--api-specs-path <path>` | `tests/api/specs` | Overrides the API specs path |
|
|
489
|
+
| `--specialist-mode <mode>` | `auto`, `off`, `required` | Controls specialist activation |
|
|
490
|
+
| `--set <key=value>` | `automation.ui.framework=cypress` | Sets a scalar config value directly |
|
|
491
|
+
|
|
492
|
+
Examples:
|
|
493
|
+
|
|
494
|
+
```bash
|
|
495
|
+
# Default setup
|
|
496
|
+
node .qa-ai/scripts/init.mjs
|
|
497
|
+
|
|
498
|
+
# Spanish interface and Spanish Gherkin, no automation folders
|
|
499
|
+
node .qa-ai/scripts/init.mjs --preset manual-only --interface-language es --gherkin-language es
|
|
500
|
+
|
|
501
|
+
# Generate only generic and Codex adapters
|
|
502
|
+
node .qa-ai/scripts/init.mjs --adapters generic,codex
|
|
503
|
+
|
|
504
|
+
# Generate starter QA artifact templates too
|
|
505
|
+
node .qa-ai/scripts/init.mjs --with-doc-templates
|
|
506
|
+
|
|
507
|
+
# Record a QA context folder after the agent has reviewed it
|
|
508
|
+
node .qa-ai/scripts/init.mjs --qa-context qa-ai-knowledge
|
|
509
|
+
|
|
510
|
+
# Generate every supported adapter
|
|
511
|
+
node .qa-ai/scripts/init.mjs --adapters all
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
Framework and path flags are advanced overrides. When a base template already defines the frameworks you want, omit those flags so the template paths are preserved.
|
|
515
|
+
|
|
516
|
+
## Base Templates
|
|
517
|
+
|
|
518
|
+
The `--preset` flag name is kept for CLI compatibility, but conceptually these are base templates: they provide a complete starting config that your flags can override.
|
|
519
|
+
|
|
520
|
+
| Base Template (`--preset`) | Best For | Default Automation |
|
|
521
|
+
|---|---|---|
|
|
522
|
+
| `webdriverio-playwright-api` | QA + automation repositories | WebdriverIO UI/E2E and Playwright API |
|
|
523
|
+
| `selenium-jest-browserstack` | Selenium-style UI automation | Selenium/Jest/BrowserStack folders |
|
|
524
|
+
| `manual-only` | QA design without automation folders | None |
|
|
525
|
+
|
|
526
|
+
## Adapters
|
|
527
|
+
|
|
528
|
+
| Adapter | Generated Path | Notes |
|
|
529
|
+
|---|---|---|
|
|
530
|
+
| Generic | `AGENTS.md` | Cross-agent behavior and safety rules |
|
|
531
|
+
| Claude Code | `.claude/` | Slash commands including `/qa-init` |
|
|
532
|
+
| Codex | `.codex/` | Codex onboarding prompts |
|
|
533
|
+
| OpenCode | `.opencode/` | Slash commands including `/qa-init` |
|
|
534
|
+
| Cline | `.clinerules`, `.cline/` | Cline behavior and docs |
|
|
535
|
+
| Continue | `.continue/` | Review/check guidance |
|
|
536
|
+
| Aider | `.aider.conf.yml`, `.aider/` | Read list and command notes |
|
|
537
|
+
| Goose | `.goose/` | Workflow recipe |
|
|
538
|
+
| Gemini CLI | `GEMINI.md` | Gemini CLI project context |
|
|
539
|
+
|
|
540
|
+
## Generated Structure
|
|
541
|
+
|
|
542
|
+
```text
|
|
543
|
+
qa-ai.config.yaml
|
|
544
|
+
.opencode/
|
|
545
|
+
qa-ai-output/
|
|
546
|
+
qa-ai-output/qa-knowledge-summary.md # Optional, written by agent-assisted QA context intake
|
|
547
|
+
qa-ai-output/qa-init-decisions.md # Optional, written by agent-assisted QA context intake
|
|
548
|
+
features/
|
|
549
|
+
tests/
|
|
550
|
+
|
|
551
|
+
# Optional, only when requested through --adapters
|
|
552
|
+
AGENTS.md
|
|
553
|
+
.claude/
|
|
554
|
+
.codex/
|
|
555
|
+
.cline/
|
|
556
|
+
.clinerules
|
|
557
|
+
.continue/
|
|
558
|
+
.aider.conf.yml
|
|
559
|
+
.aider/
|
|
560
|
+
.goose/
|
|
561
|
+
GEMINI.md
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
Default init creates only the minimum useful files and folders. It does not create starter `qa-ai-output/*.md` artifacts unless `--with-doc-templates` is passed, and it generates only the OpenCode adapter unless `--adapters` requests more.
|
|
565
|
+
|
|
566
|
+
The exact `tests/` subfolders are config-aware. Init creates configured UI/API paths when frameworks are set, and skips automation folders when frameworks are `none` or `undecided`.
|
|
567
|
+
|
|
568
|
+
When `project.interfaceLanguage` is `es`, init localizes the generated QA Markdown artifact headings. Gherkin language remains controlled separately by `gherkin.language`.
|
|
569
|
+
|
|
570
|
+
## Gherkin Rules
|
|
571
|
+
|
|
572
|
+
| Rule | Requirement |
|
|
573
|
+
|---|---|
|
|
574
|
+
| Language | English (`en`) or Spanish (`es`) from `qa-ai.config.yaml` |
|
|
575
|
+
| Spanish directive | Spanish `.feature` files must include `# language: es` |
|
|
576
|
+
| File model | One `.feature` file per test case |
|
|
577
|
+
| Scenario model | One configured scenario keyword per file |
|
|
578
|
+
| Acceptance criteria | `Acceptance Criteria:` for English or `Criterios de aceptación:` for Spanish |
|
|
579
|
+
| Required tags | `@priority:<value>`, `@type:<value>`, `@manual:<value>` |
|
|
580
|
+
| Scope | Manual tests have `.feature` files; unit tests are out of scope |
|
|
581
|
+
|
|
582
|
+
## Cleanup
|
|
583
|
+
|
|
584
|
+
`init.mjs` and `sync-agent-adapters.mjs` maintain a manifest at:
|
|
585
|
+
|
|
586
|
+
```text
|
|
587
|
+
.qa-ai/state/init-manifest.json
|
|
588
|
+
```
|
|
589
|
+
|
|
590
|
+
Cleanup is a dry-run by default:
|
|
591
|
+
|
|
592
|
+
```bash
|
|
593
|
+
node .qa-ai/scripts/clean.mjs
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
To execute cleanup, pass `--force` plus the scope you want:
|
|
597
|
+
|
|
598
|
+
```bash
|
|
599
|
+
node .qa-ai/scripts/clean.mjs --generated --force
|
|
600
|
+
node .qa-ai/scripts/clean.mjs --adapters --empty-dirs --force
|
|
601
|
+
node .qa-ai/scripts/clean.mjs --all --force
|
|
602
|
+
```
|
|
603
|
+
|
|
604
|
+
Safety rules:
|
|
605
|
+
|
|
606
|
+
- Files are deleted only when they are tracked in the manifest.
|
|
607
|
+
- Files changed since init are skipped by default.
|
|
608
|
+
- `--include-modified` is required to delete modified tracked files.
|
|
609
|
+
- Directories are removed only when tracked and empty.
|
|
610
|
+
- The copied `.qa-ai/` framework folder is not removed by clean.
|
|
611
|
+
|
|
612
|
+
## Documentation
|
|
613
|
+
|
|
614
|
+
| Document | Purpose |
|
|
615
|
+
|---|---|
|
|
616
|
+
| [Getting started](docs/qa-ai/getting-started.md) | Step-by-step setup flows by user type |
|
|
617
|
+
| [QA help and tracks](docs/qa-ai/qa-help.md) | Context-aware next steps, workflow tracks and phase skips |
|
|
618
|
+
| [Release gate](docs/qa-ai/release-gate.md) | Enterprise go/no-go decisions (`PASS` / `CONCERNS` / `FAIL` / `WAIVED`) |
|
|
619
|
+
| [Test design dual-mode](docs/qa-ai/test-design-dual-mode.md) | System-level and per-RF test design artifacts (BMAD TEA-inspired) |
|
|
620
|
+
| [Terminal transcripts](docs/qa-ai/terminal-transcripts.md) | Real command output for common workflows |
|
|
621
|
+
| [Troubleshooting](docs/qa-ai/troubleshooting.md) | Common failures and resolutions |
|
|
622
|
+
| [Architecture](docs/qa-ai/architecture.md) | Framework structure and safety model |
|
|
623
|
+
| [Workflow](docs/qa-ai/workflow.md) | End-to-end QA flow |
|
|
624
|
+
| [Agent compatibility](docs/qa-ai/agent-compatibility.md) | Adapter behavior and command discovery |
|
|
625
|
+
| [Customizing agents](docs/qa-ai/customizing-agents.md) | How to adapt agents, specialists and adapters safely |
|
|
626
|
+
| [Cleanup](docs/qa-ai/cleanup.md) | Manifest-based cleanup details |
|
|
627
|
+
| [Roadmap](ROADMAP.md) | Product direction |
|
|
628
|
+
| [Contributing](CONTRIBUTING.md) | Contribution guidelines |
|
|
629
|
+
| [Security](SECURITY.md) | Vulnerability and secret-handling policy |
|
|
630
|
+
|
|
631
|
+
## License
|
|
632
|
+
|
|
633
|
+
MIT. See [LICENSE](LICENSE).
|