Get the FREE Ultimate OpenClaw Setup Guide →

adr-format-nygard

Scanned
npx machina-cli add skill zircote/adr/adr-format-nygard --openclaw
Files (1)
SKILL.md
4.3 KB

Nygard ADR Format

The Nygard format is the original ADR template created by Michael Nygard in 2011. It is simple, focused, and widely adopted as the classic ADR format.

About Nygard Format

The Nygard format is:

  • Simple - Five sections only
  • Focused - Emphasizes context, decision, consequences
  • Value-neutral - Context describes facts without judgment
  • Concise - Designed for quick documentation

Template Structure

# {NUMBER}. {TITLE}

Date: {DATE}

## Status

{STATUS}

## Context

{Describe the forces at play}

## Decision

{State what was decided}

## Consequences

{Describe the resulting context}

Section Guide

Title

Format: # {NUMBER}. {TITLE}

Example: # 4. Use REST for External APIs

Date

The date the decision was made or proposed.

Format: YYYY-MM-DD or natural date

Status

What is the status of this decision?

Values: Proposed, Accepted, Deprecated, Superseded by ADR-XXX

Context

Describe the forces at play:

  • Technological factors
  • Political factors
  • Social factors
  • Project-specific factors

Key principle: Language should be value-neutral. Describe facts, not opinions.

Good example:

## Context

The mobile team needs to integrate with our backend services. They have
expertise in React Native and prefer RESTful APIs. Our current internal
services use gRPC, which would require significant mobile-side changes.
External API traffic is expected to be 10% of total traffic.

Decision

State what was decided:

  • Record what was decided, not how it was reached
  • Keep it brief and direct
  • Use active voice

Good example:

## Decision

We will expose external APIs using REST over HTTPS. Internal services
will continue using gRPC. A gateway service will translate between
REST and gRPC for external requests.

Consequences

Describe the resulting context:

  • List all consequences, not just positive ones
  • Include positive, negative, and neutral outcomes
  • Consider future implications

Good example:

## Consequences

External consumers will have a familiar REST interface to work with.
The mobile team can use their existing REST client libraries. We
will need to maintain two API styles (REST external, gRPC internal).
The gateway introduces an additional point of failure and latency.
API versioning will need a clear strategy for the REST endpoints.

When to Use Nygard Format

Best for:

  • Quick decision documentation
  • Straightforward technical choices
  • Teams preferring simplicity
  • Decisions with clear single option

Consider other formats when:

  • Multiple options need detailed comparison
  • Complex trade-off analysis required
  • Detailed pros/cons documentation needed

Nygard Format Best Practices

Context Section

  • Do describe forces objectively
  • Do include constraints
  • Don't include opinions or preferences
  • Don't justify the decision here

Decision Section

  • Do state the decision clearly
  • Do be specific and actionable
  • Don't explain the reasoning (that's in consequences)
  • Don't list alternatives

Consequences Section

  • Do list all consequences
  • Do include negatives
  • Don't only list benefits
  • Don't hide trade-offs

Comparison with Other Formats

AspectNygardMADR
Sections510
Options documentedImplicitExplicit
Pros/consIn consequencesSeparate section
ComplexityLowMedium

Additional Resources

Templates

Template available at: ${CLAUDE_PLUGIN_ROOT}/templates/nygard/adr-template.md

Related Skills

  • adr-fundamentals - ADR basics and lifecycle management
  • adr-quality - Quality criteria and review process
  • adr-format-madr - Alternative: Feature-rich MADR format
  • adr-format-y-statement - Alternative: Concise Y-Statement format
  • adr-format-alexandrian - Alternative: Pattern-based format

External Resources

  • Original blog post: Documenting Architecture Decisions by Michael Nygard (2011)

Source

git clone https://github.com/zircote/adr/blob/main/skills/adr-format-nygard/SKILL.mdView on GitHub

Overview

The Nygard ADR Format is the original five section decision template. It emphasizes neutral context, a concise decision, and a comprehensive list of consequences. It remains widely adopted for quick, focused architectural decisions.

How This Skill Works

Create a Markdown document with five sections: Title, Date, Status, Context, Decision, and Consequences. Write the Context objectively, state the decision in a concise active voice, and list all consequences including negatives. This structure keeps decisions clear, traceable, and easy to revisit.

When to Use It

  • You need a quick, single option decision documented
  • Teams prefer a classic five section ADR template for clarity
  • You must capture neutral context and concrete consequences
  • You want a lightweight ADR that is easy to maintain
  • Documenting decisions that should be traceable and revisitable

Quick Start

  1. Step 1: Create a Markdown file named ADR-<NUMBER>-<TITLE>.md and start with a header like # <NUMBER>. <TITLE>, plus the Date
  2. Step 2: Fill in Status, Context, Decision, and Consequences sections with neutral language and concrete details
  3. Step 3: Review for clarity, ensure the status is current, and store in the ADR repository

Best Practices

  • Keep the template to five sections: Title, Date, Status, Context, Decision, Consequences
  • Describe forces objectively in Context and include constraints
  • State the Decision clearly in active voice and be specific
  • List all consequences including negatives and trade offs in Consequences
  • Avoid opinionated language in Context and do not justify the decision there

Example Use Cases

  • Example ADR 4. Use REST for External APIs: external APIs use REST over HTTPS; internal services continue using gRPC; a gateway translates between REST and gRPC.
  • Example ADR 12. Move to a canonical data model: adopt a single canonical data model; plan migrations; ensure backward compatibility.
  • Example ADR 3. Decommission legacy API: sunset plan proposed; migration window defined; deprecation communicated to users.
  • Example ADR 7. Add feature flag for beta: context requires controlled rollout; decision enable a beta flag; consequences include staged deployment and monitoring.
  • Example ADR 2. Introduce internal service registry: decision implement a service registry; consequences include health checks, monitoring, and fallback strategies.

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers