MCPInstall

architecture-decision-record

Create or revise Architecture Decision Records by analyzing the codebase to understand current state, affected code paths, constraints from existing patterns, and trade-offs grounded in implementation reality.

Installs
224
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/aws-samples/sample-well-architected-skills-and-steering --skill architecture-decision-record
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads architecture-decision-record automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Architecture Decision Record

Step 1: Understand the decision

Ask the user:

What architecture decision do you need to document? Please share:

  • Decision title (e.g., "Switch from SQS to EventBridge for event routing")
  • Context — What problem are you solving or what change are you making?
  • Options considered (at least 2) — or ask me to suggest alternatives

If the user has already described the decision, proceed directly.

IMPORTANT: When you are in a codebase, ALWAYS analyze the code first to ground the ADR in implementation reality. When no code is available, proceed with the verbal description but mark implementation sections as "Verify against code."

Step 2: Current State Discovery

Analyze the codebase to understand what exists today.

You MUST examine:

  • Infrastructure-as-code relevant to the decision (CDK, CloudFormation, Terraform)
  • Application code that implements or will be affected by the decision
  • Configuration files, dependency manifests, environment variables
  • Existing patterns and conventions in the codebase
  • Tests that validate current behavior

For the decision context, you MUST document:

  • Current implementation: what exists today with file paths and line numbers
  • Affected code: every file that would need to change for each option
  • Integration points: interfaces, APIs, contracts that each option must satisfy
  • Constraints from existing code: language, framework, patterns that limit options
  • Dependencies: other services or components that depend on the current implementation

You MUST flag:

  • Code that must change for each option (quantify: "Option A touches 3 files, Option B touches 12")
  • Compatibility constraints from existing dependencies
  • Patterns already established that the decision should follow (or explicitly break from with justification)
  • Data migration requirements if the change affects stateful resources

Step 3: Evaluate options with evidence

For each option, provide a concrete analysis:

Implementation effort — not T-shirt sizes, but specifics:

  • Files that change (list them)
  • New dependencies introduced
  • Migration steps required
  • Estimated time delta between options (e.g., "Option A is ~2 weeks, Option B is ~6 weeks based on migration complexity")

WA pillar impact — only for relevant pillars, with specific reasoning:

PillarOption AOption B
{relevant pillar}{impact + why + evidence from code}{impact + why}

Use: ✅ Positive | ➖ Neutral | ⚠️ Trade-off | ❌ Negative

Skip pillars that are genuinely neutral for both options — don't pad the table.

