About adr-verify
adr-verify checks the integrity of a persisted ADR graph after import, for teams maintaining architecture decision records. It finds dangling references, supersede cycles, and status mismatches, and can act as a fail-closed CI gate in strict mode.
Key features
- 01Detect dangling ADR references
- 02Find supersede cycles
- 03Check ADR status consistency
- 04Emit Markdown or JSON
- 05Fail on issues in strict mode
Use cases
- 01Check graph integrity after adr-index
- 02Block problematic records in CI
- 03Verify before an ADR-related release
- 04Identify deleted records needing reindexing
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill adr-verifyAfter installing, type/adr-verifyin Claude Code to confirm it loaded.
Details
From the project READMEADR Verify
Companion to adr-index. After import, reads the persisted graph and surfaces integrity issues:
- Dangling refs — edge points at an ADR ID that doesn't exist in
adr-patterns. Common cause: the referenced ADR is in a sibling repo or got deleted. - Supersede cycles —
ADR-A supersedes ADR-BandADR-B supersedes ADR-A(or longer cycles). Always data corruption. - Status mismatches — an ADR is the source of a
supersedesedge but its own status isn'tSuperseded. Usually a missed status update during a successor ADR's promotion.
What this skill cannot catch: an adr-patterns row for an ADR that was deleted from disk and has zero edges referencing it or from it — invisible to every check above (issue #2666). If the reported ADR count looks higher than what's actually on disk, run adr-reindex, not adr-verify again.
When to use
- Right after
adr-indexto confirm the graph is healthy - In CI as a fail-closed gate (
VERIFY_STRICT=1exits 1 on any issue) - Before publishing an ADR-related release
Steps
node plugins/ruflo-adr/scripts/verify.mjs
Optional env:
VERIFY_FORMAT=json— JSON instead of markdownVERIFY_STRICT=1— exit 1 on ANY issue (default: only on cycles)
Exit codes
| Code | Meaning |
|---|---|
0 | Graph healthy (or dangling refs / status mismatches present in non-strict mode) |
1 | Supersede cycle detected, OR strict mode + any issue present |
Cross-references
adr-index— populates the data this skill verifiesscripts/import.mjs— has its own dry-run validation; this skill is the read-back companionadr-reindex— reconciles a deleted ADR thatadr-verifycannot detect