adr-scribe
The adr-scribe skill teaches your AI agent to draft, retro-document, and review Architecture Decision Records (ADRs) using the Michael Nygard MADR template. It is the companion to c4designer β if c4designer documents what the architecture is, adr-scribe documents why it was built that way.
What is an ADR?β
An Architecture Decision Record (ADR) is a short document that captures:
- The context β what forces are at play
- The options considered
- The decision made and the rationale
- The consequences β both positive and negative
The MADR format ensures every decision record is complete and balanced. A decision without documented negative consequences is considered incomplete by adr-scribe.
Mode Detectionβ
| Your message contains⦠| Mode activated |
|---|---|
| "we decided", "should we use", new decision to document | Interview |
| PR link, commit, "retro-document" | Retro-Document |
| Existing ADR pasted + "review this" | Review |
Cross-Skill Integrationβ
After you finalize an ADR, adr-scribe will proactively suggest:
β
ADR saved. If this decision changed the system structure, consider running:
"Act as the C4 Designer [Update mode]. Update the Container Diagram to reflect
the decision to switch from MongoDB to PostgreSQL."
This closes the loop: decisions are documented, and diagrams stay in sync.
Output Formatβ
- Default: Markdown file saved to
docs/adr/(e.g.,0001-use-postgresql-over-mongodb.md) - Filename convention:
NNNN-short-title.md(zero-padded, kebab-case) - Template: Michael Nygard MADR
MADR Template Structureβ
Every ADR produced by adr-scribe contains these sections:
# Title
* Status: [Proposed | Accepted | Deprecated | Superseded]
* Date: YYYY-MM-DD
## Context
...
## Considered Options
* Option A
* Option B
* Option C
## Decision Outcome
Chosen option: **Option A**, because...
### Positive Consequences
* ...
### Negative Consequences
* ...
Validationβ
Every ADR example in this repository is validated by tests/validate-adr.sh, which checks:
* Status:field exists## Contextsection exists## Considered Optionssection exists (a decision implies alternatives were weighed)## Decision Outcomesection exists### Negative Consequencessection exists (every decision has trade-offs)
Example Promptβ
Act as the adr-scribe. We just decided to use PostgreSQL instead of MongoDB
for our new payments API because we need ACID transactions. Please interview
me to draft a new Architecture Decision Record.