to-adr
Skill1 starsChanged 3 months agoMITView on GitHub
Record a decision as an Architecture Decision Record - the forces, the choice, what was rejected and why. Use the moment a hard-to-reverse choice is made, not later - a library or technology picked over alternatives, an approach settled after weighing trade-offs, a constraint accepted, an earlier decision superseded, or an approach abandoned after it failed. Triggers - "we decided", "we're going with", "let's use X instead of Y", "chose X over Y", "record this decision", "new ADR", "document this trade-off", "why did we do it this way", "supersede that decision", "that approach didn't work".
5 other projects use a version of this.
Adopted by
Most recently taken up by
- protokol11/skillstheir own version, first seen Nov 8, 2026
- Integralist/agent-skillstheir own version, first seen Nov 6, 2026
- helderberto/agent-skillstheir own version, first seen Oct 13, 2026
- jeremymcs/skillstheir own version, first seen May 16, 2026
- chrisetheridge/skillstheir own version, first seen May 11, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- Integralist/agent-skills★ 23same name
- helderberto/agent-skills★ 19same name
- jeremymcs/skills★ 8same name
- chrisetheridge/skills★ 4same name
- protokol11/skills★ 1same 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 repository25 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- write-a-skillSkill
- grill-with-docsSkill
- project-docsSkill
- regulatory-complianceSkill
- to-prdSkill
- to-radSkill
- improve-codebase-architectureSkill
- prototypeSkill
- tddSkill
- to-uxSkill
- wayfinderSkill
- handoffSkill
- housekeepingSkill
- worklogSkill
- zoom-outSkill
- git-guardrails-claude-codeSkill
- git-guardrails-geminiSkill
- setup-github-copilotSkill
- setup-gitlab-duoSkill
- story-reconcileSkill
- story-workflowSkill
- to-issuesSkill
- triageSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 27
Write one when a choice is hard to reverse and someone could reasonably have chosen otherwise.
- Distinctive: line 35
Do not write one for a reversible or obvious choice.
- Very specific: line 43
Find where ADRs live: Do not assume. Look for docs/adr/, docs/decisions/, or an "Architecture Decision Records" section under …
- Distinctive: line 49
Check for one to supersede: If this reverses or narrows an earlier decision, that is a relationship to record in both directions.
- Very specific: line 54
Start from the project-docs template (assets/templates/adr.md in that skill) and keep to its four sections.
- Distinctive: line 83
Record what was tried and failed: If an approach was attempted and abandoned, that is the most valuable content in the document - it is the …
- Distinctive: line 102
Run the project-docs sync if the project has one.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Architecture Decision Records (to-adr)
An ADR captures why a choice was made, so the next person - or the next agent - does not relitigate it, and can tell when the reasons have expired.
Works with the project-docs skill: this skill is the authoring workflow; project-docs owns the conventions, the section, and the KB sync.
An ADR is a technical decision, not a capture. If you are recording something you noticed rather than making the call, file it as an issue and let triage route it. Nobody should be pushed into writing one because the story they picked up turned out to be thin.
When it is an ADR
Write one when a choice is hard to reverse and someone could reasonably have chosen otherwise. A decision with no alternatives was not a decision.
- ADR - why a choice was made. The decision is frozen once accepted; new knowledge means a new ADR that supersedes it, not a rewritten decision - though the document's facts are kept correct (see After writing).
- Spec - how a thing IS. Updated in place. If you are describing current behaviour, that is a spec, not an ADR.
- Code comment - why this line is odd. Local, no alternatives weighed.
Do not write one for a reversible or obvious choice. A repo full of ceremonial ADRs is worse than none, because the real ones stop standing out.
Write it when the decision lands, not at the end of the work. The reasoning is available for about an hour and then it is reconstruction.
Before writing
- Find where ADRs live. Do not assume. Look for
docs/adr/,docs/decisions/, or an "Architecture Decision Records" section underdocs/knowledge/. Match whatever is already there - numbering, naming, frontmatter. A new ADR that does not match its neighbours is a smell. - Read the last two. They show the house style and may already cover this ground.
- Check for one to supersede. If this reverses or narrows an earlier decision, that is a relationship to record in both directions.
Writing it
Start from the project-docs template
(assets/templates/adr.md in that skill) and keep to its four sections.
Number sequentially, zero-padded, with a slug in the filename:
0007-postgres-over-dynamo.md.
Keep the number out of the heading. The heading is the title alone —
# Postgres over DynamoDB, not # ADR-0007: Postgres over DynamoDB. It
becomes the article title when synced, and an index of prefixed titles is
unreadable. The identifier belongs on the metadata line:
# Postgres over DynamoDB
ADR-0007 · 2026-08-05 · Status: acceptedContext - the forces, honestly. What pressure produced this decision. Include the constraints that were not negotiable, because those are what change later and make the decision revisitable.
Decision - actively phrased, in one or two sentences. "We use X."
Consequences - what gets easier, what gets harder, what was given up. The "harder" list is the one people skip and the one that pays off.
Two things that make the difference between an ADR worth reading and a formality:
- Name the alternatives and why each lost. A decision recorded without its rejected options cannot be re-evaluated later; the reader has no idea whether the reasons still hold.
- Record what was tried and failed. If an approach was attempted and abandoned, that is the most valuable content in the document - it is the thing a future reader is most likely to try again. Failures are evidence, not embarrassment.
State uncertainty where it exists. "We believe X, unverified" ages far better than false confidence, and tells a reader exactly what to re-check.
After writing
- A changed decision is a new ADR, never an edit to the old one. Write it, cross-link both ways, and the old gets
Status: superseded by ADR-0012. Editing the original instead leaves a record of reasoning nobody ever applied, and quietly repoints every code comment and story that cites the old ID at a different decision. - Consequences are the exception, and they are the part worth having. What a decision actually cost is learned months later, not on the day it was made. Add to Consequences as it becomes known, dated, and leave what was already there - a cost that was predicted and a cost that arrived are two different facts, and the distance between them is how anyone calibrates the next decision.
- The decision is frozen; the document is maintained. A record that states something false - a constant it names has been renamed, a claim in Context or Consequences was wrong when written - is corrected in place. Filing a fresh ADR to say "that name is now X" is noise, and leaving the wrong sentence standing is worse, because the next reader takes it as authoritative and acts on it. A rename, a typo or a dead link is corrected silently; a substantive correction gets a dated line under
## Correctionsat the foot of the record, saying what was wrong and what is right. Earlier wording is not lost - git and the knowledge base keep every version, and that is the audit trail, not a stale sentence in the current text. - Two edits are never corrections. Rewording the Decision sentence is a new ADR that supersedes this one, not a fix. Rewriting Context with hindsight, so the reasoning reads better than it was, destroys the only evidence of what was actually known at the time.
Status:stays the decision's standing -accepted, orsuperseded by ADR-NNNN- and never becomes a correction log. - Point at it from the work it governs - the PRD, the spec, the story's
## References. - Where a decision constrains a library's public surface, summarise the rule in that library's shipped skill and leave the reasoning here. Do not re-argue it there.
- Run the project-docs sync if the project has one; the ADR becomes a KB article.
Adopting mid-project
Decisions already made and undocumented are worth recording only where they are still live and still contested. Write those; do not backfill history for its own sake. Mark them plainly as reconstructed after the fact, since the context is remembered rather than captured.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

