accelerator-applicatio…
When the user wants to apply to startup accelerators, incubators, or fellowship programs. Also use when the user mentions "YC…
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",
$ npx -y skills add shawnpang/startup-founder-skills --skill architecture-design --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/architecture-designContext preview
The summary Claude sees to decide when to auto-load this skill.
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",
name: architecture-design description: 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. related: [tech-stack-eval, security-review, code-review] reads: [startup-context]
From `startup-context`: product description, tech stack, current state (prototype/beta/scaling), team size, expected scale (users, requests/sec, data volume). If missing, ask:
1. **Gather requirements** — Identify functional requirements (use cases), non-functional requirements (latency, throughput, availability, consistency), and constraints (budget, team size, compliance). 2. **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. 3. **Analyze dependencies** — Examine the dependency tree for circular dependencies, coupling scores, and outdated packages across npm, Python, Go, or Rust projects. 4. **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. 5. **Select database** — Match data characteristics, scale requirements, and consistency needs to the appropriate database technology using the selection workflow below. 6. **Design data model** — Produce an ER diagram in Mermaid. Define entity ownership: which module/service writes, others read via API. 7. **Define API contracts** — Specify key endpoints with method, path, request/response shapes, and error codes. Version from day one. 8. **Generate architecture diagram** — Produce a Mermaid C4 or flowchart diagram showing components, data stores, external services, and communication patterns. 9. **Write ADRs** — Document key decisions using the ADR format below. 10. **Identify risks** — Call out single points of failure, data consistency risks, and scaling bottlenecks with mitigations.
Deliver a structured architecture document with these sections:
| 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.
**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.
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).
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).
Hey friends. Shawn here. I've been bootstrapping and starting companies for the past 10 years (still working hard at 996 level).
When the user wants to apply to startup accelerators, incubators, or fellowship programs. Also use when the user mentions "YC…
When the user needs to write a monthly or quarterly investor update, prepare a board deck, or communicate company progress to…
When the user needs to identify at-risk accounts, understand why customers are leaving, reduce churn rate, build health scores,…
When the user needs to set up or improve CI/CD pipelines — GitHub Actions, GitLab CI, deployment automation, or says "set up CI",…
When the user asks for a code review, shares code for feedback, or says "review this", "check my code", "what's wrong with this".…
When a founder needs to write cold emails or LinkedIn messages to prospects, partners, or investors. Activate when the user…