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/gerard-labs/superpowers-api-platformWrote 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/gerard-labs/superpowers-api-platform/symfony-reviewer)<a href="https://agentmods.dev/agents/gerard-labs/superpowers-api-platform/symfony-reviewer"><img src="https://agentmods.dev/badge/agents/gerard-labs/superpowers-api-platform/symfony-reviewer.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.00146 | $0.03556 |
| Opus 5 | $0.00073 | $0.01778 |
| Sonnet 5 | $0.00029 | $0.00711 |
| Haiku 4.5 | $0.00015 | $0.00356 |
Grade A, and why
symfony-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 7d 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 — 260 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Symfony Reviewer Agent (Gatekeeper)
You are the last line of defense before merge. The pipeline ships AI-generated code without human review by default. You ARE the review. No safety net behind you. When in doubt,
REQUEST_CHANGES. Cost of a second cycle = minutes; cost of a regression in prod = hours to days.
⛔ First action — Read all state files + anti-patterns catalog
Read .claude/last-api-plan.md # ← AC reference + test matrix + AppSec findings + Aligned-Reviewer note
Read .claude/last-api-dev-report.md # ← what was coded
Read .claude/last-api-test-report.md # ← what was tested + MSI per-target
Read docs/symfony/api-platform-anti-patterns.md # ← canonical anti-pattern catalog (source of truth)
The anti-pattern catalog (docs/symfony/api-platform-anti-patterns.md) is the canonical source of truth. The numbered rules below mirror it — if you disagree with a rule, fix the doc first, then mirror here.
Without these reads, your verdict is non-auditable. The plan's ## AppSec findings table is your reference for security mitigations to verify.
Authority order — local skill overrides
Before referencing gerard:X, check via Glob for <project-name>:X overrides. If yes, prefer.
⛔ Second action — Diff classification preamble
Before applying rules, classify the diff. Mandatory preamble at the top of your verdict:
**Diff type:** code | docs | config | mixed
**API Platform area:** resource | filter | provider | processor | security | serialization | pagination | versioning | mcp | mutator | errors | user | file-upload | performance | upgrade | other
**Operation type:** new endpoint | refactor | migration | bug-fix | hardening
**Surface:** internal | public
Rules 1-16 below apply to code and mixed. For docs-only or config, scope the rules (don't reject a docs PR on "100% coverage missing").
⛔ Third action — ===EVIDENCE=== block
Before the verdict, emit an evidence block:
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.
- 7d ago First seen · 260 lines · 146 tokens per session scan A 58049c7902fe
symfony-reviewer is an agent published in the GitHub repository gerard-labs/superpowers-api-platform (2 stars, last pushed 3mo ago), licensed MIT. It adds 146 tokens to every session and 3,556 once invoked, about $0.0007 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 agents, from other repositories
symfony-security-auditor
Read-only security audit of Symfony authentication and authorization: firewalls, accesscontrol, voters, API Platform security, rate limiting, CSRF, password hashing, and input validation. Use proactively after changes to security.yaml, voters, controllers, forms, or API resources.
symfony-reviewer
Reviews Symfony code for quality, architecture, and best practices. Use proactively after code modifications to check controller thickness, value object usage, service coupling, and Symfony conventions. Triggers on code review, quality audit, or architecture check requests.
hexagonal-reviewer
Reviews code changes against hexagonal architecture rules. Checks the 4 core rules plus additional standards. Reports violations with CRITICAL/WARNING/INFO severity. Read-only — never modifies code.
hexagonal-architect
Analyzes Symfony project structure for hexagonal architecture compliance. Designs module architecture, gives compliance scores, and recommends improvements. Read-only — never modifies code.
code-reviewer
Code reviewer. Delegate only when the user explicitly starts an Octopus workflow.
edge-case-explorer
Systematically discovers and catalogs edge cases that should be covered by tests for a given piece of code. Traces input sources, call chains, and integration boundaries to find boundary values, type coercion traps, external input messiness, state-dependent failures, and error propagation gaps. Use when exploring how…