architecture-documentation-and-decision-records
Skill1 starsChanged 8 days agoMITView on GitHub
Standards and workflow for Architecture Decision Records (ADRs) and architecture documentation. Use when creating, reviewing, or organizing ADRs, capturing architecture-significant decisions, maintaining overview docs, or linking diagrams and supporting artifacts. Trigger on: "write an ADR", "architecture decision", "why did we choose X", "document this decision", "should we write an ADR", "record this choice", "decision log", "ADR template", "architecture overview doc", or any task involving documenting system-level technical decisions and their rationale.
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 9 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Use this skill when the task is to create, review, or organize architecture documentation and ADRs.
- Distinctive: line 42
Component or sequence views: only where they materially improve understanding
- Distinctive: line 48
Write an ADR when a decision is architecturally significant.
- Distinctive: line 62
Keep ADRs short, focused, and centered on one decision.
- Distinctive: line 66
Use this template when creating a new ADR:
- Distinctive: line 124
If a decision changes, write a new ADR and supersede the old one.
- Distinctive: line 138
Update non-ADR docs whenever the architecture changes.
- Distinctive: line 142
Keep architecture artifacts in version control near the codebase.
- Distinctive: line 165
Use markdown linting and link checks in CI where practical
≈ “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
Architecture Documentation and Decision Records
Use this skill when the task is to create, review, or organize architecture documentation and ADRs. Keep documentation layered, current, and traceable so future readers can understand both the system shape and the reasons behind significant decisions.
Core Boundaries
- Architecture documentation explains the current system views and supporting context.
- ADRs capture individual architecture-significant decisions and their rationale.
- Runbooks describe how to operate and support the system — use
../operations-standards/SKILL.mdfor runbook, incident response, and postmortem standards; this skill only covers the boundary, not runbook content. - API specs describe interface details, not architecture rationale.
Required Inputs
- The decision that needs to be made, or was already made informally
- Context and constraints that forced the decision — technical, business, team, or timeline
- Options considered, with their pros and cons
- Deciders or stakeholders whose sign-off matters
- The SAD/Blueprint component this decision affects, and any prior ADR it supersedes
Document Types
Maintain documentation at the right level for the audience:
- Context / overview for stakeholders and onboarding
- Container / module views for engineers understanding system boundaries
- Component or sequence views only where they materially improve understanding
- ADRs for significant decisions such as framework, datastore, deployment, or pattern choices
ADR Writing Rules
Write an ADR when a decision is architecturally significant. Do not use ADRs for trivial implementation choices.
A standard ADR should include:
- Title: human-readable decision statement such as
Use Docker for service packaging - Filename: unique file name such as
0001-use-docker.md - Date
- Status
- Context / Decision Drivers
- Considered Options
- Decision
- Consequences
Keep ADRs short, focused, and centered on one decision.
ADR Template
Use this template when creating a new ADR:
# ADR-NNNN: [Short title — state the decision, not just the topic]
- **Date**: YYYY-MM-DD
- **Status**: Proposed | Accepted | Rejected | Superseded by ADR-XXXX | Deprecated
- **Deciders**: [Names or roles]
- **Supersedes**: [ADR-XXXX if applicable]
## Context
[What situation, constraint, or problem forced this decision?
What forces are in play — technical, business, team, timeline?]
## Considered Options
| Option | Pros | Cons |
|---|---|---|
| Option A | ... | ... |
| Option B | ... | ... |
| Option C | ... | ... |
## Decision
We chose **[Option X]** because [brief rationale tying back to the context and forces].
## Consequences
**Positive:**
- [Benefit 1]
- [Benefit 2]
**Negative / Trade-offs:**
- [Risk or cost 1]
- [Risk or cost 2]
**Follow-up actions:**
- [ ] [Next step or linked ticket]Decision Threshold — When to Write an ADR
| Scope | Write an ADR? |
| Framework or language selection | Yes |
| Data store choice | Yes |
| Auth/security approach | Yes |
| Major integration pattern | Yes |
| API contract or protocol choice | Yes |
| Deployment platform change | Yes |
| Naming convention update | No |
| Minor refactor with no boundary change | No |
| Bug fix | No |
ADR Lifecycle
- ADRs are immutable once accepted except for status updates or explicit supersession links.
- If a decision changes, write a new ADR and supersede the old one.
- Use statuses deliberately:
Proposed: under reviewAccepted: approved decision of recordRejected: considered but not adoptedSuperseded: replaced by a newer ADRDeprecated: no longer relevant due to system evolution
Architecture Documentation Workflow
- Capture the architecture problem or decision as soon as it becomes material.
- Draft the minimum useful architecture view or ADR.
- Link related diagrams, tickets, and existing ADRs.
- Review changes via pull request like code.
- Update non-ADR docs whenever the architecture changes.
Storage and Layout
Keep architecture artifacts in version control near the codebase.
project-root/
├─ docs/
│ ├─ architecture/
│ │ ├─ overview.md
│ │ ├─ context.md
│ │ ├─ containers.md
│ │ └─ diagrams/
│ ├─ decisions/
│ │ ├─ 0001-example.md
│ │ └─ index.md
│ ├─ runbooks/
│ └─ README.mdTooling and Automation
- Any diagram needed for architecture documentation or an ADR must be built with
../../puml-diagrams/SKILL.md— load it before writing diagram code. Only deviate (Mermaid, Structurizr) if the project already has an established diagramming toolchain in place. - Use markdown linting and link checks in CI where practical
- Publish architecture docs if the team benefits from a browsable docs site
Anti-pattern quick reference
| Anti-Pattern | Problem | Fix |
| Logging trivial decisions as ADRs | Buries real decisions in noise; the Decision Threshold table gets ignored | Apply the Decision Threshold table before creating a new ADR |
| Bundling multiple decisions into one ADR | Can't supersede or reference one decision without dragging in the others | One decision per ADR; split before writing |
| Letting diagrams or overview docs drift from the system | Docs describe an architecture that no longer exists | Update non-ADR docs whenever the architecture changes, same as any other code change |
| Scattering architecture knowledge across unlinked tools or folders | No one can find the decision or context when they need it | Keep architecture artifacts in version control near the codebase, per Storage and Layout |
| Skipping peer review or ownership for documentation | Undetected errors and no accountable owner when the doc goes stale | Review ADRs and architecture docs via pull request like code |
Pre-flight checklist — run before delivering any ADR or architecture document
- The document type matches the audience and purpose
- ADR titles are human-readable and filenames are distinct identifiers
- ADR status reflects the real lifecycle state
- Decisions, diagrams, and related tickets are cross-linked
- Non-ADR architecture docs represent the current system or are clearly marked outdated
In this repository91 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- goSkill
- json-standardsSkill
- pythonSkill
- rabbitmqSkill
- rSkill
- rustSkill
- code-standardsSkill
- software-architectureSkill
- swiftSkill
- typescript-code-standardsSkill
- business-requirements-standardsSkill
- developer-handoff-standardsSkill
- development-planning-standardsSkill
- document-writer-reviewerSkill
- feature-planning-standardsSkill
- functional-specification-standardsSkill
- non-functional-requirements-standardsSkill
- operations-standardsSkill
- product-requirements-standardsSkill
- documentationSkill
- solution-architecture-standardsSkill
- technical-requirements-standardsSkill
- documenting-codeSkill
- github-circleci-standardsSkill
- graphifySkill
- puml-diagramsSkill
- software-architecture-progressionSkill
- testingSkill
- software-test-specificationSkill
- zeno-councilSkill
- zeno-debugSkill
- zeno-insightSkill
- zenoSkill
- zeno-stackSkill
- zeno-accessibilitySkill
- zeno-angular-developerSkill
- zeno-api-designSkill
- zeno-browser-qaSkill
- zeno-build-resolverSkill
- zeno-codebase-onboardingSkill
- zeno-code-tourSkill
- zeno-comment-analysisSkill
- zeno-config-gcSkill
- zeno-context-budgetSkill
- zeno-context-compactionSkill
- zeno-cost-reportSkill
- zeno-database-migrationsSkill
- zeno-deep-researchSkill
- zeno-deployment-patternsSkill
- zeno-design-systemSkill
- zeno-docker-patternsSkill
- zeno-e2e-testingSkill
- zeno-error-handlingSkill
- zeno-find-skillsSkill
- zeno-frontend-designSkill
- zeno-github-opsSkill
- zeno-git-workflowSkill
- zeno-harness-optimizerSkill
- The first 60 shown.
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.

