Manage Architecture Decision Records (ADRs) using git-adr, a CLI tool that stores ADRs in git notes instead of files. Execute commands (init, new, edit, list, show, search, sync, supersede, link, attach, stats, export, import), generate ADR content in any format (MADR, Nygard, Y-Statement, Alexandrian, Business Case, Planguage), and teach ADR best practices. Use when users ask about: ADRs, architecture decisions, decision records, git-adr commands, documenting technical decisions, or need help creating/managing ADRs in a git repository.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
references/best-practices.mdreferences/commands.mdreferences/configuration.mdreferences/formats/alexandrian.mdreferences/formats/business-case.mdreferences/formats/madr.mdreferences/formats/nygard.mdreferences/formats/planguage.mdreferences/formats/y-statement.mdreferences/search-patterns.mdreferences/workflows.mdworkflows/decision-capture.mdworkflows/decision-recall.mdworkflows/session-start.mdComprehensive skill for managing Architecture Decision Records using the git-adr CLI tool.
At session start, if in a git-adr repository, automatically load ADR summary:
# Silent detection and load
git notes --ref=adr list &>/dev/null && git adr list --format oneline 2>/dev/null
This provides awareness of existing decisions without consuming excessive context. See workflows/session-start.md for full behavior.
Use progressive loading for token efficiency:
| Trigger | Action |
|---|---|
| "Show me ADR {id}" | git adr show {id} → full content |
| "What did we decide about X" | git adr search "X" → snippets |
| "Record this decision" | Guided creation workflow |
See workflows/decision-recall.md for recall patterns. See workflows/decision-capture.md for creation flow.
NEVER modify user configuration without explicit permission.
git-adr config --set or git config adr.* commands unless the user explicitly asks to change configgit config --get or git-adr config --get onlygit config --local --list | grep adr - do NOT assume or set valuesgit-adr is a command-line tool that manages ADRs using git notes instead of files:
| Command | Description |
|---|---|
git adr init | Initialize ADR tracking |
git adr new "<title>" | Create new ADR |
git adr list | List all ADRs |
git adr show <id> | Display an ADR |
git adr edit <id> | Edit an ADR |
git adr search "<query>" | Search ADRs |
git adr supersede <old-id> "<title>" | Supersede a decision |
git adr link <id> <commit> | Link ADR to commit |
git adr sync push | Push ADRs to remote |
git adr sync pull | Pull ADRs from remote |
git adr stats | Show statistics |
git adr export | Export to files |
git adr config list | Show configuration |
For full command documentation, see references/commands.md.
Always verify the environment:
# 1. Check git-adr is installed
git adr --version
# 2. Verify in a git repository
git rev-parse --is-inside-work-tree
# 3. For most commands, check if initialized
git notes --ref=adr list 2>/dev/null || echo "Not initialized"
If git-adr is not installed:
git-adr is not installed. Install with:
pip install git-adr
# or
brew tap zircote/git-adr && brew install git-adr
If not in a git repository:
git-adr requires a git repository. Initialize with:
git init
git adr init
If ADRs not initialized:
ADR tracking not initialized. Run:
git adr init
Always check the project's configured template before generating content:
# Get configured template (defaults to madr if not set)
TEMPLATE=$(git config --get adr.template 2>/dev/null || echo "madr")
echo "Using template: $TEMPLATE"
| Format | Config Value | Best For |
|---|---|---|
| MADR | madr | General purpose, option analysis (default) |
| Nygard | nygard | Quick, minimal decisions |
| Y-Statement | y-statement | Ultra-concise, single sentence |
| Alexandrian | alexandrian | Pattern-based, forces analysis |
| Business Case | business | Stakeholder approval, ROI |
| Planguage | planguage | Measurable quality requirements |
For format templates, see references/formats/.
adr.template configgit adr new "<title>" with content# Create ADR (opens editor with template)
git adr new "Use PostgreSQL for primary database"
# Or with specific format override
git adr new "Use PostgreSQL" --template nygard
When generating content, follow the structure in the appropriate format template.
git adr init
git adr new "Record architecture decisions"
git adr sync push
git adr sync pull # Get latest
git adr new "Add caching" # Create decision
git adr sync push # Share with team
# After implementing a decision
git adr link 20250115-use-postgresql abc1234
# View linked commits
git adr show 20250115-use-postgresql
# When replacing a decision
git adr supersede 20250101-use-mysql "Migrate to PostgreSQL"
For more workflows, see references/workflows.md.
Common configuration options:
# Set default template
git adr config adr.template madr
# Set editor
git adr config --global adr.editor "code --wait"
# Enable auto-sync
git adr config adr.sync.auto_push true
git adr config adr.sync.auto_pull true
For all configuration options, see references/configuration.md.
Write an ADR for decisions that are:
For complete guidance, see references/best-practices.md.
Load reference files based on user intent:
| User Intent | Load File |
|---|---|
| "Create an ADR" | references/formats/{template}.md |
| "What commands are available?" | references/commands.md |
| "Configure git-adr" | references/configuration.md |
| "What is an ADR?" | references/best-practices.md |
| "Set up for my team" | references/workflows.md |
| "Find decisions about X" | references/search-patterns.md |
| "Record this decision" | workflows/decision-capture.md |
| "What did we decide" | workflows/decision-recall.md |
When generating ADR content:
Before creating an ADR, ensure:
| File | Purpose |
|---|---|
references/commands.md | Full command documentation |
references/configuration.md | All config options |
references/best-practices.md | ADR writing guidance |
references/workflows.md | Common workflow patterns |
references/search-patterns.md | Natural language → search mapping |
references/formats/madr.md | MADR template |
references/formats/nygard.md | Nygard template |
references/formats/y-statement.md | Y-Statement template |
references/formats/alexandrian.md | Alexandrian template |
references/formats/business-case.md | Business Case template |
references/formats/planguage.md | Planguage template |
workflows/session-start.md | Auto-context loading behavior |
workflows/decision-capture.md | Guided ADR creation workflow |
workflows/decision-recall.md | Find past decisions workflow |