Agent Skillsshawnpang/startup-founder-skills › architecture-design

architecture-design

GitHub

用于系统架构设计与评估,涵盖服务边界、数据模型、API契约及基础设施选型。支持单体与微服务决策、依赖分析及架构图生成,输出包含需求总结、架构评估、Mermaid图表和ADR的结构化文档。

skills/architecture-design/SKILL.md shawnpang/startup-founder-skills

Trigger Scenarios

设计或评估系统架构 单体与微服务选型 数据库技术选型 依赖关系分析 生成架构决策记录(ADR) 创建架构设计图

Install

npx skills add shawnpang/startup-founder-skills --skill architecture-design -g -y
More Options

Use without installing

npx skills use shawnpang/startup-founder-skills@architecture-design

指定 Agent (Claude Code)

npx skills add shawnpang/startup-founder-skills --skill architecture-design -a claude-code -g -y

安装 repo 全部 skill

npx skills add shawnpang/startup-founder-skills --all -g -y

预览 repo 内 skill

npx skills add shawnpang/startup-founder-skills --list

SKILL.md

Frontmatter
{
    "name": "architecture-design",
    "reads": [
        "startup-context"
    ],
    "related": [
        "tech-stack-eval",
        "security-review",
        "code-review"
    ],
    "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."
}

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

  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.

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 architecture
  • security-review — Chain to review the architecture for threat vectors before implementation
  • code-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 layer

Prompt: "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).

Version History

  • 4ad31b4 Current 2026-07-05 10:47

Same Skill Collection

skills/accelerator-application/SKILL.md
skills/board-update/SKILL.md
skills/churn-analysis/SKILL.md
skills/cicd-setup/SKILL.md
skills/code-review/SKILL.md
skills/cold-outreach/SKILL.md
skills/community-discovery/SKILL.md
skills/competitive-analysis/SKILL.md
skills/competitor-monitoring/SKILL.md
skills/content-strategy/SKILL.md
skills/contract-review/SKILL.md
skills/daily-product-digest/SKILL.md
skills/data-room/SKILL.md
skills/earned-media-outreach/SKILL.md
skills/email-marketing/SKILL.md
skills/employer-brand/SKILL.md
skills/event-hosting/SKILL.md
skills/feedback-synthesis/SKILL.md
skills/founder-thought-leadership/SKILL.md
skills/fundraising-email/SKILL.md
skills/interview-kit/SKILL.md
skills/investor-research/SKILL.md
skills/job-description/SKILL.md
skills/landing-page/SKILL.md
skills/launch-strategy/SKILL.md
skills/lead-scoring/SKILL.md
skills/market-research/SKILL.md
skills/mvp-scoping/SKILL.md
skills/onboarding-flow/SKILL.md
skills/partnership-outreach/SKILL.md
skills/pitch-deck/SKILL.md
skills/prd-writing/SKILL.md
skills/privacy-policy/SKILL.md
skills/process-docs/SKILL.md
skills/proposal-generation/SKILL.md
skills/review-mining/SKILL.md
skills/roadmap-planning/SKILL.md
skills/sales-script/SKILL.md
skills/security-review/SKILL.md
skills/sentiment-monitoring/SKILL.md
skills/seo-technical/SKILL.md
skills/soc2-prep/SKILL.md
skills/social-content/SKILL.md
skills/sourcing-outreach/SKILL.md
skills/startup-context/SKILL.md
skills/support-docs/SKILL.md
skills/tech-stack-eval/SKILL.md
skills/terms-of-service/SKILL.md
skills/user-research-synthesis/SKILL.md

Metadata

Files
0
Version
4ad31b4
Hash
edbd79d7
Indexed
2026-07-05 10:47

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-09 06:20
浙ICP备14020137号-1 $Гость$