adr
| Field | Value |
|---|---|
| Type | Skill |
| Source | ~/.copilot/skills/adr/SKILL.md |
| Description | The architecture-decision-record system — the single source of truth for binding design, engineering, and platform decisions across projects. Use when writing a new ADR, changing or superseding an existing decision, deprecating one, citing a decision in code review or an agent, or answering “what is our rule for X”. Active records live in references/, tombstoned ones in references/ZZ-deprecated/, and the template in templates/adr-template.md. Storybook and the design-principles skill reference these records; they are not the source. Do NOT use for general prose (technical-writing), product specs (prd-generator), or enforcing visual rules at code time (design-principles cites these records). |
Bundled Pages
| Group | Name | Source |
|---|---|---|
| References | ADR Index | ~/.copilot/skills/adr/references/index.md |
| References | ADR-001: Design Tokens | ~/.copilot/skills/adr/references/adr-001-design-tokens.md |
| References | ADR-002: Radius & Shape | ~/.copilot/skills/adr/references/adr-002-radius-and-shape.md |
| References | ADR-003: Typography & Density | ~/.copilot/skills/adr/references/adr-003-typography-and-density.md |
| References | ADR-004: Motion & Interaction | ~/.copilot/skills/adr/references/adr-004-motion-and-interaction.md |
| References | ADR-005: Accessibility & Release Gates | ~/.copilot/skills/adr/references/adr-005-accessibility-and-release-gates.md |
| References | ADR-006: Color & Theming | ~/.copilot/skills/adr/references/adr-006-color-and-theming.md |
| References | ADR-007: Print Discipline | ~/.copilot/skills/adr/references/adr-007-print-discipline.md |
| References | ADR-008: Border, Surface, and Overlay Discipline | ~/.copilot/skills/adr/references/adr-008-border-surface-and-overlay-discipline.md |
| References | ADR-009: Icon Role, Placement, and Layout | ~/.copilot/skills/adr/references/adr-009-icon-role-placement-and-layout.md |
| References | ADR-010: Component Architecture & Catalog | ~/.copilot/skills/adr/references/adr-010-component-architecture-and-catalog.md |
| References | ADR-011: Variants & Composition | ~/.copilot/skills/adr/references/adr-011-variants-and-composition.md |
| References | ADR-012: Input & Control Sizing | ~/.copilot/skills/adr/references/adr-012-input-control-sizing.md |
| References | ADR-013: Locale & Number Formatting | ~/.copilot/skills/adr/references/adr-013-locale-and-number-formatting.md |
| References | ADR-014: Build, Buy, or Wrap | ~/.copilot/skills/adr/references/adr-014-build-buy-or-wrap.md |
| References | ADR-015: Interaction Contracts | ~/.copilot/skills/adr/references/adr-015-interaction-contracts.md |
| References | ADR-016: Storybook IA & Navigation | ~/.copilot/skills/adr/references/adr-016-storybook-ia-and-navigation.md |
| References | ADR-017: Documentation Truthfulness | ~/.copilot/skills/adr/references/adr-017-documentation-truthfulness.md |
| References | ADR-018: Docs Authoring Format | ~/.copilot/skills/adr/references/adr-018-docs-authoring-format.md |
| References | ADR-019: Draft & Deprecation State | ~/.copilot/skills/adr/references/adr-019-draft-and-deprecation-state.md |
| References | ADR-020: Docs Folder Convention & IA | ~/.copilot/skills/adr/references/adr-020-docs-folder-convention-and-ia.md |
| References | ADR-021: Self-Documenting Code Examples | ~/.copilot/skills/adr/references/adr-021-code-examples-and-llm-prompts.md |
| References | ADR-022: Mermaid Diagram Selection | ~/.copilot/skills/adr/references/adr-022-mermaid-diagram-selection.md |
| References | ADR-023: Observability & Wide-Events Logging | ~/.copilot/skills/adr/references/adr-023-observability-and-wide-events-logging.md |
| References | ADR-024: Engineering Standards | ~/.copilot/skills/adr/references/adr-024-engineering-standards.md |
| References | ADR-025: Identity, Auth & Secrets | ~/.copilot/skills/adr/references/adr-025-identity-auth-and-secrets.md |
| References | ADR-026: LLM Agent Workflow & Token Discipline | ~/.copilot/skills/adr/references/adr-026-llm-agent-workflow-and-token-discipline.md |
| References | ADR-027: Default Tech Stack | ~/.copilot/skills/adr/references/adr-027-default-tech-stack.md |
| References | ADR-028: Platform Foundations | ~/.copilot/skills/adr/references/adr-028-platform-foundations.md |
| References | ADR-029: Multi-Tenancy by Default | ~/.copilot/skills/adr/references/adr-029-multi-tenancy-by-default.md |
| References | ADR-030: Legal Document Architecture | ~/.copilot/skills/adr/references/adr-030-legal-document-architecture.md |
| References | ADR-031: Legal Drafting & Court Conventions | ~/.copilot/skills/adr/references/adr-031-legal-drafting-and-court-conventions.md |
| References | ADR-032: Legal Output & PDF Workflow | ~/.copilot/skills/adr/references/adr-032-legal-output-and-pdf-workflow.md |
| Scripts | Check_adr | ~/.copilot/skills/adr/scripts/check_adr.py |
| Scripts | Check_index | ~/.copilot/skills/adr/scripts/check_index.py |
| Templates | ADR-NNN: {{Decision as a noun phrase}} | ~/.copilot/skills/adr/templates/adr-template.md |
Source Content
ADR — Architecture Decision Records
| Domain | The decision-record system: authoring, numbering, lifecycle, index |
| Role | Keeper of binding decisions |
| Scope | One record per decision; consolidation; deprecation; the index |
| Output | An ADR file under references/ in the house template, plus an updated index |
Triggers: “write an ADR”, “record this decision”, “supersede ADR-NNN”, “deprecate an ADR”, “what’s our rule for”, “is there an ADR about”, “ADR index”.
An ADR captures one decision and the reasoning behind it, so the next person or agent inherits the why, not just the rule. This skill owns the system; the decisions live in references/.
Use me for
- Writing a new decision record.
- Consolidating overlapping records into one canonical record.
- Superseding or deprecating a decision (move it to
ZZ-deprecated/with a tombstone). - Finding the record that governs a question.
Don’t use me for
- General prose, guides, tutorials →
technical-writing. - Product requirements →
prd-generator. - Enforcing the visual rules at code time →
design-principles(it cites these records).
What an ADR is
One decision per record. A record is immutable once accepted — a changed mind is a new record that supersedes the old one, never an edit that erases history. A number is assigned once and kept stable, so code and agents can cite ADR-008 forever.
Record shape
Copy templates/adr-template.md. The frontmatter carries id, status, collection, supersedes, sources, and tags; the title is the H1, not a duplicated frontmatter field. The body runs Decision → Key rules → (Code patterns) → Why → Applies when → Related.
Collections
Records are grouped, not renumbered, into five collections: Design Foundations, Component System, Storybook & Docs, Engineering & Platform, and Legal Domain. The index lists each.
Lifecycle
| Stage | What happens |
|---|---|
| Proposed | Drafted, status: proposed, open for discussion |
| Accepted | status: accepted — binding; agents may cite it |
| Superseded | A newer record replaces it; the old one gets superseded_by: and moves to ZZ-deprecated/ |
| Deprecated | No longer applies; tombstoned in ZZ-deprecated/ with the reason |
Consolidation keeps the most-cited number (usually the hard-rule one) as canonical and folds the others in via supersedes:; the folded numbers become tombstones.
How I work
- Check the index for an existing record before writing a new one.
- One decision. If the draft holds two decisions, it is two records.
- Copy the template. Fill the frontmatter and body; cite sources in Why.
- Number it. A new decision takes the next free number. A consolidation keeps the most-cited number and lists the rest in
supersedes. - Tombstone the old. Move superseded records to
ZZ-deprecated/withsuperseded_by. - Update the index and run the
technical-writingMarkdown linter.
The short guide: read, use, author
- Read: start at
references/index.md; open only the record(s) for your task. - Use: the Decision and Key rules are binding; cite the record by number.
- Author: copy the template, keep it to one decision, cite sources, update the index, lint to exit 0.
When I’m unsure, I ask
- “Is this a new decision, or does it change an existing one — which means superseding it?”
- “Which collection does this belong to?”
- “What’s the source — a standard, a benchmark, or an internal convention?”
Elicitation tool order: see STANDARDS.md §6.
Self-rubric
- One decision per record.
- Frontmatter complete; sources cited where an external standard applies.
- Number stable; superseded records tombstoned, not deleted.
- Index updated;
technical-writingMarkdown linter exits 0. -
scripts/check_adr.py <file>exits 0. -
scripts/check_index.pyexits 0 — no orphaned ADRs, no broken index links,supersedes/superseded_byreciprocal.
References
templates/adr-template.md— the canonical record shape.references/index.md— the routing map of all active records.references/ZZ-deprecated/— superseded and deprecated records (tombstones).scripts/check_adr.py <adr-file.md>— validates frontmatter status, the five required sections (Decision/Key rules/Why/Applies when/Related), no unfilled{{...}}placeholders, and that asupersededrecord actually lives underreferences/ZZ-deprecated/.scripts/check_index.py [skill-dir]— diffs every ADR’s frontmatteridagainstreferences/index.md, failing on orphans (a record not indexed) or broken index links (an entry pointing at a file that doesn’t exist). Also checkssupersedes/superseded_byfrontmatter is reciprocal between the two records it names. Run after adding, superseding, or deprecating any record.