plugins/gateflow/skills/gf-errors/SKILL.md
Error translation layer for hardware tool outputs. Converts cryptic Verilator, Yosys, GHDL, and simulation errors into 3-layer explanations. Used internally by gf orchestrator — not user-invocable directly.
npx skillsauth add codejunkie99/gateflow-plugin gf-errorsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When any tool produces an error, translate it through three layers before presenting to the user. NEVER show raw tool output without translation.
For every error from Verilator, Yosys, GHDL, or simulation:
State what happened. No technical jargon. No tool names.
clk_in doesn't exist in this module."Explain why it happened. Reference specific lines and names.
clk (line 5), but the
always block on line 15 references clk_in. These names must match."Tell the user exactly what to do. Include file, line, and the change.
clk_in to clk on line 15 of counter.sv."| Error Code | Layer 1 Template | Layer 2 Guidance |
|-----------|-----------------|-----------------|
| UNUSED | "Signal {name} is declared but never used." | Check if it should be connected or can be removed. |
| UNDRIVEN | "Signal {name} is never assigned a value." | It's declared but no logic drives it. |
| WIDTH | "Width mismatch: {lhs} is {lw} bits but {rhs} is {rw} bits." | Explicit sizing needed. |
| CASEINCOMPLETE | "Case statement doesn't cover all possible values." | Add a default: branch. |
| LATCH | "Unintended latch inferred for {name}." | A combinational block has paths where {name} isn't assigned. Add a default assignment at the top of the always_comb block. |
| BLKSEQ | "Blocking assignment used in sequential block." | Use <= (non-blocking) in always_ff, not = (blocking). |
| PINMISSING | "Port {name} on instance {inst} is not connected." | Either connect it or explicitly mark as unconnected. |
| Symptom | Layer 1 | Layer 2 |
|---------|---------|---------|
| X-values in output | "Output {sig} has unknown (X) values." | The signal was never driven to a known state. Check reset coverage — ensure all sequential logic is reset. |
| Simulation hangs | "Simulation never reaches $finish." | Likely an infinite loop or missing exit condition in the testbench. Check for blocking waits without timeouts. |
| Assertion failure | "Assertion {name} failed at time {t}." | The property being checked was violated. Review the assertion condition and the signal values at the failure time. |
| Wrong output | "Output {sig} is {actual}, expected {expected}." | Logic error in the design or incorrect test expectations. Trace the signal back to its source. |
| Error Pattern | Layer 1 | Layer 2 |
|--------------|---------|---------|
| Module not found | "Module {name} was not included in synthesis." | All source files must be passed to Yosys. Check your file list. |
| Unsupported construct | "Yosys doesn't support {construct} in synthesis." | This SystemVerilog feature isn't available in Yosys. Rewrite using Verilog-2005 compatible constructs. |
| Combinational loop | "Circular dependency detected in combinational logic." | Signal {sig} feeds back to itself without a register. Add a flip-flop to break the loop. |
When the /gf orchestrator receives a FAIL status from gf-lint or gf-sim,
it MUST:
The fix agent gets the raw error. The user gets the translated version. Both see the same issue, but the user sees it in language they understand.
tools
GateFlow release readiness workflow. Validates plugin manifests, marketplace metadata, docs index coverage, root mirrors, release notes, and component counts before a version tag is created. Use when preparing, checking, or cutting a GateFlow plugin release.
testing
Testbench verification best practices and patterns. This skill should be used when the user needs testbench architecture guidance, verification methodology, or wants to write professional-quality testbenches. Example requests: "testbench best practices", "how to structure TB", "verification patterns"
testing
Primary SystemVerilog/RTL orchestrator for GateFlow. Routes to specialist agents, runs verification, and iterates until working. Use when the user wants to create, test, fix, or implement any RTL design — FIFO, UART, AXI, state machines, or any digital hardware module.
development
Terminal visualization for GateFlow codebase maps. Renders module hierarchies, FSM state diagrams, and module detail cards as interactive ASCII/Unicode art. Example requests: "visualize the codebase", "show hierarchy", "show FSM", "show module detail"