triage-findingslisted
Install: claude install-skill lklimek/claudius
# Interactive Finding Triage
Start an interactive triage session: the user classifies each finding in a browser UI, and decisions are written back to the report JSON.
**Argument**: `$ARGUMENTS` — path to the `report.json` produced by `grumpy-review` or `check-pr-comments`.
## Workflow
1. Validate the report JSON against the schema:
```bash
python3 ${CLAUDE_SKILL_DIR}/../../scripts/validate_report.py "$ARGUMENTS"
```
Requires `python3-jsonschema`. Invalid → fix and re-validate; never start the server with invalid data. Non-blocking `[consistency]` warnings on stderr (label/band drift, `relevance` pinned at `1.0`) don't fail validation but must be surfaced to the user — labels derive from the floats (`claudius:severity`), so a warning means the floats need rerating.
2. Start the triage server (default port 8741):
```bash
python3 ${CLAUDE_SKILL_DIR}/../../scripts/triage_server.py "$ARGUMENTS" [--port PORT]
```
The server auto-opens a browser; if that fails, it prints the URL for the user.
3. Wait for the user to complete triage in the browser and submit. The server writes the `triage` field back into the report JSON and exits.
### Killing a stuck server
The server normally shuts down when the user submits with `complete=true`. If stuck, kill it by port — **never `pkill -f`** (risks killing servers from other sessions):
```bash
fuser -k 8741/tcp # kills whatever is bound to port 8741
```
Replace `8741` with the actual port if `--port` was used