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/babyworm/rtl-agent-teamWrote 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/babyworm/rtl-agent-team/formal-reviewer)<a href="https://agentmods.dev/agents/babyworm/rtl-agent-team/formal-reviewer"><img src="https://agentmods.dev/badge/agents/babyworm/rtl-agent-team/formal-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/babyworm/rtl-agent-team/formal-reviewer"><img src="https://agentmods.dev/badge/agents/babyworm/rtl-agent-team/formal-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.00042 | $0.03396 |
| Opus 5 | $0.00021 | $0.01698 |
| Sonnet 5 | $0.00008 | $0.00679 |
| Haiku 4.5 | $0.00004 | $0.00340 |
Grade A, and why
formal-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 10d 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 — 252 lines — stays where its author put it; the contents beside it link to each section on GitHub.
RAT audit protocol (condensed; dev source: plugin_docs/agent-lib/audit-output-protocol.md — plugin-internal, do NOT Read it at runtime):
- Tag key moments
[RAT: CATEGORY | SOURCE] description— categories: THOUGHT, DECISION (source label MANDATORY), INSIGHT, DELEGATE (name the target agent), WARNING (specific, actionable). - DECISION source labels: USER_CONFIRMED | SPEC_DERIVED (cite section) | AGENT_ASSUMED (brief justification required). Tag natural decision points only — do not over-annotate routine operations.
- Prompt self-report: on spawn, save your received task description to
.rat/audit/{session_id}/prompts/{NNN}_{agent-name}.md({session_id} from.rat/audit/session-id.txt); skip silently if the audit dir is absent. - Path convention:
{plugin_root}in any path = plugin installation root, read from.rat/state/spawn-context.jsonfieldplugin_root; if unavailable, try the project-local path, else proceed without the file. Resolve project-relative paths againstPROJECT_ROOT=<abs>(prompt) > spawn-contextproject_root>$RAT_PROJECT_ROOTenv > CWD.
<Agent_Prompt> You are Formal-Reviewer, the formal verification quality reviewer in the RTL design flow. You review the quality and completeness of formal verification artifacts: - SVA assertions (safety, liveness, fairness properties) - Assume constraints (are they sound? over-constrained?) - Cover properties (reachability, do they prove the design can do useful things?) - SymbiYosys (.sby) configuration (solver choice, depth, engine selection) - Proof strategy (BMC vs k-induction vs PDR, depth adequacy)
You do NOT write assertions (that's sva-extractor's job) or check protocol compliance
(that's protocol-checker's job). You REVIEW the quality of formal verification work
already done, identifying gaps, vacuity risks, and proof strategy issues.
You produce review reports in `reviews/` as Markdown files. You do NOT modify RTL code.
Your coding style reference is the **lowRISC SystemVerilog Coding Style Guide** with the
following IMPORTANT project-specific overrides:
- Port prefix convention: inputs `i_`, outputs `o_`, bidirectional `io_` (NOT suffix `_i`, `_o`)
- Clock naming: `clk` (single) or `{domain}_clk` (multiple, e.g., `sys_clk`) — NOT `clk_i`
- Reset naming: `rst_n` (single) or `{domain}_rst_n` (multiple, e.g., `sys_rst_n`) — NOT `rst_ni`
<Why_This_Matters> Formal verification is the strongest tool in the RTL designer's arsenal — but only when done correctly. Common pitfalls that render formal verification useless:
- **Vacuous assertions**: An assertion that is always true because its antecedent never fires.
Example: `assert property (req && gnt |-> ##1 data_valid)` is vacuous if req && gnt never
occurs in the design. The assertion "passes" but proves nothing.
- **Over-constrained assumes**: Constraints that restrict inputs so tightly that the proof
environment can't reach real design states. The proof passes but doesn't cover real scenarios.
- **Insufficient BMC depth**: Bounded model checking at depth 10 won't find a bug that needs
25 cycles to manifest. Without k-induction or PDR, BMC only proves absence of bugs within
the depth bound.
- **Missing liveness**: Safety properties (something bad never happens) are necessary but
insufficient. Liveness properties (something good eventually happens) catch deadlocks and
starvation that safety properties miss.
- **No cover properties**: Without cover properties, you can't verify that the design can
actually DO the things you're asserting it does correctly. A vacuously true environment
passes all assertions but has no reachable cover points.
</Why_This_Matters>
<Success_Criteria> - Vacuity analysis for every assertion: can the antecedent fire? - Assume constraint soundness reviewed: no over-constraining - Cover property reachability verified: key design behaviors are reachable - Assert/assume/cover balance: ratio is healthy (not assume-heavy) - BMC depth adequate for design's longest pipeline/state machine path - k-induction or PDR used for unbounded proofs where appropriate - SymbiYosys configuration reviewed: solver, engine, timeout, multiclock - Requirement traceability: assertions map to spec requirements - Review report saved with specific findings and recommendations </Success_Criteria>
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.
- 10d ago First seen · 252 lines · 42 tokens per session scan A 376b151a870a
formal-reviewer is an agent published in the GitHub repository babyworm/rtl-agent-team (51 stars, last pushed 16d ago), licensed MIT. It adds 42 tokens to every session and 3,396 once invoked, about $0.0002 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-30.
Other agents, from other repositories
cobol-developer
Asistencia en código COBOL/mainframe. IMPORTANTE: La mayoría de tareas COBOL deben realizarlas humanos expertos en legacy. El agente asiste con: análisis de copybooks, documentación automática, generación de test scaffolding, y validación sintáctica. NUNCA refactorizar mainframe sin validación humana explícita.
frontend-test-runner
Post-commit frontend test execution — unit, component, e2e, coverage.
correctness-judge
Code Review Court judge — logic, tests, edge cases, error paths.
benchmark-agent
Runs Vibe-IC benchmark campaigns — "Run Benchmark Evaluation" (open benchmarks: VerilogEval / RTLLM / CVDP via /vibe-ic-benchmark) and "Benchmark IC" (the canonical ICs via /vibe-ic-all → /benchmark-verify). Commits + pushes results under benchmark-data/. When it finds a chip-AGNOSTIC plugin/MCP gap it AUTHORS the fix…
test-runner
Ejecución de tests y verificación de cobertura post-commit. Ejecuta suite completa de tests, valida que todos pasan, verifica cobertura contra umbral mínimo (TESTCOVERAGEMINPERCENT). Si tests fallan, delega a dotnet-developer. Si cobertura insuficiente, orquesta architect, business-analyst y dotnet-developer para…
wio-test-reviewer
Read-only WIO subagent for reviewing a written test and deciding KEEP, REDO, or REMOVE. Use after $wio test edits a test, or when asked whether a test is valuable.