Claude Skill

create-adr

Creates a NEW Architectural Decision Record (ADR) documenting a specific architectural decision. Use when the user requests "Create ADR for [topic]", "Document decision about [topic]", "Write ADR for [choice]", or when documenting technology choices, patterns, or architectural ap

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download codenamev-ai-software-architect-skills_create-adr-24a947b.zip · 2 KB
Part of codenamev/ai-software-architect — 4 skills

Install

skills CLI npx skills add https://github.com/codenamev/ai-software-architect/tree/main/skills/create-adr
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install codenamev-ai-software-architect@llmmart
Git git clone https://github.com/codenamev/ai-software-architect.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole codenamev/ai-software-architect collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Create Architectural Decision Record (ADR)

Creates structured ADRs following the framework's template.

Process

1. Gather Context

Ask if needed:

  • What decision is being made?
  • What problem does it solve?
  • What alternatives were considered?
  • What are the trade-offs?

2. Generate ADR Number

# Find highest ADR number
ls .architecture/decisions/adrs/ | grep -E "^ADR-[0-9]+" | sed 's/ADR-//' | sed 's/-.*//' | sort -n | tail -1

New ADR = next sequential number (e.g., if highest is 003, create 004)

3. Validate and Sanitize Input

Security: Sanitize user input to prevent path traversal and injection:

  • Remove or replace: .., /, \, null bytes, control characters
  • Convert to lowercase kebab-case: spaces → hyphens, remove special chars
  • Limit length: max 80 characters for filename portion
  • Validate result: ensure filename contains only [a-z0-9-]

4. Create Filename

Format: ADR-XXX-kebab-case-title.md

Examples:

  • ADR-001-use-react-for-frontend.md
  • ADR-002-choose-postgresql-database.md

Valid input: "Use React for Frontend" → use-react-for-frontend Invalid blocked: "../etc/passwd" → sanitized or rejected

5. Check Configuration

  • Read .architecture/config.yml to check if pragmatic_mode is enabled
  • If enabled and applies to ADR creation, include Pragmatic Enforcer analysis

6. Write ADR

Use the template from .architecture/templates/adr-template.md:

Core sections:

  • Status, Context, Decision Drivers, Decision, Consequences
  • Implementation, Alternatives Considered, Validation, References

If pragmatic_mode is enabled: Add Pragmatic Enforcer Analysis section:

  • Necessity Assessment (0-10): Current need, future need, cost of waiting, evidence
  • Complexity Assessment (0-10): Added complexity, maintenance, learning curve, dependencies
  • Alternative Analysis: Review if simpler alternatives adequately considered
  • Simpler Alternative Proposal: Concrete proposal for simpler approach
  • Recommendation: Approve / Approve with simplifications / Defer / Recommend against
  • Pragmatic Score: Necessity, Complexity, Ratio (target <1.5)
  • Overall Assessment: Appropriate engineering vs over-engineering

If deferrals enabled: Track deferred decisions in .architecture/deferrals.md

7. Save ADR

Write to: .architecture/decisions/adrs/ADR-XXX-title.md

8. Report to User

Created ADR-XXX: [Title]

Location: .architecture/decisions/adrs/ADR-XXX-title.md
Status: [Status]

Key Points:
- Decision: [Summary]
- Main benefit: [Key benefit]
- Main trade-off: [Key trade-off]

Next Steps:
- [Immediate action 1]
- [Immediate action 2]

When to Create ADRs

Do create for:

  • Technology choices (frameworks, databases, languages)
  • Architectural patterns (microservices, event-driven, etc.)
  • Infrastructure decisions (cloud provider, deployment)
  • Security approaches (authentication, encryption)

Don't create for:

  • Implementation details (function names, variable names)
  • Temporary decisions
  • Minor decisions with limited impact

Status Lifecycle

  • Proposed: Documented but not approved
  • Accepted: Approved and should be implemented
  • Deprecated: No longer best practice
  • Superseded: Replaced by newer ADR (reference it)

Related Skills

Before Creating ADR:

  • "What's our architecture status?" - Check existing ADRs to avoid duplication
  • "List architecture members" - See who should review the decision

After Creating ADR:

  • "Ask [specialist] to review [the ADR]" - Get focused expert review
  • "Start architecture review for [version]" - Include in comprehensive review

Workflow Examples:

  1. Create ADR → Ask Security Specialist to review → Revise ADR
  2. Architecture review → Create ADRs for key decisions → Status check

Notes

  • Focus on "why" more than "what"
  • Be honest about trade-offs
  • Keep it concise but complete
  • ADRs can be updated as new information emerges
