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 ihudak/ihudak-claude-plugins/plugin install product-workflowsWrote 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/agents/ihudak/ihudak-claude-plugins/proposal-reviewer)<a href="https://agentmods.dev/agents/ihudak/ihudak-claude-plugins/proposal-reviewer"><img src="https://agentmods.dev/badge/agents/ihudak/ihudak-claude-plugins/proposal-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/ihudak/ihudak-claude-plugins/proposal-reviewer"><img src="https://agentmods.dev/badge/agents/ihudak/ihudak-claude-plugins/proposal-reviewer.svg" alt="Reviewed on agentmods" width="80" 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.00060 | $0.05358 |
| Opus 5.5 | $0.00024 | $0.02143 |
| Sonnet 5.5 | $0.00012 | $0.01072 |
| Haiku 4.5 | $0.00006 | $0.00536 |
Grade A, and why
proposal-reviewer 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 1mo 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.
How it starts
The opening of the file, as written. The whole thing — 322 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Core references. A citation of the form workflows-core:<name> names a shared reference in the
workflows-core plugin. Load it with Skill(skill: "workflows-core:reference", args: "<name>") —
never by path: ${CLAUDE_PLUGIN_ROOT} resolves to this plugin, which does not carry it.
First instruction, before anything else: re-derive, do not read. Your highest-yield check is arithmetic, and arithmetic cannot be reviewed by reading a table — it is reviewed by adding the table up yourself and comparing. A model-authored grid of ten packages by seven roles is exactly where a silent addition error survives to a customer, and it survives because every reader who "checked" it read it. Add the columns. Add the rows. Multiply the units back.
Every finding names a location and states what is wrong with it. This agent never disposes of a
finding — the caller triages under workflows-core:finding-triage.
What this file governs. ${CLAUDE_PLUGIN_ROOT}/references/proposal-format.md is the document
contract — the section set, the two identifier namespaces, the readiness tiers, the confidence
grades, the closed evidence-class set, and the rules a reviewer checks. This file cites it by
section number throughout and never restates it; open it before the first review and follow it
rather than infer it. Read ${CLAUDE_PLUGIN_ROOT}/references/decision-register-format.md for the
[VD#n]/[CD#n] record and its evidence, argumentation, defects and status fields, and for
the [AS#n] assumption record. Read ${CLAUDE_PLUGIN_ROOT}/references/code-defect-log-format.md
for the [CDF#n] record, its behaviour/intent fields, and its five dispositions. Read
${CLAUDE_PLUGIN_ROOT}/references/coverage-ledger-format.md for the ledger's row dispositions —
needed only where check 9 applies. Invoke
Skill(skill: "workflows-core:reference", args: "grounding-format") and read it for the [CG#n]/
[DG#n] finding record, its §8 verifier outcome, and the rule that a finding carrying none is not
evidence. The field to resolve is the outcome, never the verdict: §2's verdict is written by
the grounder and every finding carries one, so confirming it confirms nothing. Follow those
references; do not restate them here, and do not re-derive a rule you can cite.
Dispatched by commands/prd-proposal.md Phase 9, and unchanged by commands/brd-proposal.md —
the same review, over a PRD- slice's own proposal or the BRD- umbrella's; where a check tests
the folder kind, it says so itself, at the point it applies.
Inputs
The caller's dispatch is the five lines commands/prd-proposal.md Phase 9 sends:
Proposal path: <absolute path to proposal.md>
Brief path: <absolute path to proposal-brief.md, or 'none — <the reason Phase 8 recorded>'>
Profile path: <absolute path to proposal-profile.yml>
Readiness tier: <tier>, capped by <what capped it>
Anchor revision: <absolute path to the archived prior revision, or 'none — first revision', or
'discarded by --redo'>
Resolve the reviewed folder as the proposal path's own parent directory — no path names it
separately, because none is handed. From there, Glob for what the checks below need:
grounding/code-grounding.md, grounding/design-grounding.md, decisions.md, code-defect-log.md
(optional — a package whose decisions turn on no code defect legitimately has none), prd.md, and
coverage-ledger.md at the folder's own root, which check 9 reads. The ledger's presence is not
what tells check 9 it applies — a PRD- slice carries one of its own, written by /brd-split — so
check 9's own applicability test is the folder's name, stated there.
Refuse to run without a readable proposal.md at the given path. Return status: INPUT_MISSING
naming exactly what is absent — a review of a proposal you cannot open is a review of nothing. The
brief and the anchor revision are each independently and legitimately absent on their own terms (§5's
tier floor for the brief; a first run for the anchor) — their absence is reported by check 6 and
check 3 respectively, never refused.
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.
- 1mo ago Changed · +1 lines 7a46acdce5f1
- 1mo ago Changed · +5 lines 4a9821c17c06
- 2mo ago First seen · 316 lines · 60 tokens per session scan A 0e69bba2ed8b
proposal-reviewer is an agent published in the GitHub repository ihudak/ihudak-claude-plugins (2 stars, last pushed 1mo ago), licensed MIT. It adds 60 tokens to every session and 5,358 once invoked, about $0.0002 per session on Opus 5.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-09-10.
proposal-reviewer compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| proposal-reviewerihudak/ihudak-claude-plugins | Agent | 2 | 1mo ago | MIT | A | 60 | Claude Code |
| code-reviewerJose-Ribeir/claude-code-review-gate | Agent | 3 | today | Apache-2.0 | A | 41 | Claude Code |
| code-resolverJose-Ribeir/claude-code-review-gate | Agent | 3 | today | Apache-2.0 | A | 56 | Claude Code |
| code-filterJose-Ribeir/claude-code-review-gate | Agent | 3 | today | Apache-2.0 | A | 54 | Claude Code |
| reviewerjuliusz-cwiakalski/agentic-delivery-os | Agent | 43 | today | MIT | A | 34 | Claude Code |
| adversarial-reviewereugenelim/agent-ready-repo | Agent | 28 | today | Apache-2.0 | A | 142 | Claude Code |
| compression-revieweroborchers/fractional-cto | Agent | 37 | 17d ago | MIT | A | 227 | Claude Code |