Configuration
All skills read a single file - dq-qa.config.json - at the root of your project. This file is created by /qa-onboard and committed to your repository so the entire team shares the same configuration.
Creating the config
Run /qa-onboard in your coding agent session. It will interview you with a short questionnaire (≈ 5 minutes) and write the file automatically.
/qa-onboardFull config schema
{
"project": {
"name": "my-app"
},
"domains": {
"ui": {
"enabled": true,
"baseUrl": "https://app.example.com",
"recordVideo": true,
"reportDir": "./qa-reports/ui"
},
"api": {
"enabled": true,
"baseUrl": "https://api.example.com",
"schemaUrl": "https://api.example.com/swagger.json",
"reportDir": "./qa-reports/api"
},
"accessibility": {
"enabled": true,
"jurisdiction": "NZ",
"level": "AA",
"reportDir": "./qa-reports/a11y"
},
"performance": {
"enabled": true,
"schemaUrl": "https://api.example.com/swagger.json",
"thresholds": {
"p99LatencyMs": 800,
"okRequestPercent": 99
},
"reportDir": "./qa-reports/perf"
}
},
"requirements": {
"docsPath": "./requirements"
}
}Field reference
project
| Field | Type | Description |
|---|---|---|
name | string | Human-readable project name used in reports |
domains.ui
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Include UI domain in scope selection |
baseUrl | string | - | Root URL of the web application |
recordVideo | boolean | true | Record Playwright browser session videos |
reportDir | string | ./qa-reports/ui | Output directory for UI test reports |
domains.api
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Include API domain in scope selection |
baseUrl | string | - | Base URL of the API |
schemaUrl | string | - | URL to the OpenAPI/Swagger or GraphQL schema. Use this or schemaPath, not both |
schemaPath | string | - | Local path to a schema file, for example ./docs/openapi.yaml. OpenAPI JSON/YAML and GraphQL SDL are supported |
reportDir | string | ./qa-reports/api | Output directory for API test reports |
domains.accessibility
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Include accessibility domain in scope |
jurisdiction | string | - | Country, not a WCAG version. Controls which legal references appear in the report, for example ADA, EN 301 549, or the NZ Human Rights Act. One of US, NZ, AU, CA, EU, UK, JP, IN, BR, MX, INTERNATIONAL. /qa-a11y will ask if it is missing |
level | string | AA | WCAG conformance level (A, AA, AAA) |
reportDir | string | ./qa-reports/a11y | Output directory for accessibility reports |
WCAG version vs jurisdiction
jurisdiction is the legal context. The WCAG version is carried separately in the generated audit YAML as wcag_level, alongside the conformance level above.
domains.performance
| Field | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Include performance domain in scope |
schemaUrl | string | - | Schema URL used to auto-generate scenarios |
thresholds.p99LatencyMs | number | - | p99 latency threshold in milliseconds, asserted after the run |
thresholds.okRequestPercent | number | - | Minimum percentage of successful requests |
reportDir | string | ./qa-reports/perf | Output directory for performance reports |
requirements
| Field | Type | Default | Description |
|---|---|---|---|
docsPath | string | ./requirements | Folder holding the per-domain requirement files that planning and design skills read |
Disabling a domain
Set enabled: false for any domain you do not want offered during scope selection:
"performance": {
"enabled": false
}The domain will be hidden from all skill menus and will not appear in coverage reports.
Updating the config
Re-run /qa-onboard at any time. It detects the existing config and asks which sections to update rather than starting from scratch.
