gws qa
Sync QA runs and test-case specs between your machine and GetWebstack. The API is the canonical store for cases and runs, so this command is the bridge to it.
You'll rarely type gws qa yourself — it's mostly invoked by the /gws-qa-generate and /gws-qa-run skills. It's documented here because it's a real, re-runnable command.
Usage
gws qa <subcommand> [target] [options]
| Subcommand | Purpose |
|---|---|
report [run-dir] | Publish a completed QA run (runs → cases → steps → artifacts) to the API. Defaults to the newest run under ./.gws/qa-runs/. |
report-cases <cases-file> | Publish a set of test-case specs. |
cases pull | Pull the case specs for a branch from the API. |
intent pull / intent push | Pull or push branch intent (acceptance criteria + seed). push reads --from <file>. |
| Flag | Description |
|---|---|
--strict | For report: exit non-zero on failure (report is best-effort by default). |
--no-videos | Skip screen-recording (video) artifacts to keep the upload light. |
--keep | For report: keep the run dir after a successful upload (default: delete it). |
--branch <branch> | Branch to key case-specs on (default: the current git branch). |
--out <file> | For cases pull: write to a file (default ~/.gws/qa-cases/<branch>.md). |
--from <file> | For intent push: the .json intent file to PUT. |
--json | Emit result as JSON (report: { runId, url, summary, cases }). |
Idempotency: report is keyed by the run-dir name, so re-running it updates the same run rather than duplicating it.
Examples
# Publish the newest local QA run
gws qa report
# Publish a specific run, keeping the local dir and skipping videos
gws qa report .gws/qa-runs/20260625-150718 --keep --no-videos
# Pull the cases for the current branch
gws qa cases pull
# Push acceptance criteria + seed for the branch
gws qa intent push --from ./intent.json
See also
/gws-qa-generate— generate and seed cases/gws-qa-run— run cases in parallel and publish the report- Branch QA Report — the end-to-end use case