agentsclimarketplace

Spinal pro

Skill Zeeh-Lin/spinal-pro

An OpenSkills agent skill for SpinalHDL development with correctness-first guidance from official docs and VexRiscv.

Install
npx -y skills add Zeeh-Lin/spinal-pro

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

End-to-end SpinalHDL skill for generating, reviewing, explaining, and validating RTL (Scala HDL). Covers DSL semantics (`:=`, `<>`, `Reg`, `Stream`, `Flow`, `Bundle`, `Vec`, `ClockDomain`, `StateMachine`, `Mem`, `BusSlaveFactory`), pipeline and plugin composition (`spinal.lib.misc.pipeline`, `spinal.lib.misc.plugin`), simulation with `SimConfig`/`doSim`, and architecture patterns drawn from official SpinalHDL docs and VexRiscv. Load for SpinalHDL DSL questions, module implementation, interface design, SoC integration, bug hunting, error-message decoding, and simulation or build validation.

SKILL.md

7.9 KB, as published. Nobody here has run it

Spinal Pro

Target SpinalHDL version: 1.10+ (rules and APIs validated against the master branch of SpinalDoc-RTD).

When To Use

Load this skill when the task involves:

  • writing or modifying SpinalHDL RTL
  • reviewing SpinalHDL for semantic bugs, interface bugs, timing-risky structure, or maintainability issues
  • explaining SpinalHDL DSL behavior (:=, \=, <>, when, switch, ClockDomain, Stream, Flow, Bundle, Vec, StateMachine, Mem)
  • decoding SpinalHDL elaboration errors (WIDTH MISMATCH, LATCH DETECTED, CLOCK CROSSING VIOLATION, …)
  • designing parameterized blocks, buses, peripherals, plugin-oriented components, or CPU/SoC structure
  • validating SpinalHDL work through SimConfig / doSim, focused simulation, or repo-native tests
  • using VexRiscv as a pattern source for larger architecture decisions

Do Not Use

Do not load this skill for tasks that are purely about general Scala, vendor EDA flows, RTL in non-SpinalHDL languages, or unrelated hardware topics — unless SpinalHDL semantics or SpinalHDL code is central to the task.

Workflow

  1. Identify the task type: generate, modify, review, explain, retrieve, or design.
  2. Open the relevant references for the task type (see table below).
  3. Inspect the local repository if the task touches code: target file(s), build entry points, tests, generators, simulation hooks, and nearby conventions. Skip this step for pure explanation/retrieval tasks.
  4. Use evidence in priority order: official SpinalHDL semantics for language rules, project-local conventions for style, VexRiscv-style examples for architecture and engineering patterns.
  5. Produce the smallest evidence-backed answer or change that solves the task.
  6. Validate locally when feasible (elaboration → focused sim → repo regression).
  7. Return an auditable result with source tags, assumptions, and the next verification step.

Reference Selection

Open the most relevant file first. If the task crosses categories, open all that apply.

Task typeOpen firstOpen also
Explain a DSL construct or rulereferences/language-semantics.mdreferences/errors-cheatsheet.md for related errors
Decode an elaboration error messagereferences/errors-cheatsheet.mdreferences/language-semantics.md for the rule citation
Write a new module or peripheralreferences/rtl-recipes.mdreferences/language-semantics.md for tricky rules
Add a register bank or memory-mapped blockreferences/rtl-recipes.md (BusSlaveFactory + Mem)references/architecture-patterns.md (SoC integration)
Build or modify a pipelinereferences/architecture-patterns.md (Pipeline library)references/vexriscv-casebook.md only if studying VexRiscv
Add or restructure a plugin / servicereferences/architecture-patterns.md (Plugin composition)references/vexriscv-casebook.md for stage interactions
Code review, bug triagereferences/review-checklist.mdreferences/errors-cheatsheet.md, references/language-semantics.md
Write or extend a testbenchreferences/simulation-validation.mdreferences/rtl-recipes.md for the DUT pattern
Study mature CPU/SoC patternsreferences/vexriscv-casebook.mdreferences/architecture-patterns.md

