adr-writing

Capture architecture decision rationales in a consistent ADR template.

26|4|Updated Apr 9, 2026
One-click install
npx skills add https://github.com/marmelab/crm-builder --skill adr-writing-marmelab
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: adr-writing
Source: https://github.com/marmelab/crm-builder/tree/main/claudeConfig/.claude/skills/adr-writing
Command: npx skills add https://github.com/marmelab/crm-builder --skill adr-writing-marmelab

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It prevents important architectural decisions from being lost in chat or code, so future developers can understand why patterns and dependencies were chosen.

Core Features & Use Cases

  • When to write an ADR: Records only structural decisions (new recurring patterns, new runtime dependencies, deliberate convention departures, and non-obvious schema choices).
  • Consistent, collision-safe naming: Enforces a ticket-id namespaced path (ADR-TASK-XXX-<slug>.md) to avoid duplicate-number conflicts in parallel workstreams.
  • Implementation linkage and commit workflow: Requires a single representative in-code reference comment and a matching docs commit message, so reviewers find the rationale alongside the change.

Quick Start

Load the skill when introducing a structural decision, then write a short ADR using the provided template and naming convention for the relevant ticket.

Frequently Asked Questions about adr-writing

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
When should I write an architecture decision record for my codebase?

An architecture decision record is needed when introducing structural changes like new recurring patterns, runtime dependencies, convention departures, or non-obvious schema choices. It deliberately skips micro-style or file-layout decisions to focus on significant architecture choices.

How do I format an ADR template to capture context and consequences?

To format an ADR template, use a short ≤25-line structure containing Context, Decision, Consequences, and Alternatives sections. This ensures architecture decision rationales are captured concisely for future maintainers without excessive documentation overhead.

How do I name ADR files to avoid numbering conflicts in parallel workstreams?

To avoid numbering conflicts in parallel workstreams, name ADR files using a ticket-id namespaced path format like ADR-TASK-XXX-<slug>.md. This collision-safe naming convention prevents duplicate-number conflicts when multiple developers work concurrently.

How do I link architecture decision records to source code commits?

To link architecture decision records to source code, include a single representative in-code reference comment and ensure a matching documentation commit message. This allows reviewers to find the rationale alongside the actual code change.

Does this ADR format work for documenting micro-style file layout decisions?

No, this ADR format does not work for documenting micro-style or file-layout decisions. It specifically applies to structural decisions like new dependencies and convention departures, deliberately skipping minor file organization choices.