Files (ai-software-architect)
  • SKILL.md 4.4 KB
    ---
    name: create-adr
    description: Creates a NEW Architectural Decision Record (ADR) documenting a specific architectural decision. Use when the user requests "Create ADR for [topic]", "Document decision about [topic]", "Write ADR for [choice]", or when documenting technology choices, patterns, or architectural approaches. Do NOT use for reviews (use architecture-review or specialist-review), checking existing ADRs (use architecture-status), or general documentation.
    allowed-tools: Read,Write,Glob,Grep,Bash(ls:*)
    disable-model-invocation: true
    ---
    
    # Create Architectural Decision Record (ADR)
    
    Creates structured ADRs following the framework's template.
    
    ## Process
    
    ### 1. Gather Context
    Ask if needed:
    - What decision is being made?
    - What problem does it solve?
    - What alternatives were considered?
    - What are the trade-offs?
    
    ### 2. Generate ADR Number
    ```bash
    # Find highest ADR number
    ls .architecture/decisions/adrs/ | grep -E "^ADR-[0-9]+" | sed 's/ADR-//' | sed 's/-.*//' | sort -n | tail -1
    ```
    New ADR = next sequential number (e.g., if highest is 003, create 004)
    
    ### 3. Validate and Sanitize Input
    **Security**: Sanitize user input to prevent path traversal and injection:
    - Remove or replace: `..`, `/`, `\`, null bytes, control characters
    - Convert to lowercase kebab-case: spaces → hyphens, remove special chars
    - Limit length: max 80 characters for filename portion
    - Validate result: ensure filename contains only [a-z0-9-]
    
    ### 4. Create Filename
    Format: `ADR-XXX-kebab-case-title.md`
    
    Examples:
    - `ADR-001-use-react-for-frontend.md`
    - `ADR-002-choose-postgresql-database.md`
    
    **Valid input**: "Use React for Frontend" → `use-react-for-frontend`
    **Invalid blocked**: "../etc/passwd" → sanitized or rejected
    
    ### 5. Check Configuration
    - Read `.architecture/config.yml` to check if pragmatic_mode is enabled
    - If enabled and applies to ADR creation, include Pragmatic Enforcer analysis
    
    ### 6. Write ADR
    Use the template from `.architecture/templates/adr-template.md`:
    
    **Core sections**:
    - Status, Context, Decision Drivers, Decision, Consequences
    - Implementation, Alternatives Considered, Validation, References
    
    **If pragmatic_mode is enabled**: Add Pragmatic Enforcer Analysis section:
    - Necessity Assessment (0-10): Current need, future need, cost of waiting, evidence
    - Complexity Assessment (0-10): Added complexity, maintenance, learning curve, dependencies
    - Alternative Analysis: Review if simpler alternatives adequately considered
    - Simpler Alternative Proposal: Concrete proposal for simpler approach
    - Recommendation: Approve / Approve with simplifications / Defer / Recommend against
    - Pragmatic Score: Necessity, Complexity, Ratio (target <1.5)
    - Overall Assessment: Appropriate engineering vs over-engineering
    
    **If deferrals enabled**: Track deferred decisions in `.architecture/deferrals.md`
    
    ### 7. Save ADR
    Write to: `.architecture/decisions/adrs/ADR-XXX-title.md`
    
    ### 8. Report to User
    ```
    Created ADR-XXX: [Title]
    
    Location: .architecture/decisions/adrs/ADR-XXX-title.md
    Status: [Status]
    
    Key Points:
    - Decision: [Summary]
    - Main benefit: [Key benefit]
    - Main trade-off: [Key trade-off]
    
    Next Steps:
    - [Immediate action 1]
    - [Immediate action 2]
    ```
    
    ## When to Create ADRs
    **Do create for**:
    - Technology choices (frameworks, databases, languages)
    - Architectural patterns (microservices, event-driven, etc.)
    - Infrastructure decisions (cloud provider, deployment)
    - Security approaches (authentication, encryption)
    
    **Don't create for**:
    - Implementation details (function names, variable names)
    - Temporary decisions
    - Minor decisions with limited impact
    
    ## Status Lifecycle
    - **Proposed**: Documented but not approved
    - **Accepted**: Approved and should be implemented
    - **Deprecated**: No longer best practice
    - **Superseded**: Replaced by newer ADR (reference it)
    
    ## Related Skills
    
    **Before Creating ADR**:
    - "What's our architecture status?" - Check existing ADRs to avoid duplication
    - "List architecture members" - See who should review the decision
    
    **After Creating ADR**:
    - "Ask [specialist] to review [the ADR]" - Get focused expert review
    - "Start architecture review for [version]" - Include in comprehensive review
    
    **Workflow Examples**:
    1. Create ADR → Ask Security Specialist to review → Revise ADR
    2. Architecture review → Create ADRs for key decisions → Status check
    
    ## Notes
    - Focus on "why" more than "what"
    - Be honest about trade-offs
    - Keep it concise but complete
    - ADRs can be updated as new information emerges
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related