What ADR Verify does
ADR Verify is a crucial tool designed for developers and teams managing Architecture Decision Records (ADRs). It acts as a companion to adr-index, providing essential checks on the integrity of your ADR graph after it has been populated. By reading the persisted graph, ADR Verify surfaces potential issues such as dangling references, supersede cycles, and status mismatches. This ensures that your ADR management remains reliable and that all references are valid and up-to-date.
The skill identifies three main types of integrity issues. First, it detects dangling references, which occur when an edge points to an ADR ID that does not exist in the adr-patterns. This often happens when an ADR is deleted or exists in a sibling repository. Second, it checks for supersede cycles, a critical issue where two or more ADRs reference each other as superseding, indicating data corruption. Lastly, ADR Verify flags status mismatches, where an ADR is the source of a supersede edge but does not have its own status updated accordingly.
To use ADR Verify effectively, it is recommended to run it immediately after adr-index to confirm that the graph is healthy. Additionally, it can be integrated into Continuous Integration (CI) pipelines as a fail-closed gate, ensuring that any integrity issues are caught before they can affect production. The skill also allows for optional configurations, such as outputting results in JSON format or enforcing strict verification that exits with an error code on any detected issue.
While ADR Verify is robust, it does have limitations. It cannot detect ADRs that have been deleted from disk without any references, which can lead to discrepancies in reported ADR counts. In such cases, running adr-reindex is necessary to reconcile these discrepancies. Overall, ADR Verify is an essential tool for maintaining the integrity of ADRs in any development environment.
When to use it
Use this skill right after running `adr-index` or as part of your CI process to ensure the integrity of your ADRs.
When not to use it
This skill is not suitable for detecting deleted ADRs that have no edges referencing them; use `adr-reindex` for that purpose.
What you can build with it
Post-Index Verification
Run ADR Verify immediately after `adr-index` to ensure your ADR graph is free from integrity issues.
Continuous Integration Checks
Integrate ADR Verify into your CI pipeline to catch any ADR integrity problems before deployment.
Pre-Publication Review
Use ADR Verify before publishing any ADR-related releases to confirm that all records are accurate and consistent.
How to install ADR Verify
View source1. Install with the skills CLI
npx skills add ruvnet/ruflo/adr-verify --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by ruvnetADR 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
Frequently asked questions about ADR Verify
Similar skills
Markdown to HTML Conversion
Efficiently convert Markdown documents to HTML.
Code Tour
Create structured walkthroughs for codebases.
Acquire Codebase Knowledge
Streamline onboarding with comprehensive codebase documentation.
Documentation & Modernization
Streamline codebase documentation and modernization planning.
Azure Resource Visualizer
Generate architecture diagrams for Azure resources.
CLAUDE.md Improver
Optimize your CLAUDE.md files for better project context.

