review-adr
Skill52 starsChanged 25 days agoMITView on GitHub
Review Architecture Decision Records (ADRs) for structural accuracy, project conformance, and software engineering best practice. Works with existing project ADRs and with proposed ADRs from issues or other sources. Triggers on terms like "review ADR", "check ADR", "evaluate ADR", "ADR review".
We split this skill into the rules it gives an agent
16 rules. About 0 are common, 12 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈12
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
If the argument is a GitHub issue URL, use gh issue view <number> --repo <owner/repo> to fetch the issue body, then extract the ADR text …
- Distinctive: line 30
Read the project's foundational ADR to understand the expected format and conventions:
- Very specific: line 32
Look for docs/adrs/adr-0000.md in the current working directory.
- Distinctive: line 33
If found, read it — it is the project's authoritative definition of ADR structure, purpose, naming, and storage conventions.
- Distinctive: line 35
If not found, fall back to the Michael Nygard baseline:
- Distinctive: line 46
Read the target ADR file(s) using the Read tool.
- Distinctive: line 50
If the ADR text is already in the conversation, use it directly.
- Very specific: line 51
If the user passed a GitHub issue URL or number, fetch the issue with gh issue view.
- Distinctive: line 61
Read those source files with the Read tool to verify the implementation.
- Distinctive: line 62
Use Grep to locate code patterns or identifiers referenced in the ADR.
- Distinctive: line 67
If inside a project, check whether referenced paths, patterns, or conventions exist.
- Distinctive: line 167
Write the review in the following format.
- Very specific: line 217
When creating a branch to work on an ADR — whether implementing a proposed ADR from an issue, amending an existing ADR, or adding a new one …
- Distinctive: line 225
If the user asks to create a branch or start work on an ADR, apply this prefix automatically.
- Distinctive: line 231
When reviewing the entire ADR inventory:
- Distinctive: line 234
After individual reviews, add a cross-cutting analysis covering:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
ADR Review Skill
Review one or more Architecture Decision Records (ADRs) across four dimensions: structural accuracy, project conformance, decision quality, and implementation quality.
Step 0: Determine What to Review
Parse $ARGUMENTS to determine the review mode:
| Argument | Action |
A number (5, 05, 0005) | Review docs/adrs/adr-NNNN.md in the current project |
| A filename or path | Review that specific ADR file |
all | Review every adr-*.md in docs/adrs/ |
issue or a GitHub issue URL | Review a proposed ADR pasted or fetched from the issue |
| No argument or an ADR in the chat | Ask the user what to review, or use the ADR already in context |
If the argument is a GitHub issue URL, use gh issue view <number> --repo <owner/repo> to
fetch the issue body, then extract the ADR text from it.
Step 1: Load the ADR Standard
Read the project's foundational ADR to understand the expected format and conventions:
- Look for
docs/adrs/adr-0000.mdin the current working directory. - If found, read it — it is the project's authoritative definition of ADR structure, purpose, naming, and storage conventions.
- If not found, fall back to the Michael Nygard baseline:
- Title — short noun phrase,
ADR-NNNN: <title> - Status — one of Proposed / Accepted / Deprecated / Superseded
- Context — the forces at play; why a decision was needed
- Decision — active voice ("We will ..."); the response to those forces
- Consequences — positive, negative, and neutral outcomes
- Stored in version control alongside the code; one decision per record; 1–2 pages
- Title — short noun phrase,
Step 2: Load the ADR(s) to Review
Existing ADRs:
- Read the target ADR file(s) using the Read tool.
- For
allmode, useGlob("docs/adrs/adr-*.md")then read each file.
Proposed / issue ADRs:
- If the ADR text is already in the conversation, use it directly.
- If the user passed a GitHub issue URL or number, fetch the issue with
gh issue view. - Otherwise, ask the user to paste the ADR content.
Step 3: Gather Project Context
Collect supporting context needed for the project-conformance and implementation checks.
For existing ADRs (code is available):
- Note every file path, module, crate, function, command, or configuration key mentioned in the ADR.
- Read those source files with the Read tool to verify the implementation.
- Use Grep to locate code patterns or identifiers referenced in the ADR.
- Skim other ADRs in
docs/adrs/for cross-ADR consistency; read any that are closely related to the ADR under review.
For proposed ADRs (no implementation yet):
- If inside a project, check whether referenced paths, patterns, or conventions exist.
- Clearly note in the review what cannot be verified without an implementation.
Step 4: Apply the Four Review Dimensions
Evaluate the ADR against all four dimensions. Record findings for each before writing the report.
Dimension 1: Structural Accuracy
Conformance to the format defined in ADR-0000 (or the Michael Nygard baseline):
- Title — Present as H1? Format
ADR-NNNN: <short noun phrase>? Concise and descriptive? Does the number match the filename (for existing ADRs)? - Status — Present as H2? Valid status value? Appropriate emoji if the project uses them (check ADR-0000 and other ADRs for the convention)?
- Context — Present as H2? Explains the forces at play, not just background noise? Makes clear why a decision was needed at this time?
- Decision — Present as H2? Written in active voice ("We will ...")? Specific and unambiguous? Covers a single decision, not several rolled together?
- Consequences — Present as H2? Covers positive, negative, and neutral outcomes? Honest about drawbacks and risks, not just the upsides?
- Length — Roughly one to two pages? Enough detail without padding or sprawl?
- Scope — One decision per record? Not conflating unrelated choices?
- File — Named
adr-NNNN.mdwith a zero-padded four-digit number (for existing ADRs)? Stored in the project's designated ADR directory? - Code citations — No source line-number citations (file paths and symbol names only — line numbers drift as unrelated commits land)?
Dimension 2: Project Conformance
Whether the ADR accurately reflects the actual project:
- Accuracy — Do stated file paths, module names, functions, crates, commands, and configuration keys actually exist in the codebase?
- Implementation match — Does the described design correspond to what the code actually does? Are there gaps between the ADR and the implementation?
- Cross-ADR consistency — Does this ADR contradict or silently overlap with any other ADR? If it supersedes an earlier decision, is that relationship explicitly noted?
- Terminology — Does it use the project's established terminology and naming conventions consistently with other ADRs and project documentation?
- Scope fit — Is the decision scope appropriate to the project's scale and architecture? (Not over-engineering for a small tool; not under-specifying a genuinely complex area.)
- Freshness — For existing ADRs: does the content still accurately describe the current state of the project, or has it drifted from the codebase since it was written?
Dimension 3: Decision Quality
Whether the decision itself reflects software engineering best practice:
- Problem definition — Is the problem clearly articulated? Does the Context section explain why a decision is needed, with enough specificity to justify the ADR?
- Alternatives — Were meaningful alternatives evaluated? Are the trade-off analyses fair and balanced, not strawmen? Does the chosen option emerge naturally from the analysis?
- Justification — Is the chosen option clearly motivated by the context? Or does it feel arbitrary, or like it was chosen first and the rationale retrofitted?
- Scope — Is the decision appropriately scoped? Not solving a problem that doesn't exist; not ignoring real complexity; not deferring decisions that should be made now.
- Reversibility — Is the permanence of the decision appropriate? Are the risks of getting it wrong acknowledged? Is there a path to revisiting it if circumstances change?
- SE principles — Does the decision align with recognised software engineering principles where applicable: separation of concerns, fail-fast, defence in depth, least surprise, single responsibility, DRY, YAGNI, etc.? Any clear violations that should be flagged?
- Evolution — Does the ADR acknowledge known future decisions it may require, or areas where the design is intentionally left open?
Dimension 4: Implementation Quality
For existing ADRs: whether the referenced code or processes satisfy SE best practice within the ADR's scope.
- Correctness — Does the implementation actually do what the ADR claims?
- Safety — Are edge cases, error paths, and failure modes handled? Does the code match the ADR's safety or reliability claims?
- Maintainability — Is the code readable and structured for future modification? Is logic confined to the modules the ADR identifies?
- Testability — Is the approach testable? Are tests present where the ADR implies they should be? Do tests cover the failure modes the ADR acknowledges?
- Performance — If the ADR makes performance claims or states that overhead is negligible, are those claims credible given the implementation?
- Security — Does the implementation introduce risks not acknowledged by the ADR?
- SE principles — Does the code follow good practices: single responsibility, defensive programming, appropriate abstraction level, no unnecessary coupling?
For proposed ADRs (no implementation yet): evaluate whether the described approach is likely to result in high-quality implementation, and flag foreseeable pitfalls, complexity risks, or SE concerns that the proposer should address before accepting.
Step 5: Produce the Review Report
Write the review in the following format. Be specific and actionable — vague feedback is not useful. If a dimension has no issues, say so briefly and move on.
## ADR Review: [ADR-NNNN or "Proposed ADR"]
**Subject**: [The title, or a one-line summary of what the ADR decides]
**Source**: [File path, or "Issue #N", or "Proposed — no implementation yet"]
### Overall Verdict
[✅ Pass | ⚠️ Minor Issues | ❌ Major Issues]
[1–3 sentences summarising the most important findings and the overall quality of the ADR.]
---
### Dimension 1: Structural Accuracy — [✅ | ⚠️ | ❌]
[Findings. State clearly what is correct. Call out every structural problem with a specific,
actionable correction. Quote the problematic text where helpful.]
### Dimension 2: Project Conformance — [✅ | ⚠️ | ❌]
[Findings. Name specific inaccuracies, path mismatches, cross-ADR conflicts, or terminology
drift. For proposed ADRs, note what could not be verified and why.]
### Dimension 3: Decision Quality — [✅ | ⚠️ | ❌]
[Findings. Identify missing alternatives, unjustified choices, scope problems, or SE
principle concerns. Be direct about weak reasoning without being dismissive.]
### Dimension 4: Implementation Quality — [✅ | ⚠️ | ❌ | N/A — Proposed]
[Findings. For existing ADRs: identify gaps between ADR claims and the actual code, or
code-quality issues within the ADR's scope. For proposed ADRs: flag design risks,
complexity traps, or feasibility concerns.]
---
### Recommendations
[Numbered list of actionable improvements, most important first. Omit this section entirely
if there are no significant issues.]Branch Naming
When creating a branch to work on an ADR — whether implementing a proposed ADR from an
issue, amending an existing ADR, or adding a new one — the branch name must begin with
adr/. Examples:
adr/0014-template-resolution— adding a new ADRadr/issue-42-config-layering— working on a proposed ADR from an issueadr/amend-0005-walk-up-discovery— amending an existing ADR
If the user asks to create a branch or start work on an ADR, apply this prefix automatically.
Reviewing All ADRs (all mode)
When reviewing the entire ADR inventory:
- Review each ADR individually using the four dimensions above.
- After individual reviews, add a cross-cutting analysis covering:
- Coverage gaps — Are major architectural areas of the project undocumented? Name specific areas that warrant an ADR but lack one.
- Cross-ADR consistency — Contradictions, overlapping scope, or silently superseded decisions that have not been marked Superseded/Deprecated.
- Hygiene — ADRs whose status no longer reflects reality; ADRs that have drifted from the current codebase.
- Open the report with a summary table before the individual reviews:
| ADR | Title | Overall | Dim 1 | Dim 2 | Dim 3 | Dim 4 |
|----------|------------------------------|---------|-------|-------|-------|-------|
| ADR-0001 | YAML as Primary Data Format | ✅ | ✅ | ✅ | ✅ | ✅ |
| ADR-0005 | Hierarchical Config ... | ⚠️ | ✅ | ⚠️ | ✅ | ✅ |Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- atomicinnovation/accelerator★ 34same name
- jamesc/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository27 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- benchmark-docsSkill
- bit-optimizationSkill
- commit-msgSkill
- json-semi-indexingSkill
- knowledge-mapSkill
- markdown-tablesSkill
- releaseSkill
- review-adrSkill
- simd-optimizationSkill
- skill-writingSkill
- testingSkill
- update-adr-inventorySkill
- yaml-semi-indexingSkill
- benchmark-docsSkill
- bit-optimizationSkill
- commit-msgSkill
- json-semi-indexingSkill
- knowledge-mapSkill
- markdown-tablesSkill
- releaseSkill
- simd-optimizationSkill
- skill-writingSkill
- testingSkill
- update-adr-inventorySkill
- yaml-semi-indexingSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

