CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

rtl-property-inference

Automatically infer formal correctness properties from Verilog/SystemVerilog RTL code and generate SystemVerilog Assertions (SVA). Identifies control-flow invariants (mutual exclusion, valid-ready handshakes, pipeline ordering, safety properties), liveness expectations, and temporal properties. Use when working with RTL designs that need formal property generation, when adding assertions to existing RTL, or when users ask to infer properties, generate assertions, or create formal specifications from hardware designs.

Quality

87%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

67%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body delivers a well-structured, sequenced workflow with a concrete output contract and correctly offloads SVA syntax and the pattern library to two real, clearly linked reference files. Its main weaknesses are redundancy — the output specification appears twice and pattern listings overlap the reference file — and a worked example that stops short of showing the final generated SVA, which keeps it from being fully tight and copy-paste ready.

Suggestions

Collapse the duplicated output specification: Step 6 and the 'Output Format' section describe the same deliverables twice — keep only the format template and have Step 6 point to it.

Trim the pattern enumerations and 'Look for:' bullets in Steps 2–3 that restate domain knowledge or duplicate common_patterns.md, replacing them with a short checklist plus a link to the reference file.

Extend the FIFO example to show the actual generated SVA for one property (e.g., the assert property for 'No write when full') so the end-to-end output is concrete rather than described in prose.

DimensionReasoningScore

Conciseness

Steps 2–3 enumerate pattern/property pairs with 'Look for:' bullets (e.g., 'Look for: Multiple signals that should never be active simultaneously') that restate domain knowledge Claude already has and largely duplicate references/common_patterns.md, and Step 6 plus the Output Format section specify the same deliverables twice. It matches 'mostly efficient but includes some unnecessary explanation or could be tightened' rather than level 2 because it never explains basic concepts (SVA syntax is correctly offloaded) and the conservative-inference and vacuity guidance genuinely earns its tokens.

3 / 5

Actionability

Provides a concrete SVA template ('assert property (...) else $error(...)'), an explicit output format skeleton, and a worked FIFO example, which is mostly executable guidance with minor gaps. Not level 5 because the FIFO example stops at prose ('No write when full', 'Count within bounds [0:DEPTH]') without showing the final generated assertion, and not level 3 because the templates and referenced pattern library are real SystemVerilog rather than pseudocode.

4 / 5

Workflow Clarity

The six steps (parse → invariants → liveness → map to properties → classify → generate) are clearly sequenced, with quality checkpoints present via guidelines ('Check vacuity: Suggest cover properties for antecedents', 'Be conservative', 'Mark confidence', and the bounded-liveness note). Not level 5 because there is no explicit validate-and-recover loop for the generated assertions (e.g., checking they compile or reclassifying a failing property), and not level 3 because those checkpoints, while not framed as feedback loops, are explicitly stated.

4 / 5

Progressive Disclosure

Both bundle files (references/common_patterns.md, references/sva_syntax.md) exist, are one level deep, and are well signaled — linked inline at the point of use in Step 4 and again in a dedicated References section with descriptions. Not level 5 because Steps 2–3 inline pattern/property detail that also lives in common_patterns.md, a minor organization gap that leaves some content duplicated rather than cleanly split.

4 / 5

Total

15

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

This is an exemplary skill description that follows the ideal what-plus-when pattern: it states concrete capabilities (property inference, SVA generation, named invariant categories) and gives three explicit, natural trigger phrasings with good synonym coverage. It is written in third person, is appropriately concise, and occupies a distinct niche with minimal conflict risk.

DimensionReasoningScore

Specificity

Lists multiple concrete actions — 'Automatically infer formal correctness properties', 'generate SystemVerilog Assertions (SVA)', 'Identifies control-flow invariants (mutual exclusion, valid-ready handshakes, pipeline ordering, safety properties), liveness expectations, and temporal properties' — with comprehensive coverage of the skill's capability surface, matching the anchor for multiple specific concrete actions without the minor gaps that define the level below.

5 / 5

Completeness

Explicitly answers both questions: the 'what' ('infer formal correctness properties... and generate SystemVerilog Assertions (SVA). Identifies control-flow invariants... liveness expectations, and temporal properties') and an explicit 'Use when...' clause with concrete trigger phrases, mirroring the anchor-5 example structure exactly; it is not the level below because the 'when' is already fully explicit and specific.

5 / 5

Trigger Term Quality

The 'Use when' clause supplies three complete natural user phrasings ('infer properties, generate assertions, or create formal specifications') plus synonyms (Verilog/SystemVerilog, properties/assertions/formal specifications, RTL/hardware designs), exceeding the coverage of the anchor-4 example; only trivial extensions like '.v'/'.sv' file extensions are absent, which does not drop it to 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

The description is saturated with hardware-formal terminology (Verilog/SystemVerilog RTL, SVA, formal property generation, assertions) creating a clear niche with distinct triggers; 'adding assertions to existing RTL' and 'infer properties' would not naturally fire a general coding or document skill, so conflict risk is minimal rather than merely minor.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

ArabelaTso/Skills-4-SE

Path

skills/rtl-property-inference/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.