Software architecture research and design toolkit. Research technology stacks, design patterns, system architectures, and create Architecture Decision Records (ADRs) for informed technology choices.
Researches technology stacks, designs system architectures, and creates Architecture Decision Records (ADRs).
/plugin marketplace add flight505/claude-project-planner/plugin install claude-project-planner@claude-project-plannerThis skill is limited to using the following tools:
Architecture research is a systematic process for evaluating technology options, design patterns, and system architectures. Create Architecture Decision Records (ADRs) to document decisions with context, rationale, and trade-offs. Use this skill to make informed technology choices backed by real research.
This skill should be used when:
When documenting architecture decisions, always include diagrams.
Use the project-diagrams skill to generate:
python .claude/skills/project-diagrams/scripts/generate_schematic.py "diagram description" -o diagrams/output.png
Before researching solutions, understand the problem space.
Functional Requirements:
Non-Functional Requirements (Quality Attributes):
| Attribute | Questions to Answer |
|---|---|
| Performance | Response time targets? Throughput requirements? |
| Scalability | Expected growth? Peak loads? Scaling dimensions? |
| Availability | Uptime requirements? Recovery time objectives? |
| Security | Authentication needs? Data sensitivity? Compliance? |
| Maintainability | Team size? Skill levels? Update frequency? |
| Cost | Budget constraints? Operational cost limits? |
Technical Constraints:
Organizational Constraints:
Research options systematically using real documentation and benchmarks.
For each technology option:
Official Documentation Review
research-lookup to find official docsProduction Case Studies
Benchmark Data
Community Health
Total Cost of Ownership
Create a comparison matrix for each decision area:
comparison:
category: "Database"
options:
- name: "PostgreSQL"
pros:
- "ACID compliance"
- "Rich feature set"
- "Strong community"
cons:
- "Vertical scaling primarily"
- "Operational complexity at scale"
fit_score: 8 # 1-10
sources:
- "Official PostgreSQL documentation"
- "Benchmark: TPC-C results"
- name: "MongoDB"
pros:
- "Horizontal scaling"
- "Flexible schema"
- "Developer friendly"
cons:
- "Eventual consistency trade-offs"
- "Memory usage"
fit_score: 6
sources:
- "MongoDB documentation"
- "Case study: Company X migration"
Research architectural patterns appropriate for the problem.
| Pattern | When to Use | Trade-offs |
|---|---|---|
| Monolithic | Small team, simple domain, rapid MVP | Scaling limits, deployment coupling |
| Microservices | Large team, complex domain, independent scaling | Operational complexity, network overhead |
| Event-Driven | Async workflows, decoupled systems, audit trails | Eventual consistency, debugging complexity |
| Serverless | Variable load, simple functions, cost optimization | Cold starts, vendor lock-in, state management |
| CQRS | Read/write asymmetry, complex queries | Complexity, eventual consistency |
| Hexagonal | Testability, multiple interfaces, long-lived systems | Initial overhead, abstraction complexity |
For each pattern considered:
Document decisions in ADR format for future reference.
# ADR-NNN: [Title]
## Status
[Proposed | Accepted | Deprecated | Superseded by ADR-XXX]
## Context
What is the issue that we're seeing that is motivating this decision or change?
## Decision Drivers
- [Driver 1]
- [Driver 2]
- [Driver 3]
## Considered Options
1. [Option 1]
2. [Option 2]
3. [Option 3]
## Decision
We will use [Option X] because [reasoning].
## Rationale
Detailed explanation of why this option was chosen over alternatives.
### Option 1: [Name]
**Pros:**
- Pro 1
- Pro 2
**Cons:**
- Con 1
- Con 2
**Evidence:**
- [Source/benchmark/case study]
### Option 2: [Name]
[Same structure]
## Consequences
### Positive
- [Consequence 1]
- [Consequence 2]
### Negative
- [Consequence 1]
- [Mitigation strategy]
### Risks
- [Risk 1] - Mitigation: [Strategy]
## Related Decisions
- [ADR-XXX: Related decision]
## References
- [Link to documentation]
- [Link to benchmark]
- [Link to case study]
Do:
Don't:
Use the C4 model to document architecture at multiple levels.
Shows the system in context with users and external systems.
Include:
python .claude/skills/project-diagrams/scripts/generate_schematic.py \
"C4 Context diagram: [System Name] in center. \
Users: [User types]. \
External systems: [Systems]. \
Arrows showing relationships." \
-o diagrams/c4_context.png
Shows high-level technology choices.
Include:
python .claude/skills/project-diagrams/scripts/generate_schematic.py \
"C4 Container diagram: \
Web App (React), API (Node.js), Database (PostgreSQL). \
Show communication protocols between containers." \
-o diagrams/c4_container.png
Shows components within a container.
Include:
UML class diagrams or code structure for complex components.
# Technology Research: [Category]
## Executive Summary
[2-3 sentence summary of recommendation]
## Requirements Addressed
- [Requirement 1]
- [Requirement 2]
## Options Evaluated
### Option 1: [Name]
**Overview:** [Brief description]
**Fit Score:** [X/10]
**Strengths:**
- [Strength 1]
- [Strength 2]
**Weaknesses:**
- [Weakness 1]
- [Weakness 2]
**Evidence:**
- [Source 1]: [Finding]
- [Source 2]: [Finding]
**Cost Estimate:** [Monthly/Annual]
[Repeat for each option]
## Comparison Matrix
| Criterion | Weight | Option 1 | Option 2 | Option 3 |
|-----------|--------|----------|----------|----------|
| Performance | 25% | | | |
| Scalability | 20% | | | |
| Cost | 20% | | | |
| Team Fit | 15% | | | |
| Ecosystem | 10% | | | |
| Risk | 10% | | | |
| **Total** | 100% | | | |
## Recommendation
[Recommended option with justification]
## References
1. [Source 1]
2. [Source 2]
# Architecture Overview: [Project Name]
## System Context
[C4 Context diagram]
[Description of system boundaries and external dependencies]
## High-Level Architecture
[C4 Container diagram]
[Description of major components and technology choices]
## Key Architecture Decisions
| Decision | ADR | Status |
|----------|-----|--------|
| Database Selection | ADR-001 | Accepted |
| Authentication | ADR-002 | Accepted |
| Deployment Platform | ADR-003 | Proposed |
## Quality Attributes
### Performance
- Target: [Metrics]
- Approach: [Strategy]
### Scalability
- Target: [Metrics]
- Approach: [Strategy]
### Security
- Requirements: [List]
- Approach: [Strategy]
## Technology Stack
| Layer | Technology | Rationale |
|-------|------------|-----------|
| Frontend | | |
| API | | |
| Database | | |
| Cache | | |
| Queue | | |
| Infrastructure | | |
## Integration Points
| System | Integration Type | Protocol | Notes |
|--------|-----------------|----------|-------|
| | | | |
## References
- [Link to detailed ADRs]
- [Link to C4 diagrams]
research-lookup for every major decisionBefore completing architecture research:
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.