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,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)
|