Skip to main content

agent-skills-systemrdl

A hierarchical SystemRDL 2.0 authoring reference for coding agents, packaged as an Agent Plugin.

The plugin contains one Agent Skill, systemrdl-ref, that lets an agent write legal Accellera SystemRDL 2.0 — syntactically valid, semantically consistent, and free of the property combinations the standard forbids.

Why

The SystemRDL 2.0 standard is ~130 pages. An agent asked to write a register map otherwise has to guess, or read the whole thing. Both produce descriptions that look right and are subtly illegal: mutually exclusive properties set together, woclr on a read-only field, a writable field straddling an access-width boundary.

How it is organized

Content is a disclosure ladder — a loading order, not a filing scheme:

L Artifact Loaded when Budget
L0 name + description always resident ~100 tok
L1 SKILL.md the skill activates ≤ 1500 tok
L2 references/<area>/INDEX.md — 5 hubs the agent picks an area ≤ 1400 tok
L3 30 leaf pages the agent picks a construct ≤ 2500 tok
L4 references/_deep/ — 3 pages exhaustive lookup only unbounded

A trivial task stops at a hub for ~2.2k tokens; a typical one reaches two leaves for ~5.7k; only exhaustive lookups (full BNF, full UVM/IP-XACT access-mode mapping) go further.

src/agent_skills_systemrdl/share/skills/systemrdl-ref/   (== skills/systemrdl-ref)
├── SKILL.md                 # entry point: authoring loop, 5 rules, hub map, express lane
├── references/
│   ├── components/          # field, reg, regfile, mem, addrmap, signal, enum, struct, constraint
│   ├── properties/          # sw/hw access, counters, interrupts, reset, addressing, HDL path, UDPs
│   ├── language/            # lexical, types, expressions, scoping, parameters, preprocessor, BNF
│   ├── patterns/            # recipes, arrays, reuse, antipatterns
│   ├── validation/          # checklist, compiler errors, tooling
│   └── _deep/               # full BNF, full access modes, full property table
├── data/properties.yaml     # all 90 properties, schema-validated
├── scripts/                 # validate_rdl.py, query_property.py, explain_error.py
└── assets/templates/        # 8 compilable starting points

Every normative claim cites its clause or table — [§9.6.1 k], [Table 19] — so any sentence can be audited against the standard. Uncited statements are marked as advice.

Install

pip install agent-skills-systemrdl

That registers an agent.skills entry point, so tools that walk that group — including IVPM's agents handler — find the skill without being told where it is. In an IVPM project, one line is enough:

# ivpm.yaml
    - name: agent-skills-systemrdl
      src: pypi

ivpm update then assembles .agents/skills/, .claude/skills/, and .cursor/skills/.

Without IVPM, symlink the installed skill into your client's skills directory:

python -c "from agent_skills_systemrdl.skills import get_skill_dirs; print(get_skill_dirs()[0])"

The package has no runtime dependencies. To let the bundled scripts do real work rather than report that they cannot, install agent-skills-systemrdl[validate]; otherwise validate_rdl.py exits 2 with a "NOT VALIDATED" banner and the skill reports its output as unchecked rather than implying otherwise.

The repository is also a portable Agent Pluginplugin.json at the root and skills/systemrdl-ref — so a client can be pointed at a checkout directly. See docs/ for other clients and the IVPM-based development setup.

Develop

./bootstrap.sh                                    # venv under packages/python, then `ivpm update`
                                                  # (deps come from pyproject.toml via ivpm.yaml)
packages/python/bin/python -m pytest tests/       # full test suite
packages/python/bin/python tools/lint_skill.py    # ladder invariants, budgets, frontmatter
packages/python/bin/python -m build .             # sdist + wheel
make -C docs html                                 # documentation (built with -W)

The skill's canonical location is src/agent_skills_systemrdl/share/skills/systemrdl-ref/, because setuptools only packages data found under the package directory. skills/systemrdl-ref is a relative symlink to it, which is what gives the repository its Agent Plugins layout — one copy of the content, two shapes. CI checks the symlink survives checkout and that every file under the skill reaches the wheel.

CI enforces the claim that the shipped examples are legal:

  • every .rdl in assets/templates/ and tests/golden/ compiles and elaborates;
  • every ```systemrdl block in the prose compiles, or declares an inline reason why not (currently 77 compile, 26 skipped with stated reasons);
  • 20 negative cases must fail with their recorded diagnostics, so the error catalogue cannot drift from what the compiler actually says;
  • ladder invariants, token budgets, generated-file freshness, and property coverage;
  • the wheel carries all 58 skill files, and the version agrees across __version__.py, plugin.json, and SKILL.md.

Releases are tag-driven: pushes to master build a .<run-id> dev-suffixed wheel that is never published; a v<version> tag publishes to PyPI and the docs. See .forgejo/workflows/ci.yml (primary) and .github/workflows/ci.yml (mirror).

Documentation

docs/ builds a Sphinx site whose reference pages {include} the skill's Markdown rather than copying it, plus four generated analysis pages: the disclosure ladder with measured token costs, the property index, a spec-clause map, and a coverage report.

Project

Source https://git.dvkit.org/fvutils/agent-skills-systemrdl.git
Documentation https://dvkit.org/fvutils/agent-skills-systemrdl/
Package agent-skills-systemrdl on PyPI

git.dvkit.org is authoritative. CI, releases, and documentation all publish from there (.forgejo/workflows/ci.yml); any GitHub mirror runs build-and-test only.

License

Apache-2.0. The Accellera SystemRDL 2.0 specification is copyright © 2015–2018 Accellera; this repository restates its rules with citation and is not an official Accellera publication. Where this reference and the standard disagree, the standard governs.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_skills_systemrdl-0.1.0.tar.gz (98.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_skills_systemrdl-0.1.0-py3-none-any.whl (136.3 kB view details)

Uploaded Python 3

File details

Details for the file agent_skills_systemrdl-0.1.0.tar.gz.

File metadata

  • Download URL: agent_skills_systemrdl-0.1.0.tar.gz
  • Upload date:
  • Size: 98.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.10.12

File hashes

Hashes for agent_skills_systemrdl-0.1.0.tar.gz
Algorithm Hash digest
SHA256 90a7cb257b3566d2e1683a808fedd8ebab022f3f713c23b84af354a899810887
MD5 f5c03bd1aead011f58259794789614a6
BLAKE2b-256 39251f4f8dcfae67177f6533a83d4292960fc2c09dbffd439dd9a3da1e1e457b

See more details on using hashes here.

File details

Details for the file agent_skills_systemrdl-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agent_skills_systemrdl-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 866eb1a48be3199a0b82847ea55e25710335993c1f2a7cf28d9bad3ad184a4e1
MD5 d426c876f7a362d5a7630442be666299
BLAKE2b-256 169425753d206f3d7529719c35ce41ade46bd19fa6fef3f1602b218c889efd7f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page