From rtl-agent-team
Initializes new RTL/FPGA/ASIC design projects with standard directories (rtl/, refc/, bfm/, sim/, etc.), coding conventions, phase guides, and templates for 6-Phase pipeline. Triggers on 'init project' or new workspaces.
npx claudepluginhub babyworm/rtl-agent-team --plugin rtl-agent-teamThis skill uses the workspace's default tool permissions.
<Purpose>
scripts/generate_config.shscripts/inject_claude_md.shscripts/install_project_templates.shtemplates/Makefiletemplates/claude-md-rat-section.mdtemplates/cocotb-makefiletemplates/filelist.ftemplates/guides/docs-guide.mdtemplates/guides/refc-guide.mdtemplates/guides/reviews-guide.mdtemplates/guides/rtl-guide.mdtemplates/guides/sim-guide.mdtemplates/guides/syn-guide.mdtemplates/lib/tool-runner.shtemplates/phase6-pdf-makefiletemplates/rat_config.jsontemplates/rules/rtl-coding-conventions.mdtemplates/rules/rtl-verification-gate.mdtemplates/run_cdc.shtemplates/run_conformal.shGenerates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
<Use_When>
<Do_Not_Use_When>
.claude/rules/rtl-coding-conventions.md)rat-setup)<Why_This_Exists>
The 6-Phase pipeline expects a standard directory layout (rtl/, refc/, bfm/, sim/, lint/, syn/, etc.)
and coding convention rules deployed to .claude/rules/. Without proper project initialization,
agents fail with missing directory errors and coding conventions are not enforced.
This skill ensures the project workspace is ready before design work begins.
</Why_This_Exists>
<Execution_Policy>
/rat-setup for installation
</Execution_Policy>1a. Check project root: Verify current directory is suitable (has .git or is empty).
specs/ # Input specifications and datasheets
refc/ # C reference model (DPI-C compatible)
include/ # Common ref model headers
build/ # Build output (.so for DPI-C)
bfm/ # Bus Functional Models
include/ # Common BFM headers
rtl/ # Synthesizable SystemVerilog source
common/ # Shared utility modules (ICG, synchronizer, CDC primitives)
include/ # Common defines, packages
top/ # Top-level module instantiation
sim/ # Simulation & testbenches
top/ # Tier 4: integration tests
formal/ # SVA formal verification (.sby configs)
lint/ # Lint flow
scripts/ # Lint scripts (run_lint.sh)
reports/ # Per-module lint results
syn/ # Synthesis flow
scripts/ # Synthesis scripts (run_syn.sh)
reports/ # Per-module synthesis results
docs/ # Design documentation
phase-1-research/ # Phase 1 artifacts
phase-2-architecture/ # Phase 2 artifacts
phase-3-uarch/ # Phase 3 artifacts
phase-4-rtl/ # Phase 4 artifacts
phase-5-verify/ # Phase 5 artifacts
decisions/ # Architecture Decision Records (ADR)
reviews/ # Phase gate review reports (Markdown)
phase-1-research/
phase-2-architecture/
phase-3-uarch/
phase-4-rtl/
phase-5-verify/
phase-6-review/ # Phase 6 review deliverables
.rat/
state/ # Plugin state files (auto-managed)
Note: Per-module subdirectories under refc/, bfm/, rtl/, sim/ are created
during Phase 2 (architecture) when module decomposition is decided.2a. Inject project CLAUDE.md (RAT-managed section):
Run the injection script to create or update the RAT-managed section in the project root CLAUDE.md.
User content outside <!-- RAT:START --> / <!-- RAT:END --> tags is never modified.
bash "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/scripts/inject_claude_md.sh" .
Idempotent — safe to re-run on every rat-init-project invocation.
2b. Generate project config (rat_config.json):
Run the config generator to detect available EDA tools and create the project configuration file.
If rat_config.json already exists, only tool availability is refreshed (user-edited fields preserved).
bash "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/scripts/generate_config.sh" . "$(basename $(pwd))"
The config file stores:
tools: 24 EDA tools across 8 categories (simulators, synthesis, lint, formal, equivalence, cdc, debug, coverage). Each tool has detected, path, and env_source fields. Set env_source per-tool for tools needing setup (e.g., "env_source": "source /tools/synopsys/vcs/setup.sh")preferences: preferred tool per category (auto-set to first detected commercial tool, user-overridable)technology: target library path, SRAM lib, NAND2 cell pattern (auto-extracted from liberty if set)coverage: targets (line≥90%, toggle≥80%, FSM≥70%, branch≥80%, functional≥95%), seeds, fail ratewaivers: custom paths for lint/CDC waiver files
Users should edit per-tool env_source, technology.liberty, and waivers after generation.2c. Deploy rules (skip if already deployed globally via rat-setup):
For each rule file, check ~/.claude/rules/ first. If the same file exists globally,
skip the local copy to avoid duplicate injection. Only deploy locally if neither exists.
Diagram rules are injected into ~/.claude/CLAUDE.md by rat-setup via <markdown_diagram_rule> tag.
If the tag is missing (rat-setup not run), write an inline fallback file.
mkdir -p .claude/rules
# RTL rules: skip if global exists (no duplication)
[ ! -f ~/.claude/rules/rtl-coding-conventions.md ] && [ ! -f .claude/rules/rtl-coding-conventions.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/rules/rtl-coding-conventions.md" .claude/rules/
[ ! -f ~/.claude/rules/rtl-verification-gate.md ] && [ ! -f .claude/rules/rtl-verification-gate.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/rules/rtl-verification-gate.md" .claude/rules/
If grep -q '<markdown_diagram_rule>' ~/.claude/CLAUDE.md fails AND .claude/rules/diagram-rules.md
does not exist, use Write tool to create .claude/rules/diagram-rules.md with:
---
paths:
- "docs/**/*.md"
- "reviews/**/*.md"
---
# Diagram Policy
| Diagram Type | Tool | Use For |
|-------------|------|---------|
| **Block diagram** | **D2** | Architecture, module hierarchy, HW block decomposition |
| **Flow / Interaction** | **Mermaid** | Pipeline stages, FSM, data/control flow, sequence diagrams |
| **ASCII flow diagram** | **Prohibited** | Do NOT use ASCII art — use D2 or Mermaid |
2d. Deploy guides (copy CLAUDE.md to each directory if not already present):
# Copy guide files as CLAUDE.md into each artifact directory (non-destructive)
[ ! -f rtl/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/rtl-guide.md" rtl/CLAUDE.md
[ ! -f sim/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/sim-guide.md" sim/CLAUDE.md
[ ! -f docs/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/docs-guide.md" docs/CLAUDE.md
[ ! -f reviews/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/reviews-guide.md" reviews/CLAUDE.md
[ ! -f refc/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/refc-guide.md" refc/CLAUDE.md
[ ! -f syn/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/syn-guide.md" syn/CLAUDE.md
Generate lessons-learned.md (if docs/lessons-learned.md does not exist):
Create docs/lessons-learned.md with initial header:
# Lessons Learned
> Cross-phase knowledge base. Entries are appended after each bug fix (especially Phase 5→4 feedback).
> Agents in Phase 4/5 should read this file to avoid repeating known issues.
>
> Entry format: LL-{NNN} with sections: Symptom, Root Cause, Fix Applied, Prevention, Related (REQ IDs, module, fix commit, ADR, Phase 5 Sub-phase)
---
Generate filelist templates (if rtl/ has no .f files):
skills/rat-init-project/templates/filelist.f to rtl/filelist_top.f as starting point.rtl/filelist_{module}.f) are created during Phase 4 when modules are coded.| Type | Location | Required |
|---|---|---|
| Module-level | rtl/filelist_{module}.f | MUST exist per module |
| Top-level | rtl/filelist_top.f | MUST exist (includes module filelists) |
| TB/test | in sim/ scope | Dynamic (scripts add at runtime) |
4.5. Install run_sim.sh (if scripts/run_sim.sh does not exist):
Copy scripts/run_sim.sh and make executable:
chmod +x scripts/run_sim.sh
This simulator-agnostic script supports iverilog, verilator, vcs, xrun, questa.
4.7. Install EDA scripts (if script folders are empty):
Create lint, synthesis, CDC, and equivalence checking scripts plus the shared tool runner library.
All scripts use lib/tool-runner.sh for transparent Docker fallback when local tools are missing.
lib/tool-runner.sh — run_tool() tries local binary first, falls back to persistent Docker containerlint/scripts/run_lint.sh — verilator/verible/slang + spyglasssyn/scripts/run_syn.sh — yosys + dc_shell (Synopsys) + genus (Cadence)syn/scripts/run_formality.sh (Synopsys) + syn/scripts/run_conformal.sh (Cadence)lint/scripts/run_cdc.sh — structural quick check + spyglass/vc_cdc/questa_cdchooks/rtl-skill-activation.sh runs
skills/rat-init-project/scripts/install_project_templates.sh automatically when rat-init-project starts.4.9. Deploy project Makefile (if project root has no Makefile): Copy the unified build system Makefile that wraps all EDA scripts:
[ ! -f Makefile ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/Makefile" Makefile
Open-source tools by default (make sim, make lint, make syn, make formal).
Commercial EDA via _tool suffix (make sim_xrun, make lint_spyglass, make syn_dc).
Run make help to see all targets and variables.
4.10. Deploy UVM regression runner (if sim/uvm/scripts/ has no run_regression_uvm.sh):
mkdir -p sim/uvm/scripts
[ ! -f sim/uvm/scripts/run_regression_uvm.sh ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rtl-p5s-uvm-verify/scripts/run_regression_uvm.sh" sim/uvm/scripts/run_regression_uvm.sh && chmod +x sim/uvm/scripts/run_regression_uvm.sh
Multi-seed UVM regression with VCS/Xcelium/Questa, coverage merge, failure halt.
Referenced by Makefile uvm_regression target.
skills/rat-init-project/templates/cocotb-makefile to sim/top/Makefile as reference.
Per-module cocotb Makefiles are created in sim/{module}/Makefile during Phase 4-5.5.5. Deploy Phase 6 PDF Makefile (if reviews/phase-6-review/ has no Makefile):
Copy skills/rat-init-project/templates/phase6-pdf-makefile to reviews/phase-6-review/Makefile.
5.7. Generate SV testbench template (inform user):
Reference skills/rtl-p4s-unit-test/templates/sv-testbench-template.sv for Tier 2 unit tests.
Replace {{MODULE_NAME}} and {{DOMAIN}} placeholders when creating per-module TBs.
Generate module template (if rtl/ has no .sv files):
Create rtl/include/template_module.sv demonstrating project naming conventions:
// template_module.sv — Template demonstrating project coding conventions
// Style: lowRISC SV Style Guide + project overrides (i_/o_ prefix, {domain}_clk/rst_n)
module template_module
import template_module_pkg::*;
#(
parameter int DATA_WIDTH = 32
) (
input logic sys_clk, // Clock: {domain}_clk format
input logic sys_rst_n, // Reset: {domain}_rst_n format
input logic [DATA_WIDTH-1:0] i_data, // Input: i_ prefix
input logic i_valid, // Input: i_ prefix
output logic [DATA_WIDTH-1:0] o_result, // Output: o_ prefix
output logic o_ready // Output: o_ prefix
);
// Use logic only (no reg/wire), typedef enum for FSM, u_ instance prefix, gen_ generate prefix
endmodule
Quick EDA tool status (informational only, does NOT install):
Check availability of required tools and report status.
If any required tool is missing, recommend: "Run /rtl-agent-team:rat-setup to install missing tools."
Report project initialization summary:
## RTL Project Initialization Report
- Directory structure: [N] directories created, [M] already existed
- Rules deployed: .claude/rules/ ([2] files + diagram-rules fallback if needed)
- Guides deployed: [6] CLAUDE.md files
- Templates: filelist, Makefile, EDA scripts, module template
- Coding conventions: lowRISK SV Style + project overrides
- Port prefix: i_/o_/io_ (NOT suffix _i/_o)
- Clock: {domain}_clk (e.g., sys_clk)
- Reset: {domain}_rst_n (e.g., sys_rst_n)
- EDA tools: [X/Y] required tools available
- Missing tools: [list] → run /rtl-agent-team:rat-setup to install
- Project ready: Yes/No
<Tool_Usage>
# Directory creation (Bash CLI)
Bash: mkdir -p specs refc/include refc/build bfm/include rtl/common rtl/include rtl/top sim/top formal lint/cdc lint/cdc/reports lint/scripts lint/lint syn/{scripts,constraints,db,vnet,svf,scr,rpt,log,temp,work} docs/phase-{1-research,2-architecture,3-uarch,4-rtl,5-verify,7-exploration} docs/decisions reviews/phase-{1-research,2-architecture,3-uarch,4-rtl,5-verify,6-review,7-exploration} .rat/state .rat/scratch
# Rules deployment (skip if already global, non-destructive)
Bash: mkdir -p .claude/rules
Bash: [ ! -f ~/.claude/rules/rtl-coding-conventions.md ] && [ ! -f .claude/rules/rtl-coding-conventions.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/rules/rtl-coding-conventions.md" .claude/rules/ || true
Bash: [ ! -f ~/.claude/rules/rtl-verification-gate.md ] && [ ! -f .claude/rules/rtl-verification-gate.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/rules/rtl-verification-gate.md" .claude/rules/ || true
# Diagram rules: if <markdown_diagram_rule> tag missing from ~/.claude/CLAUDE.md,
# use Write tool to create .claude/rules/diagram-rules.md with inline content (see Step 2a)
# Guide deployment (non-destructive, copy as CLAUDE.md)
Bash: [ ! -f rtl/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/rtl-guide.md" rtl/CLAUDE.md || true
Bash: [ ! -f sim/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/sim-guide.md" sim/CLAUDE.md || true
Bash: [ ! -f docs/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/docs-guide.md" docs/CLAUDE.md || true
Bash: [ ! -f reviews/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/reviews-guide.md" reviews/CLAUDE.md || true
Bash: [ ! -f refc/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/refc-guide.md" refc/CLAUDE.md || true
Bash: [ ! -f syn/CLAUDE.md ] && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/guides/syn-guide.md" syn/CLAUDE.md || true
# Quick tool status (informational)
Bash: verilator --version 2>&1 || echo "NOT_FOUND"
Bash: python3 -c "import cocotb; print(cocotb.__version__)" 2>&1 || echo "NOT_FOUND"
Bash: verible-verilog-lint --version 2>&1 || echo "NOT_FOUND"
Bash: slang --version 2>&1 || echo "NOT_FOUND"
# Template generation (copy from plugin templates)
Bash: cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/filelist.f" rtl/filelist_top.f
Bash: cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/cocotb-makefile" sim/top/Makefile
Bash: mkdir -p lib && cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/lib/tool-runner.sh" lib/tool-runner.sh
Bash: cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/run_lint.sh" lint/scripts/run_lint.sh
Bash: cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/run_syn.sh" syn/scripts/run_syn.sh
Bash: cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/run_cdc.sh" lint/scripts/run_cdc.sh
Bash: cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/run_formality.sh" syn/scripts/run_formality.sh
Bash: cp "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/run_conformal.sh" syn/scripts/run_conformal.sh
Bash: mkdir -p reviews/phase-6-review && cp -n "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/templates/phase6-pdf-makefile" reviews/phase-6-review/Makefile
Bash: chmod +x lib/tool-runner.sh lint/scripts/run_lint.sh syn/scripts/run_syn.sh lint/scripts/run_cdc.sh syn/scripts/run_formality.sh syn/scripts/run_conformal.sh
Bash: chmod +x scripts/run_sim.sh
# Hook-safe bootstrap (non-destructive, idempotent)
Bash: bash "${CLAUDE_PLUGIN_ROOT}/skills/rat-init-project/scripts/install_project_templates.sh" "$PWD"
Write: rtl/include/template_module.sv — convention reference template (i_/o_ prefix, sys_clk/sys_rst_n)
All EDA tools are executed via Bash CLI directly. No MCP tool servers for EDA. </Tool_Usage>
<Escalation_And_Stop_Conditions>
/rtl-agent-team:rat-setup (do NOT attempt installation here)
</Escalation_And_Stop_Conditions><Final_Checklist>