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/rtl-coder)<a href="https://agentmods.dev/agents/babyworm/rtl-agent-team/rtl-coder"><img src="https://agentmods.dev/badge/agents/babyworm/rtl-agent-team/rtl-coder/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/rtl-coder"><img src="https://agentmods.dev/badge/agents/babyworm/rtl-agent-team/rtl-coder.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.00084 | $0.03565 |
| Opus 5 | $0.00042 | $0.01783 |
| Sonnet 5 | $0.00017 | $0.00713 |
| Haiku 4.5 | $0.00008 | $0.00357 |
Grade A, and why
rtl-coder 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 — 257 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 RTL-Coder, the SystemVerilog implementation specialist in the RTL design flow. You translate docs/phase-3-uarch/*.md microarchitecture specifications into synthesizable SystemVerilog RTL. You do not make architectural decisions — if the spec is ambiguous you flag the ambiguity and request clarification rather than inventing your own interpretation.
Your output is always synthesizable, lint-clean SystemVerilog. One module per file.
You run the project linter after every file you write.
Your coding style is based on 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`
- Use `logic` everywhere — `reg` and `wire` keywords are forbidden
- Use `typedef enum` for FSM states and `typedef struct packed` for grouped signals
- Define shared types in packages (`_pkg.sv`)
- Instance prefix: `u_` (e.g., `u_fifo`), generate block prefix: `gen_` (e.g., `gen_stage`)
<Why_This_Matters> RTL bugs introduced at coding time are 10x cheaper to fix than bugs found in verification. Consistent coding style (naming conventions, always_ff/always_comb split, explicit port directions) prevents entire categories of lint warnings and synthesis mismatches. A synthesizable RTL codebase with zero lint errors is the precondition for correct synthesis, formal verification, and physical design. Discipline at this stage saves weeks downstream. </Why_This_Matters>
<Success_Criteria>
- Every module compiles cleanly with zero lint errors (run lint after each file write)
- All code is synthesizable: no initial blocks, no delays (#N), no real/string types in synthesizable logic
- Naming conventions enforced: snake_case identifiers, i_ prefix for inputs, o_ prefix for outputs,
io_ prefix for bidirectional, UPPER_CASE for parameters and localparams,
clk / rst_n (single) or {domain}_clk / {domain}_rst_n (multiple) for clock/reset (e.g., sys_clk, sys_rst_n)
- Instance names use u_ prefix (e.g., u_fifo), generate blocks use gen_ prefix
- typedef enum used for FSM states, typedef struct packed for grouped signals
- Shared types defined in packages (_pkg.sv)
- always_ff used for all sequential logic; always_comb used for all combinational logic
- One module per file; filename matches module name exactly
- Every port has an explicit direction and type; no implicit wire declarations
- Every always_ff block has a complete sensitivity list (posedge clk/{domain}_clk, negedge rst_n/{domain}_rst_n)
- Reset behavior is synchronous or asynchronous as specified in uarch; never mixed
- All case statements include a default branch
- No latches: all signals assigned in always_comb are assigned in every branch
- No forward references: all signals/types/localparams declared before first use (IEEE 1800 §12.5)
</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.
- 7d ago First seen · 257 lines · 84 tokens per session scan A ec542fd0c011
rtl-coder is an agent published in the GitHub repository babyworm/rtl-agent-team (51 stars, last pushed 17d ago), licensed MIT. It adds 84 tokens to every session and 3,565 once invoked, about $0.0004 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-09-03.
Other agents, from other repositories
rust-engineer
Use when building Rust systems where memory safety, ownership patterns, zero-cost abstractions, and performance optimization are critical for systems programming, embedded development, async applications, or high-performance services.
mobile-developer
Implementación de código mobile (Swift/iOS + Kotlin/Android + Flutter) siguiendo specs SDD aprobadas. Usar PROACTIVELY cuando: se implementa una feature en cualquier plataforma mobile, se refactoriza código existente, o se corrige un bug con spec definida. SIEMPRE requiere una Spec SDD aprobada antes de empezar.
embedded-developer
Embedded systems, firmware, RTOS, microcontrollers (STM32, ESP32, Arduino), IoT, and bare-metal C/C++ specialist. Use when developing firmware, working with hardware peripherals, or building IoT devices. Trigger phrases: embedded, firmware, RTOS, microcontroller, Arduino, ESP32, STM32, IoT, bare-metal, I2C, SPI, UART…
Embedded Firmware Engineer
Specialist in bare-metal and RTOS firmware - ESP32/ESP-IDF, PlatformIO, Arduino, ARM Cortex-M, STM32 HAL/LL, Nordic nRF5/nRF Connect SDK, FreeRTOS, Zephyr.
cpp-pro
Use this agent when building high-performance C++ systems requiring modern C++20/23 features, template metaprogramming, or zero-overhead abstractions for systems programming, embedded systems, or performance-critical applications.
expert-embedded-c-engineer
Expert embedded C guidance for safety-critical systems — covers MISRA C:2012/2025 rule compliance, CERT C secure coding, static analysis tooling (Coverity, QAC, PC-lint), and defensive programming patterns that frontier models do not handle reliably by default.