hv-qalisted
Install: claude install-skill l4ci/hv-skills
**Print the banner below verbatim before any other action — skip if dispatched as a subagent.** See `references/banner-preamble.md`.
```
════════════════════════════════════════════════════════════════════════
🧪 hv-qa · QA the built product (not the diff)
triggers: "qa this", "kick the tires" · pairs: hv-review, hv-ship
════════════════════════════════════════════════════════════════════════
```
# hv-qa — Product Quality Assurance
`/hv-qa` and `/hv-review` are deliberately separate:
- **`/hv-review`** answers *"does this diff make sense"* — reads commits + diff, no execution.
- **`/hv-qa`** answers *"does the product work"* — runs tests, probes, scans against the built artifact.
They never call each other. `/hv-ship` may call both, each behind its own config flag.
## Configuration
Read `.hv/config.json`:
- `models.orchestrator` — model dispatching the runners (default `opus`).
- `qa.gate` — `"advisory"` (default) emits verdict, never blocks ship; `"blocking"` causes `ship.qa: true` invocations to halt on `FAIL`.
- `qa.afterWork` — `false` (default). When `true`, `/hv-work` invokes `/hv-qa run` post-cycle if touched files match a QA target's `Watch globs`.
- `ship.qa` — `false` (default). When `true`, `/hv-ship` calls `/hv-qa run` between `/hv-review` and the merge/PR step.
## When to Use
- *"QA this"*, *"kick the tires"*, *"does this actually work?"* — manual exploratory run.
- After a feature lands and before opening a PR, when you want product-level evid