rtl-lint-check
Lint RTL with Verilator, Verible, and slang; report-only quick check for 'run lint', pre-commit, or phase-gate verification (no fixing).
Skill by babyworm
Chalk Labs
Need help deploying rtl-lint-check?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/babyworm-rtl-lint-check
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Shell scripts
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/rtl-lint-check
What's inside
- Skill name
rtl-lint-check- Description
- Lint RTL with Verilator, Verible, and slang; report-only quick check for 'run lint', pre-commit, or phase-gate verification (no fixing).
- License
- MIT
- Instructions
- 140 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (6)
- SKILL.md
- lint-output-example.txt · examples/
- verilator-warnings.md · references/
- check_conventions.sh · scripts/
- lint-report.md · templates/
- verilator-waiver.vlt · templates/
SKILL.md (first lines)
<Purpose>
Run three complementary lint tools on target RTL files via Bash CLI:
- **Verilator** (synthesizability + semantic): catches LATCH, BLKANDNBLK, WIDTH, MULTIDRIVEN
- **Verible** (style/syntax): catches formatting, naming, structure issues
- **slang** (semantic/IEEE 1800 compliance): catches type errors, port mismatches, `always_ff` multi-driver violations
RTL files (`rtl/`) are linted with slang `-Weverything` for maximum strictness — this catches
IEEE 1800 §9.2.2.4 violations (e.g., `always_ff` + `initial` on same signal) that only VCS
enforces at compile time. TB files (`sim/`) use `--allow-dup-initial-drivers` for flexibility.
Report all violations with file, line, rule, and severity.
See `references/verilator-warnings.md` for detailed Verilator warning categories and waiver format.
</Purpose>
<Use_When>
- Verifying lint status of any RTL file before commit or phase gate
- Quick sanity check during development
- Generating lint report for review
</Use_When>
<Do_Not_Use_When>
- Lint fixing is also needed (use rtl-p4-implement or rtl-p4s-refactor which include fix cycles)
- Full verification suite needed (use rtl-p5s-func-verify or rtl-p4s-unit-test)
</Do_Not_Use_When>
<Why_This_Exists>
Three complementary lint tools catch different issue classes:
- **Verilator** is the most widely-used open-source linter; it catches synthesizability issues (latches, blocking/non-blocking mix, width mismatches) that style linters miss entirely.
- **Verible** catches style and formatting issues; **slang** catches IEEE 1800 semantic issues.
Running all three gives comprehensive coverage: synthesizability + style + semantics.
</Why_This_Exists>
<Coding_Convention_Requirements>
Lint checks MUST enforce the project coding conventions (CLAUDE.md):
- Port prefix: `i_` (input), `o_` (output), `io_` (bidirectional) — NOT suffix `_i`, `_o`
- Clock: `clk` (single domain) or `{domain}_clk` (multiple domains, e.g., `sys_clk`) — NOT `clk_i`
- Reset: `rst_n` (single domain) or `{domain}_rst_n` (multiple domains, e.g., `sys_rst_n`) — NOT `rst_ni`
- `logic` only — `reg`/`wire` usage flagged as violation
- Declaration order (IEEE 1800 §12.5): all `logic`/`typedef`/`localparam` must appear before `assign`/`always` blocks — forward references flagged as violation
- Instance prefix: `u_` — missing prefix flagged
- Generate prefix: `gen_` — missing prefix flagged
Note: Verible and slang may not catch all convention violations natively.
lint-checker MUST perform a supplementary grep-based check for naming conventions.
</Coding_Convention_Requirements>
<Execution_Policy>
- lint-checker runs all three tools in parallel on the target file(s) via Bash CLI
- Prefer replayable wrapper: `lint/scripts/run_lint.sh` (creates `lint/lint/replay/run_lint_*_latest.sh`)
- Additionally checks naming conventions not caught by standard tools
- Results merged and de-duplicated
- Zero-error gate: skill reports PASS or FAIL with full violation list
</Execution_Policy>
<Steps>
1. Identify target files (single file, directory, or glob)
2. Run **Verilator** via Bash CLI (synthesizability lint):
```bash
verilator --lint-only -Wall -Wpedantic -sv {files}
```
- Critical warnings (MUST fix): BLKANDNBLK, LATCH, CASEINCOMPLETE, MULTIDRIVEN
- Major warnings: WIDTH, UNDRIVEN, SYNCASYNCNET, UNSIGNED, CMPCONST
- See `references/verilator-warnings.md` for full category list
3. Run **Verible** via Bash CLI (style lint):
```bash
verible-verilog-lint --rules_config .verible_lint.cfg {files}
```
4. Run **slang** via Bash CLI (semantic lint):
```bash
# RTL (maximum strictness — catches VCS ICPD errors):
slang -Weverything {rtl_files}
# TB (relaxed — allows initial + always_ff on same signal):
slang --allow-dup-initial-drivers {tb_files}
```
The `run_lint.sh` wrapper auto-detects RTL vs TB based on file paths.
4.5. If commercial lint signoff is requested, run SpyGlass lint:
```bash
lint/scripts/run_lint.sh --tool spyglass --top {top} -f rtl/filelist_top.f --outdir lint/lint
```
5. Run supplementary convention checks via Bash CLI:
- Use `{plugin_root}/skills/rtl-lint-check/scripts/check_conventions.sh {files}` (`{plugin_root}` = plugin root resolved from `.rat/state/spawn-context.json`) for automated convention checking
- Or manually grep for: `reg`/`wire` declarations, port suffixes `_i`/`_o`, `clk_i`/`rst_ni`, missing `u_`/`gen_` prefixes, declarations after logic blocks (forward reference risk)
6. Merge all results; report violations grouped by file then by severity
7. Return PASS (zero violations) or FAIL (violation count + list)
- Use `templates/lint-report.md` as the report format template
- If waiver file `.verilator.vlt` exists, apply waivers before final verdict (see `templates/verilator-waiver.vlt` for waiver format)
</Steps>
<Tool_Usage>
```
Task(subagent_type="rtl-agent-team:lint-checker",
prompt="Run Verilator, Verible, and slang lint on rtl/ via Bash CLI. Verilator: --lint-only -Wall -Wpedantic -sv. Verible: --rules_config .verible_lint.cfg. slang: -Weverything for RTL and --allow-dup-initial-drivers for TB. Also check naming conventions: i_/o_ port prefixes, {domain}_clk/{domain}_rst_n, logic not reg/wire, u_ instance prefix. Report all violations grouped by file and severity (Critical/Major/Minor). Return PASS or FAIL summary.")
```
</Tool_Usage>
<Examples>
<Good>
lint-checker runs all three tools via Bash CLI, finds 3 Verible style violations, 1 slang unused-variable warning,
and 2 convention violations (port `data_i` should be `i_data`, `clk` should be `sys_clk` in multi-domain context);
returns FAIL with exact line numbers and rule names.
</Good>
<Bad>
Running only one lint tool and claiming "lint clean" — misses semantic issues caught only by slang.
Not checking naming conventions — allows `clk_i`, `data_o` to pass lint despite project rules.
</Bad>
</Examples>
<Escalation_And_Stop_Conditions>
- Verible not installed → halt and run `/rtl-agent-team:rat-setup` (official binary releases: https://github.com/chipsalliance/verible/releases)
- slang not installed → halt and run `/rtl-agent-team:rat-setup` (official binary/source instructions: https://sv-lang.com/user-manual.html#getting-the-binary)
- Lint rules config file missing → use default rules, note this in report
- Convention violations found → report alongside tool violations, same severity
</Escalation_And_Stop_Conditions>
<Final_Checklist>
- [ ] All three lint tools ran: Verilator, Verible, and slang via Bash CLI
- [ ] Verilator critical warnings (LATCH, BLKANDNBLK) treated as hard errors
- [ ] Naming convention checks ran (port prefix, clock, reset, logic, instance prefix)
- [ ] Results merged, de-duplicated, and reported by severityFrom babyworm/rtl-agent-team, MIT.
More from babyworm/rtl-agent-team
- 0.628score
ref-model
babyworm
Builds Phase 2 golden C reference model with bitexact conformance and bandwidth estimation.
SkillBFreshness: B★ 61Claude Code - 0.628score
rtl-conformance-test
babyworm
Final codec standards compliance gate: bitexact RTL bitstream check against JM/HM reference.
SkillBFreshness: B★ 61Claude Code - 0.628score
rtl-bug-repro
babyworm
Reproduce an RTL bug with a minimal TB and isolate root cause via waveform diff — 'reproduce this bug', 'minimal repro TB', regression failure isolation.
SkillBFreshness: B★ 61Claude Code - 0.628score
rtl-document
babyworm
Generate Markdown docs for an RTL module (port/param/FSM tables, synth summary) — 'document this module', 'port table', 'refresh RTL docs'.
SkillBFreshness: B★ 61Claude Code - 0.628score
rtl-ipxact-gen
babyworm
Generate IEEE 1685-2014 IP-XACT XML descriptor from RTL source — 'generate IP-XACT', IP handoff, or SoC/EDA integration needing component XML.
SkillBFreshness: B★ 61Claude Code - 0.628score
codec-conformance-eval
babyworm
Evaluate C ref-model decoder against JVET/JCTVC conformance bitstreams (bitexact/MD5) — 'decoder conformance'; C-level, not RTL (rtl-conformance-test).
SkillBFreshness: B★ 61Claude Code +9 - 0.628score
codec-rd-eval
babyworm
Encoder RD evaluation of C ref model: BD-PSNR/BD-rate (VCEG-M33) across sequences/QPs — 'RD eval', 'BD-rate', codec algorithm quality comparison.
SkillBFreshness: B★ 61Claude Code +9 - 0.624score
rat-init-project
babyworm
Initialize RTL project workspace: directory structure, coding rules, phase guides.
SkillBFreshness: B★ 61Claude Code +9 - 0.623score
domain-consult
babyworm
Route domain questions to the best expert agent: codec standards, video/signal processing, fixed-point math, HW protocols.
SkillBFreshness: B★ 61Claude Code +9 - 0.623score
rtl-p4-block-parallel
babyworm
Phase 4 RTL in isolated git worktrees per codec block, team-coordinated with upstream-first merge.
SkillBFreshness: B★ 61Claude Code - 0.620score
cdc-tool-profiles
babyworm
Internal reference: cdc tool profiles (agent-loaded; do not invoke).
SkillBFreshness: B★ 61Claude Code +9 - 0.620score
rat-auto-design-policy
babyworm
Internal reference: rat auto design policy (agent-loaded; do not invoke).
SkillBFreshness: B★ 61Claude Code +9
Signals
- Stars
- 61
- Forks
- 16
- Open issues
- 0
- Last commit (this folder)
- Aug 16, 2026 (2 months ago)
- Last release
- Jul 17, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/babyworm/rtl-agent-team
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from babyworm
- 0.628score
rtl-bug-repro
babyworm
Reproduce an RTL bug with a minimal TB and isolate root cause via waveform diff — 'reproduce this bug', 'minimal repro TB', regression failure isolation.
SkillBFreshness: B★ 61Claude Code - 0.628score
codec-rd-eval
babyworm
Encoder RD evaluation of C ref model: BD-PSNR/BD-rate (VCEG-M33) across sequences/QPs — 'RD eval', 'BD-rate', codec algorithm quality comparison.
SkillBFreshness: B★ 61Claude Code +9 - 0.628score
rtl-conformance-test
babyworm
Final codec standards compliance gate: bitexact RTL bitstream check against JM/HM reference.
SkillBFreshness: B★ 61Claude Code - 0.628score
ref-model
babyworm
Builds Phase 2 golden C reference model with bitexact conformance and bandwidth estimation.
SkillBFreshness: B★ 61Claude Code - 0.628score
codec-conformance-eval
babyworm
Evaluate C ref-model decoder against JVET/JCTVC conformance bitstreams (bitexact/MD5) — 'decoder conformance'; C-level, not RTL (rtl-conformance-test).
SkillBFreshness: B★ 61Claude Code +9 - 0.628score
rtl-document
babyworm
Generate Markdown docs for an RTL module (port/param/FSM tables, synth summary) — 'document this module', 'port table', 'refresh RTL docs'.
SkillBFreshness: B★ 61Claude Code
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get rtl-lint-check running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
rtl-lint-check skill. Agent Mart. https://agentmart.dev/skills/babyworm-rtl-lint-check (last updated 2026-10-24)