SystemVerilog lint checker with structured output. Runs Verilator lint, categorizes errors/warnings, explains issues, returns parseable result block for orchestration.
View on GitHubFebruary 2, 2026
Select agents to install to:
npx add-skill https://github.com/codejunkie99/Gateflow-Plugin/blob/main/plugins/gateflow/skills/gf-lint/SKILL.md -a claude-code --skill gf-lintInstallation paths:
.claude/skills/gf-lint/# GF Lint Skill Lint SystemVerilog files with structured output for orchestration. ## Instructions ### 1. Identify Files to Lint **If files specified in args:** Use the provided file paths. **If no files specified:** Auto-detect SV files: ```bash ls *.sv rtl/*.sv 2>/dev/null | head -20 ``` ### 2. Run Verilator Lint ```bash verilator --lint-only -Wall <files> ``` ### 3. Parse and Categorize Output Count issues by category: - **ERRORS**: `%Error:` lines - must be fixed - **WARNINGS**: `%Warning-*:` lines - should be reviewed ### 4. Explain Common Warnings For each warning type found, explain: | Warning | Meaning | Fix | |---------|---------|-----| | UNUSED | Signal declared but not used | Remove signal or suppress with `/* verilator lint_off UNUSED */` | | UNDRIVEN | Signal never assigned a value | Assign the signal or connect it | | WIDTH | Bit width mismatch in operation | Add explicit sizing: `[7:0]` | | CASEINCOMPLETE | Case statement missing items | Add `default:` branch | | LATCH | Inferred latch from incomplete if/case | Add default assignment at start of always_comb | | BLKSEQ | Blocking assignment in always_ff | Use `<=` (non-blocking) in sequential blocks | | PINCONNECTEMPTY | Module port left unconnected | Connect or explicitly mark as `.*` | | IMPLICIT | Implicit wire declaration | Declare with `logic` or `wire` | ### 5. Return Structured Result **ALWAYS end your response with this exact block format:** ``` ---GATEFLOW-RESULT--- STATUS: PASS|FAIL|ERROR ERRORS: <count> WARNINGS: <count> FILES: <comma-separated list> DETAILS: <one-line summary> ---END-GATEFLOW-RESULT--- ``` **Status definitions:** - `PASS`: No errors, warnings OK (0-N warnings acceptable) - `FAIL`: One or more errors found - `ERROR`: Could not run lint (missing files, tool error) ### 6. Example Output ``` Running lint on: rtl/fifo.sv, rtl/uart.sv $ verilator --lint-only -Wall rtl/fifo.sv rtl/uart.sv %Warning-UNUSED: rtl/fifo.sv:25: Signal 'debug_flag' is not used %Warning