Create ADR

VerifiedSafe

Record an architecture decision at the moment it's made, including context, options considered, decision, and consequences in docs/decisions/.

Sby Skills Guide Bot
DocumentationBeginner
6007/23/2026
Claude CodeCursorWindsurfCodex
#adr#architecture-decisions#documentation#decision-log#markdown

Recommended for

Automated summary

Writes numbered Architecture Decision Records into docs/decisions/, capturing the context, the options weighed, the chosen decision and its consequences, with statuses and an index.

Strengths

  • Drafts from the actual conversation, including the losing options and the real trade-offs
  • Requires negative consequences, so the record doesn't read as marketing for the winning choice
  • Handles sequential numbering, the four statuses (proposed, accepted, deprecated, superseded) and the index README
  • Gives explicit criteria for what does and doesn't merit an ADR

Limitations

  • Covers only the ADR file itself: it does not verify code or check that the claims are technically true
  • Recognises only the docs/decisions/ or docs/adr/ conventions, with no configurable path
  • Quality depends on the conversation: without genuinely discussed alternatives the record stays thin
When to use it

Use it the moment a design conversation settles a hard-to-reverse technical choice such as a database, framework, auth model or multi-tenancy strategy.

When not to use it

Skip it for choices reversible in an afternoon, rules already enforced by a linter, or private working notes that never became a team decision.

Security analysis

Safe
Quality score92/100

The skill is a documentation workflow for creating ADRs. It does not declare or instruct use of bash, network calls, secret handling, obfuscated payloads, or destructive operations. File creation is limited to normal documentation paths (docs/decisions/ and an index), and there is no meaningful execution risk.

No concerns found

How this analysis is made

Examples

New database choice
Record this decision: we're going with PostgreSQL instead of MongoDB for the billing service because we need multi-row transactions and our team already runs Postgres in production.
Architecture style
Create an ADR explaining why we chose a modular monolith over microservices for the first release, and include the options we rejected.
En español
Registrar esta decisión de arquitectura: usamos eventos asíncronos en lugar de llamadas síncronas entre el servicio de pedidos y el de facturación.

name: create-adr description: Record an Architecture Decision Record (ADR) at the moment a significant technical decision is made — context, options considered, decision, and consequences — in docs/decisions/NNNN-title.md with proper statuses and index. Use when choosing between technologies, patterns, or approaches with lasting impact. Trigger: "record this decision", "create an ADR", "architecture decision record", "why did we choose", "registrar esta decisión", "crear un ADR", "decisión de arquitectura", or when a conversation settles a hard-to-reverse technical choice. license: MIT metadata: author: jrodrigopuca version: "1.0"

ADR Generator

Record architecture decisions when they happen, not months later from archaeology.

Overview

An Architecture Decision Record captures one significant decision: the forces that shaped it, the options weighed, what was chosen, and what it costs. Six months later, "why is this a monolith?" has an answer with context — instead of a shrug and a rewrite that re-learns the original constraints the hard way.

The moment of maximum knowledge about a decision is the moment it's made. That's when this skill runs — typically right after a design conversation settles something.

When a Decision Merits an ADR

✅ Hard to reverse: database choice, framework, auth model, API paradigm, multi-tenancy strategy ✅ Cross-cutting: error handling policy, monorepo layout, state management approach, event schema ✅ Expensive either way: build vs buy, sync vs async processing, consistency trade-offs ✅ Repeatedly asked: if the same "why do we…?" comes up twice, the answer belongs in an ADR

❌ Reversible in an afternoon (a util's name, a folder move) ❌ Enforced by a linter (that's config, not a decision) ❌ Personal working notes → context-compactor (.context/decisions/ is the private draft space; ADRs are the team-facing record — a .context decision note can graduate into an ADR)

Instructions

1. Locate or Create the Log

  • Convention: docs/decisions/ (also accept an existing docs/adr/ — follow what's there)
  • Numbering: NNNN-kebab-title.md, sequential (0001-…). Check the highest existing number first
  • If this is the repo's first ADR, create docs/decisions/README.md (index) using references/template.md

2. Draft From the Actual Conversation

Fill the template with what was really discussed — including the losing options and the real trade-offs. An ADR that only praises the winner is marketing, not a record:

# NNNN. {Decision title — a statement, not a question}

Date: {YYYY-MM-DD}
Status: accepted

## Context

{The forces: requirements, constraints, scale, team reality, deadlines.
What makes this decision necessary NOW. 1-3 paragraphs.}

## Options Considered

### Option A — {name}
{2-4 lines: what it is, its strongest pro, its worst con — honestly}

### Option B — {name}
{same}

## Decision

{What was chosen and the decisive reason(s). Present tense: "We use X."}

## Consequences

**Positive:** {what this buys}
**Negative:** {what this costs — every real decision costs something}
**Follow-ups:** {migrations, spikes, revisit triggers: "reevaluate if we exceed 10k req/s"}

Rules:

  • Consequences must include negatives. No negatives = the options weren't seriously compared.
  • Evidence over vibes. "Benchmarked at 3x our peak load" beats "very fast". Link the spike/benchmark if one exists.
  • Present tense, active voice. "We use PostgreSQL", not "it was decided that…"

3. Set the Status

| Status | Meaning | | ------------ | ---------------------------------------------- | | proposed | Under discussion; PR open for the ADR itself | | accepted | In force | | deprecated | No longer applies (context disappeared) | | superseded by [{NNNN}]({NNNN}-title.md) | Replaced — link forward |

Accepted ADRs are immutable (like released changelog entries): to change course, write a new ADR that supersedes the old one and update the old status line. History is the point.

4. Update the Index

Add a row to docs/decisions/README.md: number, title, status, date. Keep it sorted by number.

5. Link It

  • Reference the ADR from the code/PR it affects: See docs/decisions/0007-….md
  • If using-commit is in play: docs(adr): record decision on event bus (ADR-0007)
  • create-software-docs's architecture doc should cite ADRs instead of re-explaining decisions

Suite Integration

  • Upstream: design conversations, sdd-style explorations, .context/decisions/ drafts
  • Downstream: create-software-docs (its create-adrs sub-skill reuses this format and backfills historical decisions from code evidence — this skill records them fresh, which is always better)
  • Trigger discipline: when a chat with the user lands a significant choice, offer the ADR ("Want me to record this as ADR-0008?") — don't create files unasked

Example

Conversation outcome: team chose server-side rendering with Next.js over the existing SPA for the storefront, driven by SEO and TTFB on mobile.

Result: docs/decisions/0004-adopt-nextjs-ssr-for-storefront.md — context cites the Core Web Vitals report and lost organic traffic; options: keep SPA + prerender service, Astro, Next.js SSR; consequences include the negative ("hosting cost rises, team must learn RSC; revisit if hosting exceeds $X/mo") — and the index gains one row.

Resources

Related skills