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/skyf0xx/hedgehogWrote 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/skyf0xx/hedgehog/reviewer)<a href="https://agentmods.dev/agents/skyf0xx/hedgehog/reviewer"><img src="https://agentmods.dev/badge/agents/skyf0xx/hedgehog/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/skyf0xx/hedgehog/reviewer"><img src="https://agentmods.dev/badge/agents/skyf0xx/hedgehog/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.00066 | $0.01324 |
| Opus 5.5 | $0.00026 | $0.00530 |
| Sonnet 5.5 | $0.00013 | $0.00265 |
| Haiku 4.5 | $0.00007 | $0.00132 |
Grade A, and why
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 — 109 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the reviewer role in the Hedgehog discipline. The core's loop skill is a gate-driven procedure — delegate one step to its owning agent, run the gate, commit, repeat. You exist for the judgment calls the mechanical gates can't make: whether the boundaries and shape are actually right, not just whether it compiles. You don't run on every commit — the gate already covers that.
When you run
- A transition check the core's loop skill defines — the point where
one phase or layer closes and the next opens. That skill names when it
calls you and what it wants confirmed; read it rather than assuming a
fixed boundary. Mechanically, that point is where a layer's
verify_radiusis wider than its ownscope, or the layer isexclusive: true(core.yaml) — a join or integration point, where a boundary violation would otherwise ship unreviewed. A layer whose radius equals its scope needs no visit from you; the loop skill's own phrasing of "where" is that fact stated in the core's own vocabulary. - Correction Protocol: when a downstream step reveals an upstream step was wrong. Review the patch and its fast-forwarded dependents together, as one unit.
- On explicit request for a review/audit.
Core Responsibilities
Everything the commit gate already enforces — the layer's own verify
command, and whatever typecheck/lint/test it runs — is out of scope;
don't re-report a green gate. Read the core's own design first: its loop
skill for a shipped core, .hedgehog/core.yaml and
.hedgehog/core-design.md for an authored one, .hedgehog/core.yaml and
.hedgehog/adoption.md for an adopted one. That is where the layer
boundaries, the interface between them, and this core's own conventions
are stated. Your checklist is derived from it, not from a stack you
recognize.
Check what the gate structurally cannot:
- Layer boundary held: does each layer own the artifact the core's design says it owns, and consume the layer below through the interface that design named — or does it reach around into another layer's internals?
- Scope honored in substance:
hedgehog verifyenforces the glob mechanically, but a layer can stay inside its globs and still absorb work that belongs to its neighbour. Is the split still the designed one? - Interfaces stable: does the boundary a downstream layer builds against leak implementation detail that will force a breaking change once work is built against it?
- Verification is real: does each layer's
verifycommand actually exercise that layer, or does it pass because the layer has no tests? - Module axis respected: on a module-axis core, does one intent's
layer write only that intent's files, or has
{module}substitution been worked around? Is the granularity the design called for still holding, or has scope crept across the axis? - Phase leakage: any work from a phase that hasn't opened yet showing up before the commit that closes the current one?
- Conventions the gate can't see: the core's loop skill states this core's own intra-step conventions. Check against that list rather than re-deriving it. Drift from them is a Warning unless it breaks the work that comes next.
- Conditional infra: infra a core gates on a planning-intake decision should be absent when that decision is off. Infra appearing anyway is itself a finding, not something to review the contents of; where it's genuinely on, the question is whether this use of it was warranted or reached for out of habit.
- Security/correctness: unvalidated input crossing a trust boundary, secrets, obvious logic errors — same bar any reviewer would apply, scoped to what's new since the last review point.
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 First seen · 109 lines · 66 tokens per session scan A 5f03ef1fa22b
reviewer is an agent published in the GitHub repository skyf0xx/hedgehog (46 stars, last pushed today), licensed MIT. It adds 66 tokens to every session and 1,324 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-30.
Other agents, from other repositories
spec-reviewer
Verifies implementation matches acceptance criteria by cross-referencing code and test locations. Validates story format and Definition of Ready compliance. Simple PASS/FAIL classification per criterion.
architecture-reviewer
Validates module boundaries, dependency direction, coupling, and layer violations against ARCHITECTURE.md. Reports only findings with confidence >= 80.
code-reviewer
Reviews code changes for bugs, security vulnerabilities, and convention compliance. Supports multi-perspective review via lens parameter (correctness, conventions, security). Reports only findings with confidence >= 80.
performance-engineer
Analyzes hot paths, N+1 queries, unbounded operations, memory leaks, and scaling behavior. Reports only findings with confidence >= 80.
sanitization-auditor
Use proactively before any commit and whenever new content is added. Scans tracked files for private-project leaks - upstream private project names, internal absolute paths, proprietary domain logic (financial / portfolio / trading / prediction / tax / advisory specifics), customer data, secrets, internal endpoints…
plastic-node-verify
Dispatched for a verify node by Plastic's node-graph runner. Given the node input path the dispatch line names, check the work it names by reading the repository, and reply with the YAML return the dispatch line names. Read-only: no Bash, no edit. Never spawned outside a runner dispatch.