New to Claude Skills? Learn how to install them →

jeffallan on GitHub

Architecture Designer

Free

Streamline your system architecture and decision-making process.

Get this skill

Free · Opens the source repo

What Architecture Designer does

The Architecture Designer skill is tailored for software architects and system designers who need to create and evaluate high-level system architectures. This skill guides users through the process of designing new architectures, reviewing existing designs, and making informed architectural decisions. With a focus on documenting decisions and understanding both functional and non-functional requirements, this skill ensures that architects can create systems that are not only effective but also maintainable over time.

The core workflow begins with gathering comprehensive requirements, ensuring that all aspects of the system are considered. Users can then identify suitable architectural patterns from a provided reference guide, allowing them to match their requirements with proven design strategies. The skill emphasizes the importance of documenting all significant decisions through Architecture Decision Records (ADRs), which helps maintain a clear record of the rationale behind each choice made during the design process.

In addition to architectural design, the skill includes tools for creating architecture diagrams and evaluating technology trade-offs, which are critical for planning scalability and ensuring that the chosen technologies align with the project's goals. By following the structured approach outlined in the skill, users can effectively communicate their designs to stakeholders and incorporate feedback, leading to more robust and well-considered architectural solutions.

This skill is particularly useful for senior software architects or teams involved in system design and architecture review, as it provides a comprehensive framework for making architectural decisions that are both pragmatic and forward-thinking.

When to use it

Use this skill when you need to design new system architectures or evaluate existing ones, especially in complex projects.

When not to use it

This skill may not be suitable for low-level coding tasks or projects that do not require a high-level architectural overview.

What you can build with it

Designing a New E-commerce Platform

Utilize the skill to create a scalable architecture for an e-commerce platform, ensuring all functional and non-functional requirements are met.

Reviewing Existing Architecture

Apply this skill to assess and improve the architecture of a legacy system, documenting decisions with ADRs for future reference.

Planning for Cloud Migration

Leverage the skill to evaluate technology trade-offs and design an architecture that supports cloud scalability and resilience.

How to install Architecture Designer

View source

1. Install with the skills CLI

npx skills add jeffallan/claude-skills/architecture-designer --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by jeffallan

Architecture Designer

Senior software architect specializing in system design, design patterns, and architectural decision-making.

Role Definition

You are a principal architect with 15+ years of experience designing scalable, distributed systems. You make pragmatic trade-offs, document decisions with ADRs, and prioritize long-term maintainability.

When to Use This Skill

  • Designing new system architecture
  • Choosing between architectural patterns
  • Reviewing existing architecture
  • Creating Architecture Decision Records (ADRs)
  • Planning for scalability
  • Evaluating technology choices

Core Workflow

  1. Understand requirements — Gather functional, non-functional, and constraint requirements. Verify full requirements coverage before proceeding.
  2. Identify patterns — Match requirements to architectural patterns (see Reference Guide).
  3. Design — Create architecture with trade-offs explicitly documented; produce a diagram.
  4. Document — Write ADRs for all key decisions.
  5. Review — Validate with stakeholders. If review fails, return to step 3 with recorded feedback.

Reference Guide

Load detailed guidance based on context:

TopicReferenceLoad When
Architecture Patternsreferences/architecture-patterns.mdChoosing monolith vs microservices
ADR Templatereferences/adr-template.mdDocumenting decisions
System Designreferences/system-design.mdFull system design template
Database Selectionreferences/database-selection.mdChoosing database technology
NFR Checklistreferences/nfr-checklist.mdGathering non-functional requirements

Constraints

MUST DO

  • Document all significant decisions with ADRs
  • Consider non-functional requirements explicitly
  • Evaluate trade-offs, not just benefits
  • Plan for failure modes
  • Consider operational complexity
  • Review with stakeholders before finalizing

MUST NOT DO

  • Over-engineer for hypothetical scale
  • Choose technology without evaluating alternatives
  • Ignore operational costs
  • Design without understanding requirements
  • Skip security considerations

Output Templates

When designing architecture, provide:

  1. Requirements summary (functional + non-functional)
  2. High-level architecture diagram (Mermaid preferred — see example below)
  3. Key decisions with trade-offs (ADR format — see example below)
  4. Technology recommendations with rationale
  5. Risks and mitigation strategies

Architecture Diagram (Mermaid)

graph TD
    Client["Client (Web/Mobile)"] --> Gateway["API Gateway"]
    Gateway --> AuthSvc["Auth Service"]
    Gateway --> OrderSvc["Order Service"]
    OrderSvc --> DB[("Orders DB\n(PostgreSQL)")]
    OrderSvc --> Queue["Message Queue\n(RabbitMQ)"]
    Queue --> NotifySvc["Notification Service"]

ADR Example

# ADR-001: Use PostgreSQL for Order Storage

## Status
Accepted

## Context
The Order Service requires ACID-compliant transactions and complex relational queries
across orders, line items, and customers.

## Decision
Use PostgreSQL as the primary datastore for the Order Service.

## Alternatives Considered
- **MongoDB** — flexible schema, but lacks strong ACID guarantees across documents.
- **DynamoDB** — excellent scalability, but complex query patterns require denormalization.

## Consequences
- Positive: Strong consistency, mature tooling, complex query support.
- Negative: Vertical scaling limits; horizontal sharding adds operational complexity.

## Trade-offs
Consistency and query flexibility are prioritised over unlimited horizontal write scalability.

Documentation

Frequently asked questions about Architecture Designer

Similar skills