If a referenced local corpus (SpinalDoc-RTD/, VexRiscv/) is not present in the environment, fall back to the URL listed next to each anchor (https://spinalhdl.github.io/SpinalDoc-RTD/master/... for docs, https://github.com/SpinalHDL/... for VexRiscv). If both the local path and the URL are unreachable, say so in the response — do not paraphrase from memory.

High-Risk Guardrails

Treat the following as high-risk and require explicit evidence plus tighter validation:

  • clock and reset strategy, including clock-domain boundaries
  • Stream / Flow / bus handshake correctness
  • width inference, truncation, sign extension, literal sizing, resize behavior
  • combinational vs sequential boundaries, latch risk, combinational loops
  • parameter-driven structural changes
  • plugin interactions, stage coupling, hidden side effects
  • major CPU or SoC refactors that weaken validation coverage

Detection triggers — when any of these appear in the diff or question, escalate to high-risk mode:

  • .resized, .resize(...) across module boundaries
  • .asUInt / .asSInt / assignFromBits(...)
  • allowOverride, allowUnsetRegToAvoidLatch, comb-loop suppression
  • setAsReg(), randBoot()
  • new ClockDomain(...) or ClockingArea(...)
  • BufferCC, PulseCCByToggle, StreamCCByToggle, FlowCCUnsafeByToggle
  • Mem(...) with readUnderWrite = writeFirst
  • \= on anything that might be a register

For high-risk tasks:

  • prefer smaller patches over broad rewrites
  • state assumptions instead of guessing
  • preserve existing interfaces unless evidence supports a change
  • avoid cargo-culting from VexRiscv without matching stage timing, reset behavior, and service dependencies
  • strengthen validation before declaring the result safe

Output Contract

Annotate every load-bearing claim with one of these source tags so a reviewer can audit at a glance:

  • [Doc] — pinned by an official SpinalDoc rule (cite the anchor or URL)
  • [Repo] — derived from the current repository's code or conventions
  • [VexRiscv-pattern] — derived from a mature SpinalHDL codebase
  • [Inference] — your interpretation; flag remaining uncertainty

Depth heuristic — pick one of three modes based on what the user demonstrates:

  • Direct: experienced user, terse question → short answer with code and one citation; skip background.
  • Guided: mixed or unclear → answer + a one-line "why this matters"
    • one citation.
  • Teaching: clear beginner cue (asks what := is, what Bundle means, etc.) → answer + minimal example + the rule citation, but stop short of unrelated background.

End any non-trivial output with:

  • a one-line statement of which source category dominated the answer
  • unresolved risks or assumptions, if any
  • the next verification step (a sim command, a file to inspect, a reviewer to flag) when certainty is incomplete

Recipes Directory

references/
├── language-semantics.md     # DSL rules, operators, width, registers, when/switch, Bundle/Vec
├── rtl-recipes.md            # Module skeletons, Stream toolkit, Mem, BusSlaveFactory, FSM, CDC, SpinalConfig
├── architecture-patterns.md  # Decomposition, Pipeline library, plugin composition, SoC patterns
├── review-checklist.md       # Review order, detection signals, output pattern
├── errors-cheatsheet.md      # One-screen error → cause → fix lookups
├── simulation-validation.md  # SpinalSim API, testbench templates, validation ladder
└── vexriscv-casebook.md      # VexRiscv patterns with preconditions and anti-patterns

Evidence Sources

SourceURL
SpinalHDL documentation (master)https://spinalhdl.github.io/SpinalDoc-RTD/master/index.html
SpinalHDL sourcehttps://github.com/SpinalHDL/SpinalHDL
SpinalHDL documentation sourcehttps://github.com/SpinalHDL/SpinalDoc-RTD
VexRiscvhttps://github.com/SpinalHDL/VexRiscv
NaxRiscv (newer plugin/fiber style)https://github.com/SpinalHDL/NaxRiscv

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.