Architecture Design Skill
Design the proposed architecture for a task — what the system should look like when the work is done. Produces a standalone architecture document that requirements can validate against and implementation plans can build from.
When to Use
- User says "plan arc", "design architecture", "propose architecture"
- User has a task or requirements and wants to define the target architecture before planning implementation
- Before
/make-plan to establish the architectural vision
- Before or after
/make-req to give requirements a concrete shape to validate against
Core Principles
- Design the target state. The deliverable is a proposed architecture — what the system should look like after the task is complete. Current architecture is explored as input, not as the output.
- Architecture is the shape, not the steps. This skill defines what components exist, how they relate, and where boundaries fall. It does not define implementation order, test strategy, or migration steps — that's
/make-plan.
- Multiple lenses when warranted. Different aspects of the task may need different architectural perspectives. Use as many lenses as the task demands — no more, no fewer.
- Reviewable and refinable. The output is a standalone document meant to be discussed, challenged, and revised before anyone starts planning implementation.
Critical Constraints
NEVER:
- Modify any source code files
- Include implementation steps, migration strategies, or test plans
- Create files outside
temp/plan-arc/
- Diagram systems unrelated to the task
ALWAYS:
- Use subagents for parallel exploration of the current codebase
- Ground the proposed design in understanding of what exists today
- LOAD the
/mermaid skill before creating any diagram
- LOAD each
/arch-lens-* skill before creating its diagram
- Write to
temp/plan-arc/ directory
Workflow
Step 1: Understand the Task
Read the task description, requirements document, or user-provided context. Identify:
- What the task needs to achieve
- What areas of the system are likely affected
- What architectural questions the design must answer
Step 2: Explore the Current Architecture
Launch parallel Explore subagents to understand the systems the task will touch:
- Component boundaries — What modules, services, or packages exist in the affected area?
- Relationships — How do these components communicate, depend on, or reference each other?
- Patterns and conventions — What architectural patterns does the existing code follow?
- Data — What data flows through the affected area? Where is it stored, read, transformed?
- Extension points — Where does the current architecture anticipate change? Where is it rigid?
The number and focus of subagents depends on the task.
Step 3: Design the Proposed Architecture
Based on the task goals and current system understanding, design the target architecture. Consider:
- What new components are needed?
- What existing components need to change?
- What can remain as-is?
- Where should boundaries fall?
- How should new components integrate with existing ones?
- What patterns from the existing codebase should the design follow or intentionally depart from?
This is the creative step. The design should be the right architecture for the task — not the easiest to implement, not the most conservative change.
Step 4: Select Lenses and Create Diagrams
Choose the architecture lenses that best communicate the proposed design:
| If the design involves... |
Consider Lens |
| Adding/modifying containers, services, or integrations |
C4 Container |
| Changing workflow logic, state machines, or decision flow |
Process Flow |
| Altering data storage, transformations, or information flow |
Data Lineage |
| Restructuring modules, changing dependencies, or layering |
Module Dependency |
| Adding/modifying parallel execution or thread handling |
Concurrency |
| Changing error handling, retry logic, or recovery paths |
Error/Resilience |
| Modifying repository patterns or data access |
Repository Access |
| Changing CLI commands, config, or monitoring |
Operational |
| Adding/modifying validation, trust boundaries, or isolation |
Security |
| Changing build tools, test framework, or quality gates |
Development |
| Affecting multiple user journeys or cross-component flows |
Scenarios |
| Modifying state contracts, field lifecycles, or resume logic |
State Lifecycle |
| Changing deployment topology or infrastructure |
Deployment |
For each selected lens:
- LOAD the corresponding
/arch-lens-* skill using the Skill tool
- Follow that skill's conventions for diagram structure and styling
- Diagrams show the proposed state — annotate new components with
★ prefix and modified components with ● prefix. Use newComponent class for new elements.
Step 5: Write Output
Save to: temp/plan-arc/arc_{topic}_{YYYY-MM-DD_HHMMSS}.md
Output Template
# Proposed Architecture: {Task/Topic}
**Date:** {YYYY-MM-DD}
**Task:** {Brief description of the task or reference to requirements}
## Summary
{What this architecture proposes and why. What are the key design decisions? How does the proposed system differ from what exists today?}
## Current State
{Brief description of the relevant current architecture — enough context to understand what's changing and why. Not a full system map — just what the reader needs to evaluate the proposal.}
## Proposed Design
### {Lens Name} View
**Question:** {The primary question this lens answers}
{Mermaid diagram showing the proposed state, using ★ for new and ● for modified components}
**Design Rationale:**
- {Why this structure was chosen}
- {What alternatives were considered and why this is preferred}
---
{Repeat for each lens used}
---
## Changes from Current State
| Component | Change | Rationale |
|-----------|--------|-----------|
| {name} | New / Modified / Removed | {Why} |
## Architectural Decisions
{Key decisions embedded in this design and the reasoning behind them. These are the things a reviewer should challenge or confirm.}
## Open Questions
{Decisions that could go either way, areas needing input, or uncertainties that should be resolved before implementation planning.}
Output Quality Checks
Before finalizing, verify:
- The proposed design addresses the task goals
- Every new component is integrated — nothing is introduced but left unconnected
- The design follows existing codebase patterns where appropriate and explicitly justifies departures
- Diagrams use arch-lens skill conventions with proper
★/● annotations
- A reader could evaluate whether this is the right architecture without needing to see the codebase
- Open questions are genuine design decisions, not implementation details
Related Skills
/verify-proposed-diag — Verify the proposed architecture diagrams against the codebase. Run after /plan-arc to validate existing components, connection directionality, and integration points.
/make-req — Decompose requirements before or after architecture design
/make-plan — Create implementation plans from the proposed architecture
/mermaid — MUST BE LOADED before creating any diagram
/verify-diag — For verifying diagrams that document current state only (no proposed elements)
1---2name: plan-arc3description: Design the proposed architecture for a task before implementation planning. Use when user says "plan arc", "design architecture", "propose architecture", or wants to define the target system shape before making a plan.4---5
6# Architecture Design Skill
7
8Design the proposed architecture for a task — what the system should look like when the work is done. Produces a standalone architecture document that requirements can validate against and implementation plans can build from.
9
10## When to Use
11
12- User says "plan arc", "design architecture", "propose architecture"
13- User has a task or requirements and wants to define the target architecture before planning implementation
14- Before `/make-plan` to establish the architectural vision
15- Before or after `/make-req` to give requirements a concrete shape to validate against
16
17## Core Principles
18
19- **Design the target state.** The deliverable is a proposed architecture — what the system should look like after the task is complete. Current architecture is explored as input, not as the output.
20- **Architecture is the shape, not the steps.** This skill defines what components exist, how they relate, and where boundaries fall. It does not define implementation order, test strategy, or migration steps — that's `/make-plan`.
21- **Multiple lenses when warranted.** Different aspects of the task may need different architectural perspectives. Use as many lenses as the task demands — no more, no fewer.
22- **Reviewable and refinable.** The output is a standalone document meant to be discussed, challenged, and revised before anyone starts planning implementation.
23
24## Critical Constraints
25
26**NEVER:**
27- Modify any source code files
28- Include implementation steps, migration strategies, or test plans
29- Create files outside `temp/plan-arc/`
30- Diagram systems unrelated to the task
31
32**ALWAYS:**
33- Use subagents for parallel exploration of the current codebase
34- Ground the proposed design in understanding of what exists today
35- LOAD the `/mermaid` skill before creating any diagram
36- LOAD each `/arch-lens-*` skill before creating its diagram
37- Write to `temp/plan-arc/` directory
38
39---
40
41## Workflow
42
43### Step 1: Understand the Task
44
45Read the task description, requirements document, or user-provided context. Identify:
46
47- What the task needs to achieve
48- What areas of the system are likely affected
49- What architectural questions the design must answer
50
51### Step 2: Explore the Current Architecture
52
53Launch parallel Explore subagents to understand the systems the task will touch:
54
55- **Component boundaries** — What modules, services, or packages exist in the affected area?
56- **Relationships** — How do these components communicate, depend on, or reference each other?
57- **Patterns and conventions** — What architectural patterns does the existing code follow?
58- **Data** — What data flows through the affected area? Where is it stored, read, transformed?
59- **Extension points** — Where does the current architecture anticipate change? Where is it rigid?
60
61The number and focus of subagents depends on the task.
62
63### Step 3: Design the Proposed Architecture
64
65Based on the task goals and current system understanding, design the target architecture. Consider:
66
67- What new components are needed?
68- What existing components need to change?
69- What can remain as-is?
70- Where should boundaries fall?
71- How should new components integrate with existing ones?
72- What patterns from the existing codebase should the design follow or intentionally depart from?
73
74This is the creative step. The design should be the right architecture for the task — not the easiest to implement, not the most conservative change.
75
76### Step 4: Select Lenses and Create Diagrams
77
78Choose the architecture lenses that best communicate the proposed design:
79
80| If the design involves... | Consider Lens |
81|---------------------------|---------------|
82| Adding/modifying containers, services, or integrations | C4 Container |
83| Changing workflow logic, state machines, or decision flow | Process Flow |
84| Altering data storage, transformations, or information flow | Data Lineage |
85| Restructuring modules, changing dependencies, or layering | Module Dependency |
86| Adding/modifying parallel execution or thread handling | Concurrency |
87| Changing error handling, retry logic, or recovery paths | Error/Resilience |
88| Modifying repository patterns or data access | Repository Access |
89| Changing CLI commands, config, or monitoring | Operational |
90| Adding/modifying validation, trust boundaries, or isolation | Security |
91| Changing build tools, test framework, or quality gates | Development |
92| Affecting multiple user journeys or cross-component flows | Scenarios |
93| Modifying state contracts, field lifecycles, or resume logic | State Lifecycle |
94| Changing deployment topology or infrastructure | Deployment |
95
96For each selected lens:
97
981. LOAD the corresponding `/arch-lens-*` skill using the Skill tool
992. Follow that skill's conventions for diagram structure and styling
1003. Diagrams show the **proposed state** — annotate new components with `★` prefix and modified components with `●` prefix. Use `newComponent` class for new elements.
101
102### Step 5: Write Output
103
104Save to: `temp/plan-arc/arc_{topic}_{YYYY-MM-DD_HHMMSS}.md`
105
106---
107
108## Output Template
109
110```markdown
111# Proposed Architecture: {Task/Topic}
112
113**Date:** {YYYY-MM-DD}
114**Task:** {Brief description of the task or reference to requirements}
115
116## Summary
117
118{What this architecture proposes and why. What are the key design decisions? How does the proposed system differ from what exists today?}
119
120## Current State
121
122{Brief description of the relevant current architecture — enough context to understand what's changing and why. Not a full system map — just what the reader needs to evaluate the proposal.}
123
124## Proposed Design
125
126### {Lens Name} View
127
128**Question:** {The primary question this lens answers}
129
130{Mermaid diagram showing the proposed state, using ★ for new and ● for modified components}
131
132**Design Rationale:**
133- {Why this structure was chosen}
134- {What alternatives were considered and why this is preferred}
135
136---
137
138{Repeat for each lens used}
139
140---
141
142## Changes from Current State
143
144| Component | Change | Rationale |
145|-----------|--------|-----------|
146| {name} | New / Modified / Removed | {Why} |
147
148## Architectural Decisions
149
150{Key decisions embedded in this design and the reasoning behind them. These are the things a reviewer should challenge or confirm.}
151
152## Open Questions
153
154{Decisions that could go either way, areas needing input, or uncertainties that should be resolved before implementation planning.}
155```
156
157## Output Quality Checks
158
159Before finalizing, verify:
160
161- The proposed design addresses the task goals
162- Every new component is integrated — nothing is introduced but left unconnected
163- The design follows existing codebase patterns where appropriate and explicitly justifies departures
164- Diagrams use arch-lens skill conventions with proper `★`/`●` annotations
165- A reader could evaluate whether this is the right architecture without needing to see the codebase
166- Open questions are genuine design decisions, not implementation details
167
168## Related Skills
169
170- **`/verify-proposed-diag`** — Verify the proposed architecture diagrams against the codebase. Run after `/plan-arc` to validate existing components, connection directionality, and integration points.
171- **`/make-req`** — Decompose requirements before or after architecture design
172- **`/make-plan`** — Create implementation plans from the proposed architecture
173- **`/mermaid`** — MUST BE LOADED before creating any diagram
174- **`/verify-diag`** — For verifying diagrams that document current state only (no proposed elements)