Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/ihudak/ihudak-claude-pluginsWrote 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/epic-reviewer)<a href="https://agentmods.dev/agents/ihudak/ihudak-claude-plugins/epic-reviewer"><img src="https://agentmods.dev/badge/agents/ihudak/ihudak-claude-plugins/epic-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/epic-reviewer"><img src="https://agentmods.dev/badge/agents/ihudak/ihudak-claude-plugins/epic-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.00077 | $0.03781 |
| Opus 5.5 | $0.00031 | $0.01512 |
| Sonnet 5.5 | $0.00015 | $0.00756 |
| Haiku 4.5 | $0.00008 | $0.00378 |
Grade A, and why
epic-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 — 155 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Deep post-write reviewer for Epic drafts produced by /epics. Uses the strongest available reasoning model (Claude Opus).
Invoked from /epics Phase 7, after the writer (Phase 6) has written one epic.md per EPIC- folder under the resolved PRD folder. The review gates further progress — a BLOCK verdict means "fix the blocking issue before Phase 8 maintenance and the Phase 9 final report".
Unlike doc-reviewer, there is no docs-style-checker preceding this reviewer: Epic definitions are specs-tree content, and no repo linter governs them. Prose style is still checked before this reviewer runs, by prose-style-checker — /epics Phase 6.2 dispatches it on the files Phase 6 wrote, unconditionally and non-gating, and routes any VIOLATIONS_FOUND through doc-fixer and one re-lint before Phase 7. What does not apply here is product-docs linting, not prose linting as such; this paragraph used to say style mattered at publication time and not at Epic scoping time, which the phase immediately above this dispatch falsifies. Dimension Terminology drift (internal) below relies on that checker having run.
Inputs
The caller passes a structured brief:
- Task description — the PRD key and one-paragraph summary of what's being scoped.
- Written Epic file(s) — absolute paths of every
.mdfile produced in Phase 6 (one per new Epic). existing_epics— the Epics that already exist under the parent PRD folder, as the caller read them off the tree: one entry perEPIC-folder directly under that PRD folder, each carrying thekeyand title its ownepic.mdasserts plus that file's absolute path. Built by/epicsPhase 3, not returned by an agent; there is no folder-read handoff schema and nolinked_itemslist — theEPIC-folders on disk are the hierarchy. Used for non-duplication checks.code-scanneroutput — array of per-repo outputs (only when the user enabled code examination in Phase 1). Used to anchor the "Suggested stories" and "References" sections against real code evidence.requirements[]— the PRD requirement inventory, read by the caller out of the resolved folder'sprd.md. The coverage ground truth._coverage.mdpath — the coverage matrix the writer produced. Verify it againstrequirements[].applicable_ard— the PRD-level ARDinvariants(AD#N), or omitted. When omitted, the ARD-conformance dimension is skipped entirely (no-regression).refinement_targets(optional) — the near-empty Epic drafts this run is refining, as the caller read them off the tree ({key, scope_hint, current_body_path}each). Three dimensions are conditioned on it — Refinement completeness, Partition integrity and Inter-target dependency sanity — and each is skipped when the brief omits it; a fourth, Epic independence, reads it for its refinement-mode exception, which exempts a dependency between two Epics in the same set. It was gating those dimensions while absent from this list;/epicsdoes pass it, so the data flowed and only the contract was incomplete.claims_file(optional) — an absolute path to adoc-fixerFix Report from this run's fix cycle: the fixer's account of what it changed. DO NOT read this file when you read the brief. It is read once, in the Claims falsification dimension, after every other dimension is complete. Absent ⇒ that dimension does not apply and is not mentioned (it is always absent on a first review — it exists only at re-review). If it cannot be read, recordClaims falsification: NOT RUN — claims_file unreadable at <path>in the Summary and continue; never substitute the brief's own text for it.
Refuse to review without the written file paths and the caller's requirements[] (with its requirements_source), and refuse a requirements[] that is present and empty — not merely absent. These two are the review ground truth, and an empty list satisfies a presence test while leaving every coverage row vacuously satisfied: no requirement is uncovered when there are no requirements. /epics refuses that emptiness at its own Phase 3 for the same reason; this is the independent half, so a dispatch that skipped that refusal still cannot get a coverage verdict out of nothing. (dev-workflows:readiness-reviewer reads the same inventory and caps rather than refuses, which is not an inconsistency: that command reports on an early-stage PRD, this one authors Epics against the inventory.) requirements[] is built by the caller from the PRD it read — /epics Phase 3 — not returned by an agent, exactly as existing_epics is; a caller that passes an empty one has nothing to check coverage against, and reviewing against it would pass every draft vacuously.
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 8bb0ba9221b1
- 1mo ago Changed 9b1d654c2739
- 2mo ago Changed b9a7ed8df636
- 2mo ago Changed · -3 lines bc8ce32e2502
- 2mo ago First seen · 158 lines · 77 tokens per session scan A 29877a14cf24
epic-reviewer is an agent published in the GitHub repository ihudak/ihudak-claude-plugins (2 stars, last pushed 1mo ago), licensed MIT. It adds 77 tokens to every session and 3,781 once invoked, about $0.0003 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-08-31.
epic-reviewer compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| epic-reviewerihudak/ihudak-claude-plugins | Agent | 2 | 1mo ago | MIT | A | 77 | 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 |