Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Read back adr-patterns + adr-edges namespaces, surface dangling refs / supersede cycles / status mismatches; exit 1 on cycles
.claude/skills/ruvnet-adr-verify/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -73% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -61% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 162% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -37% | 0% |
| case-10 | ✗→✓ | ▲ Improved | -35% | 0% |
Companion to adr-index. After import, reads the persisted graph and surfaces integrity issues:
adr-patterns. Common cause: the referenced ADR is in a sibling repo or got deleted.ADR-A supersedes ADR-B and ADR-B supersedes ADR-A (or longer cycles). Always data corruption.supersedes edge but its own status isn't Superseded. 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.
adr-index to confirm the graph is healthyVERIFY_STRICT=1 exits 1 on any issue)bashnode 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)| 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 |
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 that adr-verify cannot detect| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 13,307 | 1,436 | -89% | 1 | 1 | 0% | 2,576 | 707 | -73% | 0 | 0 | — |
case-02 | fail→pass | 8,761 | 1,246 | -86% | 1 | 1 | 0% | 1,694 | 669 | -61% | 0 | 0 | — |
case-03 | fail→pass | 2,466 | 1,457 | -41% | 1 | 1 | 0% | 255 | 669 | +162% | 0 | 0 | — |
case-04 | pass→pass | 19,518 | 2,791 | -86% | 1 | 1 | 0% | 1,670 | 912 | -45% | 0 | 0 | — |
case-05 | pass→pass | 4,590 | 2,376 | -48% | 1 | 1 | 0% | 794 | 909 | +14% | 0 | 0 | — |
case-06 | pass→pass | 7,163 | 2,361 | -67% | 1 | 1 | 0% | 1,171 | 886 | -24% | 0 | 0 | — |
case-07 | pass→pass | 12,426 | 4,293 | -65% | 1 | 1 | 0% | 2,268 | 1,252 | -45% | 0 | 0 | — |
case-08 | pass→pass | 14,074 | 4,645 | -67% | 1 | 1 | 0% | 2,055 | 1,290 | -37% | 0 | 0 | — |
case-09 | fail→pass | 10,025 | 3,102 | -69% | 1 | 1 | 0% | 1,646 | 1,037 | -37% | 0 | 0 | — |
case-10 | fail→pass | 21,176 | 2,025 | -90% | 1 | 1 | 0% | 1,313 | 855 | -35% | 0 | 0 | — |
case-11 | fail→pass | 11,366 | 3,857 | -66% | 1 | 1 | 0% | 2,075 | 1,238 | -40% | 0 | 0 | — |
case-12 | fail→pass | 13,271 | 3,512 | -74% | 1 | 1 | 0% | 2,263 | 1,102 | -51% | 0 | 0 | — |
case-13 | fail→pass | 11,747 | 4,237 | -64% | 1 | 1 | 0% | 1,862 | 1,223 | -34% | 0 | 0 | — |
case-14 | fail→pass | 13,906 | 2,729 | -80% | 1 | 1 | 0% | 2,245 | 1,005 | -55% | 0 | 0 | — |
case-15 | fail→pass | 11,421 | 1,644 | -86% | 1 | 1 | 0% | 1,904 | 740 | -61% | 0 | 0 | — |
case-16 | fail→pass | 10,924 | 2,656 | -76% | 1 | 1 | 0% | 1,630 | 898 | -45% | 0 | 0 | — |
case-17 | fail→pass | 25,122 | 2,564 | -90% | 1 | 1 | 0% | 1,298 | 824 | -37% | 0 | 0 | — |
case-18 | pass→pass | 9,106 | 2,967 | -67% | 1 | 1 | 0% | 1,658 | 1,016 | -39% | 0 | 0 | — |
case-19 | pass→pass | 10,720 | 4,434 | -59% | 1 | 1 | 0% | 1,911 | 1,210 | -37% | 0 | 0 | — |
case-20 | fail→pass | 9,226 | 3,154 | -66% | 1 | 1 | 0% | 1,459 | 1,069 | -27% | 0 | 0 | — |
case-21 | pass→pass | 4,250 | 2,309 | -46% | 1 | 1 | 0% | 728 | 865 | +19% | 0 | 0 | — |
case-22 | fail→pass | 12,774 | 9,511 | -26% | 1 | 1 | 0% | 2,079 | 2,190 | +5% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +64 percentage points is the difference between those two pass rates over the 20 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.