Skip to main content
AI/MLWaterplanAI

ac-tools-adr

Documents architecture decisions with auto-numbering following the ADR pattern. Triggers on keywords: adr, architecture decision, decision record

Stars
31
Source
WaterplanAI/agentic-config
Updated
2026-05-25
Slug
WaterplanAI--agentic-config--ac-tools-adr
View on GitHubRaw SKILL.md

// install — copy + paste into any project

mkdir -p .claude/skills && curl -fsSL https://raw.githubusercontent.com/WaterplanAI/agentic-config/HEAD/packages/pi-ac-tools/skills/ac-tools-adr/SKILL.md -o .claude/skills/ac-tools-adr.md

Drops the SKILL.md into .claude/skills/ac-tools-adr.md. Works with Claude Code, Cursor, and any agent that loads SKILL.md files from .claude/skills/.

Architecture Decision Record (ADR) Command

Document architecture decisions following the ADR pattern. Auto-generates next ADR number and updates index.

Arguments

  • Optional: <decision_context> - If provided, document that specific decision
  • No argument: Infer decision from recent conversation context

Pre-Flight Checks

  1. Ensure ADR directory exists:

    • Check for adrs/ directory in current working directory
    • If missing: Create adrs/ directory
  2. Ensure index exists:

    • Check for adrs/000-index.md
    • If missing: Create default index template:
      # Architecture Decision Records (ADR) Index
      
      > Critical decisions that govern development. **Read before implementing.**
      
      ## Index
      
      | # | Decision | Status | Date |
      |---|----------|--------|------|
      
      ## Usage
      
      ADRs document significant architectural and policy decisions. Each entry follows format:
      `NNN-<title>.md` where NNN is zero-padded sequence number.
      
      ### Creating New ADR
      Use `/skill:ac-tools-adr` command or manually:
      1. Create file `adrs/NNN-title.md`
      2. Add entry to this index
      3. Commit: `adr(NNN): <title>`
      
  3. Read ADR index: adrs/000-index.md

    • Extract highest existing ADR number
    • Generate next number (NNN format: zero-padded 3 digits)
  4. Validate decision context:

    • If argument provided: Use that as decision context
    • If no argument: Infer from recent conversation (last 2-3 messages)
    • If unclear: STOP and ask user to clarify decision to document

Execution

  1. Generate ADR metadata:

    • Number: Next sequential (e.g., 001, 002, 003)
    • Title: Extract from decision context (kebab-case slug)
    • Date: Current date (YYYY-MM-DD format)
    • Status: "Accepted" (default)
  2. Create ADR file: adrs/NNN-<slug>.md

    # NNN - <Title>
    
    **Status**: Accepted
    **Date**: <YYYY-MM-DD>
    
    ## Context
    <Why this decision was needed - problem statement, constraints, requirements>
    
    ## Decision
    <What was decided - clear statement of the chosen approach>
    
    ## Consequences
    <Implications and trade-offs:>
    - **Positive**: <benefits>
    - **Negative**: <costs, limitations>
    - **Neutral**: <other impacts>
    
    ## References
    <Related docs, specs, links if any>
    
  3. Update index: adrs/000-index.md

    • Add new row to table:
      | NNN | [<Title>](./NNN-<slug>.md) | Accepted | YYYY-MM-DD |
      
  4. Commit changes:

    git add adrs/NNN-<slug>.md adrs/000-index.md && git commit -m "adr(NNN): <title>"
    

Output

Report in markdown format:

  • ADR number created
  • File path (absolute)
  • Title
  • Commit status

Example Usage

/skill:ac-tools-adr Use pnpm for package management

Creates:

  • File: adrs/001-use-pnpm-for-package-management.md
  • Updates: adrs/000-index.md
  • Commit: adr(001): use pnpm for package management