From rtl-agent-team
Generates module-level Markdown documentation for RTL from SystemVerilog sources and synthesis reports. Produces port tables, parameter tables, instance lists, FSM states, timing notes, and synthesis summaries. Use for new, updated, or pre-release modules.
npx claudepluginhub babyworm/rtl-agent-team --plugin rtl-agent-teamThis skill uses the workspace's default tool permissions.
<Purpose>
Generates 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>
<Why_This_Exists> RTL documentation written manually drifts from implementation. Generating it from the actual source files and synthesis reports ensures accuracy. Structured docs with port tables and functional descriptions accelerate integration and review. </Why_This_Exists>
<Execution_Policy>
skills/rtl-document/templates/module-doc-template.md as scaffold — copy and fill placeholders<Tool_Usage>
Task(subagent_type="rtl-agent-team:rtl-explorer",
prompt="Read rtl/cabac_encoder/cabac_encoder.sv. Extract all ports, parameters, and functional behavior. Write docs/rtl/cabac_encoder.md with: port table (noting i_/o_/io_ prefix convention, {domain}_clk/{domain}_rst_n), parameter table (UPPER_SNAKE_CASE), instance table (u_ prefix), FSM state list, and functional description. Flag any naming convention violations found.")
Task(subagent_type="rtl-agent-team:synthesis-reporter",
prompt="Read syn/synth_report.txt and syn/timing_report.txt. Provide area and timing summary section for docs/rtl/cabac_encoder.md.")
Port table format in generated docs:
| Port Name | Direction | Width | Clock Domain | Description |
|--------------|-----------|-------|--------------|----------------------|
| sys_clk | input | 1 | sys | System clock |
| sys_rst_n | input | 1 | sys | Active-low reset |
| i_data | input | 32 | sys | Input data bus |
| o_valid | output | 1 | sys | Output valid signal |
</Tool_Usage>
rtl-explorer reads cabac_encoder.sv with 18 ports (i_data, i_valid, o_encoded, o_ready, sys_clk, sys_rst_n, etc.); generates docs/rtl/cabac_encoder.md with accurate port table using i_/o_ prefix convention, 3 parameter descriptions (DATA_WIDTH, DEPTH, MODE), FSM state list (ST_IDLE, ST_ENCODE, ST_FLUSH), instance table (u_range_coder, u_context_mem), and synthesis summary from existing synth report. Generating documentation without reading the actual RTL — produces generic placeholder docs that don't match the implementation. Or documenting ports with wrong naming convention (e.g., writing `data_i` in port table when RTL says `i_data`).<Escalation_And_Stop_Conditions>
<Final_Checklist>
i_/o_/io_ prefix notation){domain}_clk/{domain}_rst_n namingUPPER_SNAKE_CASE)u_ prefix