Problem
The four-week dogfood gate turns red when any critical or high detection in a week is still untriaged at week close. Dispositioning is the one operator action that closes that gap.
Every other gate operation has a CLI command:
agentmetry dogfood
agentmetry stats --days 7
agentmetry verify --trail
agentmetry doctor
Disposition does not. The only paths today are:
- Dashboard UI
POST /api/v1/audit/detections/disposition with an API key
That gap bit us on 2026-08-23: week 3 had one high (session-tool-burst, correlation 94b81615-42b1-408e-ae07-2f50ccab12b6) that could only be closed via a raw API call. A pilot operator on Win11 with hooks installed but no dashboard habit would hit the same wall.
Proposal
Add a thin CLI client over the existing endpoint:
agentmetry disposition <correlation_id> <rule_id> \
--status resolved|false_positive|risk_accepted \
--note ... \
[--decided-by home-lab]
Valid closing statuses match the API: resolved, false_positive, risk_accepted. Require --note for false_positive and risk_accepted (same rule as disposition.py).
Implementation sketch:
- New subcommand in
agentmetry/cli/__init__.py
- POST to
/api/v1/audit/detections/disposition using AGENTMETRY_URL and optional AGENTMETRY_API_KEY
- Print the returned disposition JSON (or a one-line summary)
- Exit non-zero on HTTP 400/500 with the server detail
No new server logic. The trail write and index update stay in apply_disposition().
Docs to fix when this lands
trail-debug skill currently says disposition is available via CLI; it is not yet.
- README gate checklist should list
agentmetry disposition beside dashboard triage.
Acceptance
- Operator can close a finding from a shell on a machine where the orchestrator is running, without opening the dashboard.
agentmetry dogfood week with a dispositioned high stays green.
Problem
The four-week dogfood gate turns red when any critical or high detection in a week is still untriaged at week close. Dispositioning is the one operator action that closes that gap.
Every other gate operation has a CLI command:
agentmetry dogfoodagentmetry stats --days 7agentmetry verify --trailagentmetry doctorDisposition does not. The only paths today are:
POST /api/v1/audit/detections/dispositionwith an API keyThat gap bit us on 2026-08-23: week 3 had one high (
session-tool-burst, correlation94b81615-42b1-408e-ae07-2f50ccab12b6) that could only be closed via a raw API call. A pilot operator on Win11 with hooks installed but no dashboard habit would hit the same wall.Proposal
Add a thin CLI client over the existing endpoint:
Valid closing statuses match the API:
resolved,false_positive,risk_accepted. Require--noteforfalse_positiveandrisk_accepted(same rule asdisposition.py).Implementation sketch:
agentmetry/cli/__init__.py/api/v1/audit/detections/dispositionusingAGENTMETRY_URLand optionalAGENTMETRY_API_KEYNo new server logic. The trail write and index update stay in
apply_disposition().Docs to fix when this lands
trail-debugskill currently says disposition is available via CLI; it is not yet.agentmetry dispositionbeside dashboard triage.Acceptance
agentmetry dogfoodweek with a dispositioned high stays green.