Preface¶
Most developers who have worked in backend or infrastructure roles for a few years have encountered this scenario: a PR from six months ago switched the primary database from MySQL to PostgreSQL, the person who approved the decision has since left the company, and there is no proper documentation left in the codebase. New team members can only guess the reasoning from migration files, and tremble when modifying table structures for fear of stumbling upon some long-forgotten constraint.
The Architecture Decision Record (ADR) was created to solve this exact problem—documenting “why we chose A over B” directly in the repository, so that future you and your teammates can trace the original context. Michael Nygard popularized this lightweight documentation format in 2011, and Martin Fowler summarized the practice in his Bliki as “short documents + immutability + linking to new ADRs when superseded”.
The challenge lies in this: knowing that ADRs are useful is one thing, but actually following a template for every technical decision is another. The architecture-decision-records Skill in the Cursor ecosystem is a reusable instruction pack that teaches this engineering management workflow to AI Agents. It does not make decisions for you, but will automatically draft ADRs according to specifications when you discuss databases, frameworks, or authentication schemes, filling in alternative options and consequence analysis. This article introduces its positioning, installation, and typical usage based on the official SKILL.md and the awesome-cursor-skills repository.
What It Is¶
architecture-decision-records is an Agent Skill featured in spencerpauly/awesome-cursor-skills, categorized under “Planning & Architecture”. Its core description is:
Document technical decisions as Architecture Decision Records (ADRs) with context, options considered, and rationale.
It follows the universal SKILL.md format and can be used in tools that support the Agent Skills standard, such as Cursor, Claude Code, and Codex CLI. Unlike skills for writing code or running tests, this skill extends Agent capabilities from “completing implementations” to “architecture governance”—helping teams formally document context at the time of decision-making, rather than retroactively writing documentation later.
The Skill metadata sets user-invocable: true, meaning you can explicitly call it via /architecture-decision-records in Agent conversations; it can also be automatically matched and enabled by the Agent based on context during architecture selection discussions.
Core Features and Highlights¶
The official SKILL.md covers the following key capabilities:
1. Clarify “When to Write an ADR”¶
The Skill specifies that ADRs should be written for technical decisions with these characteristics:
- Difficult to reverse in the future
- Affect multiple parts of the system
- Involve tradeoffs between multiple reasonable options
- Likely to be questioned by colleagues six months later about why the choice was made
Typical examples include: selecting a database, introducing a new framework, adjusting authentication policies, refactoring API structures, or introducing new build tools. This aligns with the definition of “architecturally significant decisions” from Nygard’s original article—decisions that affect structure, non-functional characteristics, dependencies, interfaces, or build processes all deserve to be recorded.
2. Built-in ADR Template¶
The Skill provides a reusable Markdown template, recommended to be placed in the docs/decisions/ or adr/ directory and named with a sequential number. The template includes these sections:
| Section | Purpose |
|---|---|
| Status | Record the state: Accepted / Proposed / Deprecated / Superseded by ADR-XXX |
| Date | Decision date |
| Context | Problem background, constraints, and influencing factors |
| Options Considered | At least 2-3 alternative solutions and their pros and cons |
| Decision | Final choice and reasoning |
| Consequences | Subsequent impacts and operational costs from the decision |
The official example is titled “ADR-001: Use PostgreSQL for primary database”, comparing three options: PostgreSQL, MongoDB, and PlanetScale. It lists four selection justifications in the Decision section and details follow-up work such as connection pooling, migration compatibility, and scaling limits in the Consequences section—this approach is an order of magnitude more informative than a simple “We used Postgres”.
3. Six-Step Workflow¶
The Skill defines a standard process:
1. Identify — Recognize the decision being made
2. Research — Investigate at least 2-3 alternative solutions
3. Write — Draft the ADR using the template
4. Review — Get approval via PR or team discussion
5. Merge — Mark as Accepted after review
6. Reference — Link to the ADR in relevant code, e.g. // See ADR-001
4. File Naming and Maintenance Standards¶
The recommended directory structure is:
docs/decisions/
├── 001-use-postgresql.md
├── 002-adopt-trpc-over-rest.md
├── 003-switch-to-pnpm.md
└── template.md
The Skill also includes several writing recommendations:
- Keep the length between 1 and 2 pages
- Use present tense (“We choose X” instead of “We chose X”)
- It’s okay to write the ADR retroactively after the decision
- Superseded ADRs should link to the new ADR instead of being deleted outright
- ADRs record the decision itself, not full design documents
These rules align with community practices from adr.github.io and the spirit of Nygard’s original article: Accepted ADRs should generally not be modified, and changes are made via new ADRs with the status of the old ADR updated accordingly.
Installation and Activation¶
This Skill in the awesome-cursor-skills repository only contains a single SKILL.md file. The installation method is to copy the entire skill directory into the Agent’s skills directory.
Cursor¶
According to the Cursor official documentation, Skills are automatically discovered from these paths:
| Path | Scope |
|---|---|
.cursor/skills/ |
Project-level |
.agents/skills/ |
Project-level |
~/.cursor/skills/ |
User-level (global) |
~/.agents/skills/ |
User-level (global) |
Recommended installation steps:
# Navigate to your project root directory
cd your-project
# Create the skill directory and download the official SKILL.md
mkdir -p .cursor/skills/architecture-decision-records
curl -o .cursor/skills/architecture-decision-records/SKILL.md \
https://raw.githubusercontent.com/spencerpauly/awesome-cursor-skills/main/resources/architecture-decision-records/SKILL.md
You can also manually copy from GitHub:
https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/architecture-decision-records
After installation, open Cursor’s sidebar Customize → Skills, and you should see architecture-decision-records in the Agent Decides section. Since user-invocable: true is set, you can also search and manually call it by typing / in an Agent conversation.
Claude Code / Codex CLI¶
Agent Skills is an open standard (see agentskills.io). Cursor documentation states that for compatibility with Claude and Codex, Skills can also be loaded from .claude/skills/, .codex/skills/, and their corresponding user directories. Simply place the same-named directory in these paths, referring to each tool’s official documentation for specific details.
Typical Usage Examples¶
Scenario 1: Database Selection¶
Enter this in an Agent conversation:
/architecture-decision-records
We need to select a primary database for the new order service, with PostgreSQL and MongoDB as candidates.
The data has clear relational structures, the billing module requires ACID transactions, and the team is familiar with Prisma.
Please draft a decision record according to the ADR template and place it in the docs/decisions/ directory.
The Agent will generate a Markdown file containing Context, Options Considered, Decision, and Consequences sections based on the Skill’s template, and suggest an appropriate numbered filename (e.g. 001-use-postgresql-for-orders.md).
Scenario 2: Framework Migration Discussion¶
We are considering migrating our REST API to tRPC. Please help me draft an ADR.
Compare at least three options: REST, tRPC, and GraphQL, and list the impacts on frontend type safety and deployment.
The Skill requires at least 2-3 alternative solutions to be researched during the Research phase, so the Agent will conduct a comparative analysis instead of just writing a single sentence like “We chose tRPC”.
Scenario 3: Retroactive Documentation¶
This PR already switched the package manager from npm to pnpm, but we didn't write an ADR at the time.
Please draft ADR-003 with the status marked as Accepted directly, and include CI cache changes in the Consequences section.
The Skill explicitly allows retroactive documentation, which is especially useful for governing existing projects.
Template Snippet (from official SKILL.md)¶
Below is the official ADR skeleton, which the Agent will populate with project-specific details:
# ADR-001: Use PostgreSQL for primary database
## Status
Accepted | Proposed | Deprecated | Superseded by ADR-XXX
## Date
2026-04-10
## Context
What is the problem or situation that requires a decision?
Include constraints, requirements, and forces at play.
## Options Considered
### Option A: PostgreSQL
- Pros: ACID compliance, JSON support, mature ecosystem, free
- Cons: Requires managing connections, vertical scaling limits
### Option B: MongoDB
- Pros: Flexible schema, horizontal scaling
- Cons: No transactions across collections, eventual consistency issues
## Decision
We choose **PostgreSQL** because:
1. Our data is relational — users, teams, projects with clear relationships
2. We need ACID transactions for billing operations
3. JSON columns give us schema flexibility where needed
## Consequences
- We need to manage connection pooling (use PgBouncer or Prisma's built-in pool)
- Migrations must be backwards-compatible for zero-downtime deploys
- We accept vertical scaling limits and will shard later if needed
After review and approval, you can reference the ADR number in code, for example:
// See ADR-001 — PostgreSQL chosen for ACID billing requirements
Applicable Scenarios and Notes¶
Who Should Use This¶
- Tech Leads / Architects: Quickly produce reviewable ADR drafts after major selection discussions
- Small and Medium Teams: Without dedicated architecture documentation roles, but needing searchable decision logs
- Open Source Maintainers: Let contributors understand historical design constraints and reduce repetitive arguments
- AI-assisted Development Users: Want Agents to not only write code but also implement engineering specifications
Usage Restrictions¶
- Skills are instructions, not decision engines. It will not make technical judgments for you, and the output quality depends on the completeness of the context you provide.
- Manual review is required. Step 4 of the Skill workflow explicitly requires team review; ADRs generated by Agents should be treated as drafts, not directly marked as Accepted.
- It does not replace full design documents. Detailed designs for complex systems still require independent documentation; ADRs only capture “what was chosen, why, and what the consequences are”.
- Directory conventions must be agreed upon separately. The Skill recommends
docs/decisions/oradr/, but will not automatically create them during installation; you can create the directory and submittemplate.mdin the project before first use. - Complementary to other Skills like saving-workspace-context. The awesome-cursor-skills repository also includes Skills like
saving-workspace-contextfor persisting context across sessions; architecture-decision-records focuses specifically on “formal decision records”.
Summary¶
Technical debt is not only reflected in messy code, but also in “no one remembers why the system was designed this way originally”. architecture-decision-records packages the decade-proven lightweight ADR practice into an executable Agent Skill: when to write, how to write, and how to review and reference, all follow clear guidelines. For teams already using Cursor for daily development, the installation cost is just copying a single SKILL.md file, but it can significantly reduce the risk of architectural knowledge being lost as personnel turnover.
Official Skill address:
https://github.com/spencerpauly/awesome-cursor-skills/tree/main/resources/architecture-decision-records