architecture-design
Skill331 starsChanged 8 months agoMITView on GitHub
When the user needs to design or evaluate system architecture — service boundaries, data models, API contracts, infrastructure topology, database selection, or dependency analysis. Also activate for "design the system", "how should I architect this", "monolith vs microservices", or architecture decision records.
We split this skill into the rules it gives an agent
5 rules. 0 are common, 4 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 21 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 77
Hybrid approach: Start monolith. Extract a service only when a module has significantly different scaling needs, a team needs independent …
- Very specific: line 83
Use five fields: Status (Proposed/Accepted/Deprecated/Superseded), Context (what prompted the decision), Decision (what was chosen and …
- Distinctive: line 86
Every entity has a clear owner (one module writes, others read via API)
- Distinctive: line 87
Use UUIDs for primary keys if multi-service or future extraction is likely
- Distinctive: line 92
Avoid distributed transactions — use sagas or eventual consistency
“Common” is measured: kept by at least 6 in 10 of the 21 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Architecture Design
When to Use
- Starting a new product or major feature that needs system design
- Choosing between monolith, modular monolith, microservices, or event-driven patterns
- Selecting a database (SQL vs NoSQL vs specialized) for a new project
- Analyzing dependencies for circular references, coupling issues, or outdated packages
- Creating architecture diagrams (Mermaid, PlantUML, ASCII) for documentation or review
- Writing Architecture Decision Records (ADRs) for technical choices
- Evaluating scalability bottlenecks or planning capacity
Context Required
From startup-context: product description, tech stack, current state (prototype/beta/scaling), team size, expected scale (users, requests/sec, data volume). If missing, ask:
- What does this system need to do? (core use cases)
- What scale are you targeting? (users, requests/sec, data size)
- What is your team size and backend experience level?
- Are there hard constraints? (compliance, latency, budget, existing infra)
Workflow
- Gather requirements — Identify functional requirements (use cases), non-functional requirements (latency, throughput, availability, consistency), and constraints (budget, team size, compliance).
- Run architecture assessment — Analyze the existing project structure to detect current patterns (MVC, layered, hexagonal, microservices indicators), code organization issues (god classes, mixed concerns), and layer violations.
- Analyze dependencies — Examine the dependency tree for circular dependencies, coupling scores, and outdated packages across npm, Python, Go, or Rust projects.
- Select architecture pattern — Use the decision workflows below to match team size, deployment needs, and data boundaries to the right pattern. For most early-stage startups, recommend modular monolith.
- Select database — Match data characteristics, scale requirements, and consistency needs to the appropriate database technology using the selection workflow below.
- Design data model — Produce an ER diagram in Mermaid. Define entity ownership: which module/service writes, others read via API.
- Define API contracts — Specify key endpoints with method, path, request/response shapes, and error codes. Version from day one.
- Generate architecture diagram — Produce a Mermaid C4 or flowchart diagram showing components, data stores, external services, and communication patterns.
- Write ADRs — Document key decisions using the ADR format below.
- Identify risks — Call out single points of failure, data consistency risks, and scaling bottlenecks with mitigations.
Output Format
Deliver a structured architecture document with these sections:
- Requirements Summary — Functional, non-functional, and constraints
- Architecture Assessment — Detected pattern with confidence, issues, recommendations
- System Diagram — Mermaid C4 or flowchart (component, layer, or deployment view)
- Domain Model — Mermaid ER diagram with entity ownership
- Module Boundaries — Table: Module, Responsibility, Owns Data, Exposes API
- API Contracts — Key endpoints with method, path, request/response shapes
- ADRs — Architecture Decision Records for key choices
- Dependency Analysis — Total deps, coupling score, circular deps, outdated packages
- Risks & Mitigations — Table: Risk, Impact, Likelihood, Mitigation
Frameworks & Best Practices
Architecture Pattern Selection
| Team Size | Recommended Starting Point |
| 1-3 developers | Modular monolith |
| 4-10 developers | Modular monolith or service-oriented |
| 10+ developers | Consider microservices |
| Requirement | Recommended Pattern |
| Rapid MVP development | Modular Monolith |
| Independent team deployment | Microservices |
| Complex domain logic | Domain-Driven Design |
| High read/write ratio difference | CQRS |
| Audit trail required | Event Sourcing |
| Third-party integrations | Hexagonal / Ports & Adapters |
Default for early startups: Modular monolith with clear module boundaries that can be extracted later. Microservices add operational overhead that kills small teams.
Monolith vs Microservices Checklist
Choose Monolith when: team is small (<10), domain boundaries are unclear, rapid iteration is the priority, shared database is acceptable.
Choose Microservices when: teams can own services end-to-end, independent deployment is critical, different scaling requirements per component, domain boundaries are well understood.
Hybrid approach: Start monolith. Extract a service only when a module has significantly different scaling needs, a team needs independent deployment, or technology constraints require separation.
Database Selection
Structured data with relationships or ACID needs points to SQL. Flexible/evolving schema or document-oriented data points to NoSQL. Quick reference: PostgreSQL (default for most apps), MongoDB (document store), Redis (caching/sessions), DynamoDB (serverless auto-scaling), TimescaleDB (time-series), CockroachDB/Spanner (global distribution).
ADR Format
Use five fields: Status (Proposed/Accepted/Deprecated/Superseded), Context (what prompted the decision), Decision (what was chosen and why), Consequences (trade-offs and remaining risks), Alternatives considered (what else was evaluated and why it lost).
Key Design Principles
- Every entity has a clear owner (one module writes, others read via API)
- Use UUIDs for primary keys if multi-service or future extraction is likely
- Version APIs from day one (
/v1/resource); paginate all list endpoints (cursor-based preferred) - Consistent error shapes:
{ "error": { "code": "...", "message": "..." } } - Design write operations for idempotency (idempotency keys)
- Synchronous calls (HTTP/gRPC) for queries needing immediate confirmation; async events for notifications, analytics, and cross-service data sync
- Avoid distributed transactions — use sagas or eventual consistency
Related Skills
tech-stack-eval— Chain when choosing specific technologies for the architecturesecurity-review— Chain to review the architecture for threat vectors before implementationcode-review— Chain after implementation to verify code matches architectural intent
Examples
Prompt: "I'm building a SaaS project management tool. 3 engineers. How should I architect it?"
Good output snippet:
Given your team of 3 and early stage, I recommend a modular monolith.
Domain modules:
1. Auth Module — user accounts, roles, sessions
2. Projects Module — workspaces, projects, permissions
3. Tasks Module — tasks, assignments, comments, activity log
4. Notifications Module — email digests, in-app notifications
Each module gets its own DB schema (auth.*, projects.*) and communicates
through internal function calls with typed interfaces — not HTTP. This
gives you service-like boundaries without deployment complexity.
Architecture Assessment:
Detected pattern: Layered Architecture (confidence: 85%)
✓ controllers/ - Presentation layer
✓ services/ - Business logic layer
✓ repositories/ - Data access layerPrompt: "Should we use WebSockets or SSE for real-time collaboration?"
Good output snippet:
## ADR-001: Use WebSockets for Real-Time Collaboration
- Status: Proposed
- Context: Document editor needs sub-200ms latency for cursor positions
and concurrent edits across 2-50 users per document.
- Decision: WebSockets via Socket.io with Redis pub/sub for horizontal
scaling. SSE only supports server-to-client; we need bidirectional
communication for operational transforms.
- Consequences: Adds WebSocket infrastructure (sticky sessions or Redis
adapter), ~2KB memory per connection. Team needs OT/CRDT knowledge.
- Alternatives: SSE + POST (simpler but higher edit latency),
Firebase Realtime DB (vendor lock-in, cost at scale).Other versions27 projects use a version of this.
Word for word · 1
- Maudeunfledged834/startup-founder-skills★ 8100% same
Edited · 0
None found.
Wrote their own version · 26
- Galaxy-Dawn/claude-scholar★ 5.9ksame name
- derHaken/SuperAntigravity★ 439same name
- bkywksj/knowledge-base★ 332same name
- thomast1906/github-copilot-agent-skills★ 203same name
- GenerativeAgents/claude-code-book-chapter8★ 114same name
- kumaran-is/claude-code-onboarding★ 35same name
- Vepricov/claude-brainlab★ 35same name
- 05-deepak-patidar/claude-skills★ 4same name
- Douglasst102/AgentSkills★ 4same name
- karthikrshet/aiskills★ 4same name
16 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
Used alongsideProjects with it also use observability-design, database-design and 7 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
gclmSkillobservability-design
Design logs, metrics, traces, alerts, and debugging signals so systems can be operated and diagnosed before incidents expose blind spots.
Also in 3 projects that use this
harrissohail6Skilldatabase-design
Database schema design and SQL best practices. Use when designing tables, writing queries, or optimizing database performance.
Also in 4 projects that use this
barisariburnuSkillperformance-optimization
Complete performance optimization guide for Next.js applications including frontend, backend, database, caching, and general optimization strategies. Use when improving performance, reducing bundle size, optimizing queries, or implementing caching.
Also in 4 projects that use this
Microsoft AzureSkillgit-workflow
Squad branching model: dev-first workflow with insiders preview channel
Also in 6 projects that use this
MicrosoftSkillapi-design
Guide for designing and documenting RESTful APIs. Use when asked to design an API, create endpoints, or document an API.
Also in 4 projects that use this
xenitV1Skillclean-code
Pragmatic coding standards - concise, direct, no over-engineering, no unnecessary comments
Also in 3 projects that use this
In this repository49 other files it gives its agents.
- accelerator-applicationSkill
- board-updateSkill
- churn-analysisSkill
- cicd-setupSkill
- code-reviewSkill
- cold-outreachSkill
- community-discoverySkill
- competitive-analysisSkill
- competitor-monitoringSkill
- content-strategySkill
- contract-reviewSkill
- daily-product-digestSkill
- data-roomSkill
- earned-media-outreachSkill
- email-marketingSkill
- employer-brandSkill
- event-hostingSkill
- feedback-synthesisSkill
- founder-thought-leadershipSkill
- fundraising-emailSkill
- interview-kitSkill
- investor-researchSkill
- job-descriptionSkill
- landing-pageSkill
- launch-strategySkill
- lead-scoringSkill
- market-researchSkill
- mvp-scopingSkill
- onboarding-flowSkill
- partnership-outreachSkill
- pitch-deckSkill
- prd-writingSkill
- privacy-policySkill
- process-docsSkill
- proposal-generationSkill
- review-miningSkill
- roadmap-planningSkill
- sales-scriptSkill
- security-reviewSkill
- sentiment-monitoringSkill
- seo-technicalSkill
- soc2-prepSkill
- social-contentSkill
- sourcing-outreachSkill
- startup-contextSkill
- support-docsSkill
- tech-stack-evalSkill
- terms-of-serviceSkill
- user-research-synthesisSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

