Skip to content

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-onboard

Full config schema

json
{
  "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

FieldTypeDescription
namestringHuman-readable project name used in reports

domains.ui

FieldTypeDefaultDescription
enabledbooleantrueInclude UI domain in scope selection
baseUrlstring-Root URL of the web application
recordVideobooleantrueRecord Playwright browser session videos
reportDirstring./qa-reports/uiOutput directory for UI test reports

domains.api

FieldTypeDefaultDescription
enabledbooleantrueInclude API domain in scope selection
baseUrlstring-Base URL of the API
schemaUrlstring-URL to the OpenAPI/Swagger or GraphQL schema. Use this or schemaPath, not both
schemaPathstring-Local path to a schema file, for example ./docs/openapi.yaml. OpenAPI JSON/YAML and GraphQL SDL are supported
reportDirstring./qa-reports/apiOutput directory for API test reports

domains.accessibility

FieldTypeDefaultDescription
enabledbooleantrueInclude accessibility domain in scope
jurisdictionstring-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
levelstringAAWCAG conformance level (A, AA, AAA)
reportDirstring./qa-reports/a11yOutput 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

FieldTypeDefaultDescription
enabledbooleantrueInclude performance domain in scope
schemaUrlstring-Schema URL used to auto-generate scenarios
thresholds.p99LatencyMsnumber-p99 latency threshold in milliseconds, asserted after the run
thresholds.okRequestPercentnumber-Minimum percentage of successful requests
reportDirstring./qa-reports/perfOutput directory for performance reports

requirements

FieldTypeDefaultDescription
docsPathstring./requirementsFolder 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:

json
"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.

Released under the AGPL-3.0 License.