Immutable. This exact content is served forever at /api/v1/blob/5f06863a3a0c54ba.
--- name: triage-report description: 'Drain the `.review/` report queue. Resolves un-triaged scan/audit reports (producer-agnostic — check-docs-consistency and any other scanner), dispatches the `triage-report` subagent (Sonnet) one report at a time for per-finding dispositions (promote / patch / dup / needs-investigation / dismiss), then the gateway absorbs: promotes batch through /super-bootstrap:log, doc-mechanical patches land per CLAUDE.md § Dispatch, investigations route to /super-bootstrap:triage, report deleted at close-out once every finding holds a terminal verdict. Use when a report lands in `.review/` or the user asks to process review findings. Does NOT fix findings.' tags: [triage, review, report, pipeline, superpowers] --- # Triage Report — Review-Queue Drain The scanner answered *is this hit real by its own rule*; this lane answers *is it worth acting on, and where does it route*. Producer-agnostic — fires on artifact presence in `.review/`, regardless of which scanner wrote the report. The thinking runs in the `triage-report` subagent (`agents/triage-report.md`, `model: sonnet`); this skill is the dispatch shell + absorption protocol. ## Target resolution Argument is an optional report path. Without one, resolve from the queue — the directory IS the queue: | `.review/*.md` glob | Behavior | |---|---| | 0 reports | Report "review queue clean", exit. | | 1 report | Dispatch it. | | N reports | Sequential, oldest-first — one dispatch per report. Later runs dedup against the backlog rows earlier runs just promoted; never merge reports into one dispatch. | ## Execution — per report 1. **Dispatch:** `Agent` tool, `subagent_type: "triage-report"`, prompt = the report path + scan date if known. Nothing else — no gateway priors on which findings matter. 2. **Review the sheet** (gateway): coverage line must hold (findings = verdicts). Dismiss is the lossy verdict — a dismissal whose rationale doesn't beat the scanner's stated reasoning bounces back as `needs-investigation`. 3. **Absorb:** - **promote** → one batched `/super-bootstrap:log` dispatch carrying the agent's draft claim blocks. Rows land raw; the pipeline rolls at normal pickup. - **patch** → doc-mechanical edits only, landed per CLAUDE.md § Dispatch (gateway inline, or dispatched by closure). Anything wider re-verdicts as promote. - **dup** → fold any new fact into the `/log` batch as annotations. - **needs-investigation** → the single question rides `/super-bootstrap:triage` when it names a backlog card; otherwise an investigate-only probe dispatch. Verdicts return to step 2. 4. **Close out** — only after every finding holds a terminal verdict and every patch has landed: delete the report; the deletion + a dispositions summary ride the session's envelope commit (dismissal rationales survive in git log). A session ending mid-triage needs no recovery state: report still present = still un-triaged; re-run is idempotent (dedup absorbs already-promoted rows). ## Rules - **Dispatch, don't disposition.** The verdict judgment runs in the subagent's clean context — fresh-context audit value dies if the gateway pre-judges findings inline. - **One report per dispatch.** Each report gets its own dispatch, verdict sheet, and close-out. - **All writes are gateway lane.** The subagent returns text only. Rows via `/super-bootstrap:log`, patches per § Dispatch, deletion at close-out. - **Out of lane:** fixing findings (→ the pipeline, after a row exists); card root-cause work (→ `/super-bootstrap:triage`).