Disputed-finding regression fixtures
SV-Gap is backend- and evidence-neutral: a contribution may challenge the reference oracle (see CONTRIBUTING.md). A disputed-finding fixture makes that kind of disagreement reviewable instead of a comment on an issue that nobody can rerun.
examples/disputed_finding_template
is a template for this. It contains:
design.sv/tb.sv— a synthetic RTL fixture and its functional testbench;manifest.toml— the intent declaration the reference checker runs against; andexpected-finding.json— the disagreement itself, recorded as data rather than prose.
expected-finding.json has four required fields:
rule_id— the finding you are disputing (must match a rule ID the reference checker actually emits);checker_status— the status you expect the checker to keep reporting (failorunknown);claim— your specific reasoning: which structural evidence or functional trace you believe the checker is missing or misreading, not a general objection; anddisposition—"disputed"until a maintainer or backend change resolves it. Nothing in this repository is allowed to flip a checker result topassbecause a dispute file exists next to it;tests/test_disputed_finding.pyasserts the finding still fires.
The checked-in template is a placeholder, not a real dispute: it reuses the
binary-bus-crossing pattern from
examples/gray_counter
so the regression test has something concrete to run.
Filing a real dispute
- Copy
examples/disputed_finding_templateto a new directory named for your case. - Replace
design.sv,tb.sv, andmanifest.tomlwith a minimized, non-confidential reproducer distilled from the design you are disputing. It must stay within the project's digital RTL scope boundary and use an existing rule category; contain no proprietary RTL or commercial-tool output. - Update
expected-finding.json: pointrule_idat the finding you disagree with and write yourclaim. - Run the fixture locally (
svgap check <manifest>plus the functional commands inmanifest.toml) and confirm the checker still reportschecker_statuson your reproducer. - Open a pull request. Leave
dispositionas"disputed"— a maintainer updates it once the disagreement is reviewed and resolved, in either direction.