For each non-neutral assessment, you MUST provide:

  • Why this option has this impact (grounded in the code's reality)
  • Specific AWS service, pattern, or code path that creates the benefit or risk
  • Whether it's a temporary trade-off (migration pain) or permanent (architectural constraint)

Operational impact — what changes for the team:

  • Monitoring/alerting changes needed
  • Runbook updates
  • On-call implications
  • Deployment strategy changes

---STOP--- Checkpoint: Options analysis complete — ready to make a recommendation

Evaluated {N} options for "{decision title}". Compared implementation effort ({files affected, migration steps}), WA pillar impact, and operational implications for each option.

Shall I proceed with identifying trade-offs, assessing risks, and producing the final ADR with a recommendation?

Do NOT proceed past this point until the user explicitly confirms.

Step 4: Identify trade-offs and risks

For the recommended option, you MUST explicitly state:

  • What you gain — with evidence of why it matters for THIS workload (not generic benefits)
  • What you give up — with honest assessment of whether it's acceptable given constraints
  • What could go wrong — specific risks during implementation or after, with mitigations
  • Reversibility — how hard is it to undo? What's the escape hatch? What data is one-way?

For rejected options, you MUST explain:

  • Primary rejection reason (one clear sentence)
  • Under what future conditions it becomes the better choice (specific triggers)

Step 5: Produce the ADR

# ADR-{number}: {Decision Title}

## Status
{Proposed | Accepted | Deprecated | Superseded by ADR-X}

## Date
{YYYY-MM-DD}

## Context

### Problem Statement
{What problem? Why now? What triggered this decision?}

### Current State
{What exists today — with file paths and code references}
- `{file:line}` — {what it does and why it's relevant}
- `{file:line}` — {what it does}

### Constraints
{Derived from codebase analysis — not assumptions}
- {constraint} — Evidence: `{file:line}`

### Decision Drivers
{Ordered by priority — what matters most}
1. {driver} — {why, grounded in business or code reality}
2. {driver} — {why}

## Decision
{One clear statement of what we're doing.}

## Options Evaluated

### Option 1: {name} ← Chosen
- **How it works**: {description}
- **Pros**: {benefits grounded in this codebase's reality}
- **Cons**: {drawbacks with honest assessment}
- **Files affected**: {list with paths}
- **Migration**: {what needs to happen to get from current state to this}
- **Effort**: {specific estimate with basis}

### Option 2: {name} — Rejected
- **How it works**: {description}
- **Pros**: {benefits}
- **Cons**: {primary reason for rejection}
- **Files affected**: {list}
- **Effort**: {estimate}
- **Would choose this if**: {specific future condition}

## Well-Architected Impact

| Pillar | Impact | Evidence |
|--------|--------|----------|
| {pillar} | {✅/⚠️/❌} | {specific reasoning tied to code/architecture} |
{Only pillars with non-neutral impact}

## Trade-offs

### What We Gain
- {benefit} — matters because {evidence from this workload}

### What We Accept
- {drawback} — acceptable because {justification}

### Risks
| Risk | Likelihood | Impact | Mitigation |
|------|-----------|--------|------------|
| {specific risk} | {Low/Med/High} | {what breaks} | {concrete action} |

## Implementation

### Migration Path
1. {step} — affects `{file}`
2. {step} — affects `{file}`
3. {step} — verify with {test/metric}

### Rollback Plan
{How to undo if this goes wrong — specific steps, not "revert the change"}

### Verification
- {How to confirm the decision is working as expected}
- {Metric or test that validates success}

## Review Triggers
{Specific, measurable conditions — not "if things change"}
- {metric} exceeds {threshold} (e.g., "p99 latency > 500ms")
- {event} occurs (e.g., "team grows beyond 8 engineers")
- {time} passes (e.g., "re-evaluate after 6 months of production data")

Step 6: Revising an existing ADR

When the user asks to revise or update an ADR:

You MUST:

  • Read the existing ADR file
  • Analyze what changed in the codebase since the ADR was written (git log, file diffs)
  • Determine if the decision still holds or if review triggers have been hit
  • If superseding: create a new ADR that references the old one, explain what changed

Step 7: Offer next steps

After producing the ADR, offer:

Would you like me to:

  • Generate the implementation code for the chosen option?
  • Create the migration script or step-by-step PR plan?
  • Write tests that validate the new architecture?
  • Draft a follow-up ADR for a dependent decision?
  • Check if any review triggers from existing ADRs have been hit?

Calibration Guidance

  • An ADR is a decision log, not a sales pitch — document the REAL trade-offs, including uncomfortable ones
  • Code evidence grounds the decision — "affects 3 files" is better than "low effort"
  • Review triggers with specific thresholds are what makes ADRs useful 6 months later
  • If no code is available, the ADR still has value but mark implementation sections for verification
  • The migration path IS the ADR's most actionable section — make it specific enough that someone could follow it
  • Reversibility is critical to document — irreversible decisions deserve more options analysis
  • Don't pad the WA pillar table — only include pillars where there's a real, non-obvious impact

FAQ

What does the architecture-decision-record skill do?

Create or revise Architecture Decision Records by analyzing the codebase to understand current state, affected code paths, constraints from existing patterns, and trade-offs grounded in implementation reality.

How do I install architecture-decision-record?

Run npx skills add https://github.com/aws-samples/sample-well-architected-skills-and-steering --skill architecture-decision-record in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/architecture-decision-record/ (personal) or .claude/skills/architecture-decision-record/ (project).

Which AI agents can use architecture-decision-record?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is architecture-decision-record safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains architecture-decision-record?

It is published by aws-samples in aws-samples/sample-well-architected-skills-and-steering. It has 224 recorded installs.

More from aws-samples/sample-well-architected-skills-and-steering

View all →

migration-readiness

aws-samples/sample-well-architected-skills-and-steering

Assess a workload's readiness to migrate to AWS by analyzing existing code, dependencies, configurations, and infrastructure to produce evidence-backed findings covering the 7 Rs, risks, and a migration plan.

wa-review

aws-samples/sample-well-architected-skills-and-steering

Open the skill to read its SKILL.md instructions.

wa-guardrails

aws-samples/sample-well-architected-skills-and-steering

Open the skill to read its SKILL.md instructions.

DevOps & Cloud359 installs

aws-well-architected-framework-review

aws-samples/sample-well-architected-skills-and-steering

Open the skill to read its SKILL.md instructions.

DevOps & Cloud314 installs

wafr-facilitator

aws-samples/sample-well-architected-skills-and-steering

Open the skill to read its SKILL.md instructions.

DevOps & Cloud308 installs

wa-builder

aws-samples/sample-well-architected-skills-and-steering

"Learn then Build" — help developers understand AWS Well-Architected best practices for their specific workload, then produce actionable visual artifacts (architecture diagrams with WA annotations, decision trees, improvement roadmaps) they can commit and use. Adapts explanations for beginners and generates artifacts faster for experienced builders. Use when the user wants to understand WA for their project, create architecture diagrams with pillar health overlays, get guided decision flows for architectural choices, or generate a visual improvement roadmap.

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.