Back to Skills

develop-adr

product-on-purpose
Updated 2 days ago
5 views
238
33
238
View on GitHub
Metaword

About

This Claude Skill generates Architecture Decision Records in the Nygard format to document significant technical choices. It's used when making decisions affecting system architecture, technology selection, or development patterns. The skill captures the context, decision, and consequences to preserve the reasoning for future teams.

Quick Install

Claude Code

Recommended
Primary
npx skills add product-on-purpose/pm-skills -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/product-on-purpose/pm-skills
Git CloneAlternative
git clone https://github.com/product-on-purpose/pm-skills.git ~/.claude/skills/develop-adr

Copy and paste this command in Claude Code to install this skill

Documentation

<!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->

Architecture Decision Record (ADR)

An Architecture Decision Record documents a significant technical decision along with its context and consequences. ADRs capture the "why" behind architectural choices so future team members understand the reasoning . especially important when they question why something was done a particular way. This skill follows Michael Nygard's lightweight ADR format.

When to Use

  • Making significant technical decisions that affect system architecture
  • Choosing between technology options (frameworks, databases, services)
  • Establishing patterns that future development should follow
  • Documenting the rationale for constraints or non-obvious approaches
  • Preserving institutional knowledge about past decisions

Instructions

When asked to create an ADR, follow these steps:

  1. Assign a Number and Title ADRs are numbered sequentially (ADR-001, ADR-002, etc.) for easy reference. The title should be a short noun phrase describing the decision, like "Use PostgreSQL for order data" or "Adopt React for frontend."

  2. Set the Status New ADRs start as "Proposed." After team review, they become "Accepted," "Deprecated," or "Superseded by ADR-XXX." Status changes should be tracked.

  3. Describe the Context Explain the circumstances that led to this decision. What problem are you solving? What forces are at play (technical constraints, team expertise, timeline, cost)? This section should help a reader who wasn't there understand why this decision was needed.

  4. State the Decision Clearly articulate what you decided. Use active voice: "We will use..." rather than "It was decided..." Be specific about what is and isn't included in the decision.

  5. Document the Consequences List the outcomes of this decision . positive, negative, and neutral. Good ADRs are honest about trade-offs. What becomes easier? What becomes harder? What new constraints or options does this create?

Output Format

Use the template in references/TEMPLATE.md to structure the output.

Quality Checklist

Before finalizing, verify:

  • Title is a short, descriptive noun phrase
  • Status is clearly indicated (Proposed/Accepted/Deprecated/Superseded)
  • Context explains why this decision was needed
  • Decision is stated clearly in active voice
  • Consequences include both positive and negative outcomes
  • ADR can stand alone without requiring other documents

Examples

See references/EXAMPLE.md for a completed example.

GitHub Repository

product-on-purpose/pm-skills
Path: skills/develop-adr
0
agent-skillsai-skillsclaude-codeclaude-desktopdesign-sprintfoundation-sprint

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

polymarket

Meta

This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.

View skill

creating-opencode-plugins

Meta

This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.

View skill

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill