Help us improve
Share bugs, ideas, or general feedback.
From ucai
Designs system architectures, evaluates monolith vs microservices, creates diagrams, analyzes dependencies, chooses databases, plans scalability, makes technical decisions, and reviews designs using ADRs.
npx claudepluginhub joncik91/ucai --plugin ucaiHow this skill is triggered — by the user, by Claude, or both
Slash command
/ucai:architectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
System design, architecture decisions, and technical strategy for any scale and any stack.
Designs system architecture, creates ADRs, evaluates trade-offs, and plans scalability. Use for architecture review, microservices structuring, and infrastructure pattern selection.
Designs high-level system architectures, creates diagrams and ADRs, reviews designs, evaluates trade-offs, and plans scalability for microservices and infrastructure.
Designs software architectures evaluating monolith/microservices/serverless/event-driven/CQRS/hexagonal patterns; generates C4 diagrams, ADRs, bounded contexts, and quality analysis.
Share bugs, ideas, or general feedback.
System design, architecture decisions, and technical strategy for any scale and any stack.
Before designing or recommending anything, establish:
Ask or infer from project files: CLAUDE.md, README.md, package.json, docker-compose.yml, terraform/, .github/workflows/.
For any significant technology decision, search before recommending:
WebSearch: "<decision area> best practices 2025"
WebSearch: "<option A> vs <option B> 2025 comparison"
WebSearch: "<database type> use cases trade-offs 2025"
WebSearch: "<architecture pattern> when to use 2025"
This grounds recommendations in current community consensus, not stale knowledge.
Document every significant decision as a MADR (Markdown Any Decision Record):
# ADR-NNN: <Title>
**Status**: Proposed | Accepted | Deprecated | Superseded by ADR-NNN
## Context
What is the situation forcing this decision?
## Decision
What are we choosing to do?
## Options Considered
| Option | Pros | Cons |
|--------|------|------|
| A | ... | ... |
| B | ... | ... |
## Consequences
What becomes easier? What becomes harder?
## References
- Link to relevant documentation or prior art
Store in docs/decisions/ or adr/.
Before adopting any pattern in this section: (1) question whether the requirement driving it is load-bearing or aspirational — can it be dropped? (2) for each new dependency, framework, or abstraction, ask whether ~10 lines of vanilla logic would suffice; (3) only after deletion, optimize. Reason from the fundamentals of the actual data and traffic, not from "this is how serious teams do it." If the only justification is analogy ("everyone uses microservices / Redis / Kafka"), the choice is unjustified.
requestId, userId, service, duration, error)[User] --> [Your System] --> [External Service A]
--> [External Service B]
<-- [Database]
graph TD
User --> Frontend
Frontend --> API
API --> DB[(Database)]
API --> Cache[(Cache)]
API --> Queue[Message Queue]
Queue --> Worker
Worker --> DB
Before presenting any architecture recommendation: