Install
openclaw skills install adr-generatorArchitecture Decision Record generator — analyze codebases and document technical decisions with context, alternatives, and consequences. Use when asked to document architecture decisions, create ADRs, or explain why technical choices were made.
openclaw skills install adr-generatorAnalyze a codebase or conversation to produce Architecture Decision Records (ADRs) — structured documents that capture the WHY behind technical choices so future developers understand the reasoning.
Use when: "document this decision", "create an ADR", "why did we choose X", "record our architecture decision", or when a significant technical choice is being made.
A short document capturing one significant architectural decision: the context, the decision itself, the alternatives considered, and the consequences. ADRs form a decision log that prevents the same debates from recurring and helps new team members understand the codebase.
From conversation or code review, extract:
# Check git history for related changes
git log --oneline --all --grep="<keyword>" | head -20
# Find when a dependency was added
git log --all --diff-filter=A -- package.json | head -5
git log -p --all -S '<package-name>' -- package.json | head -40
# Look for prior discussion in docs
grep -ri "decision\|chose\|alternative\|trade-off\|migrate" docs/ README.md CONTRIBUTING.md 2>/dev/null
# Check for existing ADRs
find . -type f -name "*.md" -path "*/adr/*" -o -name "*decision*" 2>/dev/null
ls docs/adr/ docs/decisions/ doc/architecture/ 2>/dev/null
For framework/library decisions:
# What else was evaluated? Check for traces
grep -ri "considered\|vs\|compared\|evaluated\|alternative" docs/ 2>/dev/null
git log --all --oneline | grep -i "try\|experiment\|spike\|poc\|prototype" | head -10
# Check if multiple solutions were tried
git log --all --oneline --diff-filter=D -- '**/package.json' | head -10
Read the current implementation to understand what the decision enabled or constrained:
# How deeply is the choice embedded?
grep -rc "<framework-import>" --include="*.{ts,js,py,go}" . 2>/dev/null | sort -t: -k2 -rn | head -10
# Are there workarounds that suggest regret?
grep -ri "hack\|workaround\|todo\|fixme\|technical debt" --include="*.{ts,js,py,go}" . 2>/dev/null | head -20
Use the Michael Nygard format (industry standard):
# ADR-{NNN}: {Title — short, noun-phrase}
**Date:** YYYY-MM-DD
**Status:** Proposed | Accepted | Deprecated | Superseded by ADR-XXX
**Deciders:** [names or roles]
## Context
What is the issue that we're seeing that is motivating this decision or change?
Describe the forces at play: technical constraints, business requirements, team capabilities, timeline pressure.
## Decision
State the decision clearly in full sentences.
"We will use PostgreSQL as our primary database."
"We will adopt a monorepo structure using Turborepo."
## Alternatives Considered
### Alternative A: [name]
- **Pros:** ...
- **Cons:** ...
- **Why not:** ...
### Alternative B: [name]
- **Pros:** ...
- **Cons:** ...
- **Why not:** ...
## Consequences
### Positive
- What becomes easier or possible because of this decision
### Negative
- What becomes harder, more expensive, or is now ruled out
- What technical debt does this introduce
### Risks
- What could go wrong
- Under what conditions would we reconsider this decision
## References
- Links to relevant PRs, issues, benchmarks, or external resources
Standard locations (create if none exist):
docs/adr/
0001-use-postgresql.md
0002-adopt-monorepo.md
0003-api-versioning-strategy.md
README.md # index of all ADRs with one-line summaries
Index format for README.md:
# Architecture Decision Records
| # | Decision | Status | Date |
|---|----------|--------|------|
| 1 | [Use PostgreSQL](0001-use-postgresql.md) | Accepted | 2026-01-15 |
| 2 | [Adopt monorepo](0002-adopt-monorepo.md) | Accepted | 2026-02-01 |