Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add assafkip/prd-os/plugin install prd-osWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/assafkip/prd-os/prd-triage)<a href="https://agentmods.dev/commands/assafkip/prd-os/prd-triage"><img src="https://agentmods.dev/badge/commands/assafkip/prd-os/prd-triage.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00009 | $0.00554 |
| Opus 5 | $0.00005 | $0.00277 |
| Sonnet 5 | $0.00002 | $0.00111 |
| Haiku 4.5 | $0.00001 | $0.00055 |
Grade A, and why
prd-triage scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Set dispositions on the active PRD's findings. /prd-approve is blocked by the
runner's findings gate until every finding has a non-pending disposition.
Dispositions:
accepted— will be fixed in this PRD. No rationale needed.rejected— will NOT be addressed.--rationaleREQUIRED (why not).deferred— tracked but out of scope for this PRD.--rationaleREQUIRED (where).pending— initial state; can be used to revert a premature disposition.
Do not edit the JSONL file by hand. The writer enforces the rationale rule and
stamps resolved_at atomically with the disposition change.
Steps:
- Resolve the active PRD id:
PRD_ID=$(python3 "${CLAUDE_PLUGIN_ROOT}/scripts/prd_runner.py" status | \
python3 -c "import sys,json; s=json.load(sys.stdin); print(s.get('prd_id') or '')")
If PRD_ID is empty, tell the author no PRD is active and stop.
- Print the cross-PRD advisory. This surfaces prior findings from sibling PRDs
that were already
rejectedordeferredand closely match a pending finding here, so the author triages with the prior rationale in view:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/findings_writer.py" advisory "$PRD_ID"
The advisory is deterministic (token-shingle similarity, no LLM) and printed by the runner, not assembled here. It is informational only: it never blocks, never auto-dispositions, and any xref failure is swallowed so triage proceeds. Empty output means no sibling PRD settled anything similar.
- List pending findings:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/findings_writer.py" list "$PRD_ID" --only-pending
Show them to the author. For each, ask what disposition they want. Do NOT guess the author's intent; pending findings are theirs to resolve.
- Apply each disposition:
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/findings_writer.py" \
set-disposition "$PRD_ID" <finding-id> <accepted|rejected|deferred> \
[--rationale "<text>"]
- When all findings are dispositioned, remind the author to run
/prd-approve.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 60 lines · 0 tokens per session scan A 373a2a2721f4
prd-triage is a command published in the GitHub repository assafkip/prd-os (10 stars, last pushed 2mo ago), licensed MIT. It adds 9 tokens to every session and 554 once invoked, about $0.0000 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
screens
Structures product UX screen design — inventory, flow, states, and reusable briefs for external design tools — without generating pixels or UI code.
assumption-test
Surfaces the riskiest business assumption behind the PRD and designs the cheapest test to falsify it before building.
bug-report
Converts a raw bug report from production into a structured, severity-classified item and routes it to the right next step.
hypothesis-check
Confronts each PRD hypothesis with the real measured number, forces an explicit verdict, and triggers a concrete action.
incident
Coordinates the live response to an active production incident — timeline, status, and resolution — then hands off to /renata:retro for the post-mortem.
metrics
Defines or refines product metrics across 4 layers, each with baseline, formula, source, and a kill criteria tripwire.