verify-reviewlisted
Install: claude install-skill taipt1504/claudehut
## Dispatch contract (read this FIRST)
This phase runs in **two sub-steps from the main thread**. Nested subagent dispatch is unsupported (a subagent cannot spawn subagents), so the reviewer fan-out is always **main-thread** — the verifier is only a gate-runner.
### Step 1 — Gate runner (verifier subagent)
```
Task(
subagent_type = "claudehut-verifier",
prompt = <output of scripts/dispatch-prompt.sh "$ARGUMENTS">
)
```
Render the prompt by running `$CLAUDE_PLUGIN_ROOT/skills/verify-review/scripts/dispatch-prompt.sh "$ARGUMENTS"` and pass the stdout verbatim as the Task `prompt`. The verifier runs build/test/coverage/lint/static gates, writes the `verify` stanza to `.claudehut/findings/<task-id>-findings.json`, and returns a gate summary.
### Step 2 — Reviewer fan-out (main thread, only when all verify gates pass)
Read the gate summary. If a gate failed, skip to Step 3 (the zero-shard / verify-fail guard yields `fail`). When gates pass, dispatch the reviewer roster in **ONE message** (multiple Task invocations — they run concurrently in isolated contexts):
```
Task: claudehut-reviewer-security (always)
Task: claudehut-reviewer-perf (always)
Task: claudehut-reviewer-style (always)
Task: claudehut-reviewer-db (only if diff touches db/migration/, *Repository.java, *Entity.java, or pool config)
Task: claudehut-reviewer-reactive (only if web_stack == webflux)
Task: claudehut-reviewer-mapping (only if diff touches *Mapper.java/*Dto.java/*R