Phase 4 - Execution
Execution is fully deterministic. /qa-exec reads qa-plan.md to determine which domains are active, then delegates each to its purpose-built CLI in a fixed order. The AI orchestrates and interprets results - it does not generate or modify tests at runtime.
Skill in this phase
| Skill | Purpose |
|---|---|
/qa-exec | Runs all in-scope domain tests in the correct order |
Execution order
API → UI + Accessibility → PerformanceThis order is intentional and not configurable:
| Step | Why |
|---|---|
| API first | Validates the backend is stable before browser tests depend on it |
| UI + A11y together | Both run in a single browser session - the UI interaction script and the axe-core audit share the same page navigation |
| Performance last | Load tests stress the system; run only after functional tests confirm it is working |
Per-domain execution
API
Submits the test plan to the democratize-quality MCP server:
mcp > democratize-quality > run_tests(plan: "qa-reports/api/api-test-plan.json")Output: qa-reports/api/api-report.html and api-report.json
UI + Accessibility
Runs the interaction YAML through accessibility-cli:
a11y-cli run qa-reports/ui/ui-test.yaml --output qa-reports/ui/
a11y-cli run qa-reports/a11y/ui-test.yaml --output qa-reports/a11y/Output: HTML report, screenshots, optional video recording
Performance
Executes the NBomber load test scenario:
dq-nbomber run --config load-tests/dq-nbomber.yaml --output qa-reports/perf/Output: qa-reports/perf/perf-report.html and perf-report.json
Prerequisites
Before running /qa-exec, confirm:
qa-plan.mdexists with at least one domain in scope- All in-scope design artefacts exist in
qa-reports/ - The application under test is running and reachable at the URL in
dq-qa.config.json - CLI tools are installed (
a11y-cli,dq-nbomber,democratize-qualityMCP)
After execution
Once all domains have run:
- No failures - proceed directly to Phase 5 - Closure and run
/qa-report - Failures found - proceed to Phase 5 and run
/qa-triagebefore/qa-report
Phase gate
Phase 4 is complete when:
- [x] All in-scope domains have completed execution
- [x] Report files exist in each domain's
qa-reports/subdirectory - [x] Exit codes and summary results have been reviewed
Once execution is complete, proceed to Phase 5 - Closure.
