agentleFS
d-padmanabhand-padmanabhan/agent-engineering-handbook/skills/system-design/SKILL.md

system-design

Skill17 starsChanged 56 days agoMITView on GitHub

Designs and reviews production software systems using requirements, SLOs, capacity estimates, service and data boundaries, consistency, scaling, reliability, security, observability, cost, and migration plans. Use for system design, architecture review, scalability, capacity planning, high availability, multi-tenancy, cell-based or cellular architecture, deployment stamps, technical design documents, or end-to-end production architecture.

64 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use data-pipelines, caching 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.
  • YepAPISkill

    data-pipelines

    ETL patterns, cron scheduling, queue-based processing, and batch jobs with Inngest/BullMQ.

    Also in 3 projects that use this

  • wpankSkill

    caching

    Caching strategies, invalidation, eviction policies, HTTP caching, distributed caching, and anti-patterns. Use when designing cache layers, choosing eviction policies, debugging stale data, or optimizing read-heavy workloads.

    Also in 3 projects that use this

  • mmondoraSkill

    infrastructure-as-code

    Infrastructure as Code with Terraform and Pulumi. State management, modularity, drift detection, secrets handling. Use when provisioning cloud resources, writing Terraform/Pulumi modules, or managing infrastructure configuration.

    Also in 3 projects that use this

  • ayudaySkill

    autoplan

    Auto-review pipeline — reads the full CEO, design, and eng review skills from disk and runs them sequentially with auto-decisions using 6 decision principles. Surfaces taste decisions (close approaches, borderline scope, codex disagreements) at a final approval gate. One command, fully reviewed plan out. Use when asked to "auto review", "autoplan", "run all reviews", "review this plan automatically", or "make the decisions for me". Proactively suggest when the user has a plan file and wants to run the full review gauntlet without answering 15-30 intermediate questions.

    Also in 3 projects that use this

  • mjunaidcaSkill

    kubernetes

    Production-grade Kubernetes manifests and debugging for containerized applications. This skill should be used when users ask to deploy to Kubernetes, create K8s manifests, containerize for K8s, set up Deployments/Services/Jobs/StatefulSets/CronJobs, create namespaces with resource quotas, set up multi-team isolation, configure ResourceQuota/ LimitRange, secure with RBAC (ServiceAccount, Role, RoleBinding), configure init containers (model download, db wait, migrations), set up sidecars (logging, metrics), or debug pods (CrashLoopBackOff, logs, exec, describe, events). Auto-detects from Dockerfile/code, generates hardened manifests with educational comments. CKAD-aligned.

    Also in 3 projects that use this

  • harrissohail6Skill

    database-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

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 11 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 50 edited versions we read keep these.

  • 11

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill to turn business requirements and operational constraints into the simplest production architecture that can be built, …

    line 8
  2. Distinctive:

    Start with requirements, constraints, scale, and failure tolerance before selecting technologies.

    line 14
  3. Distinctive:

    Prefer a modular monolith or one ownership boundary until independent scaling, deployment, security, data ownership, or team autonomy …

    line 18
  4. Distinctive:

    Keep data ownership explicit.

    line 19
  5. Distinctive:

    Treat security, privacy, operability, and cost as design inputs, not review-stage additions.

    line 23
  6. Distinctive:

    Verify current vendor limits, guarantees, defaults, and pricing against official sources before relying on them.

    line 24
  7. Distinctive:

    Ask at most three focused questions that would materially change the architecture.

    line 38
  8. Distinctive:

    Do not collapse all endpoints and workloads into one SLO.

    line 53
  9. Very specific:

    Use the design workflow and template (${HANDBOOK_ROOT}/skills/system-design/references/design-workflow.md) for estimation and document …

    line 59
  10. Distinctive:

    Prefer cohesive boundaries over technology-driven decomposition.

    line 72
  11. Very specific:

    Use the networking skill (${HANDBOOK_ROOT}/skills/networking-transport/SKILL.md) for transport choices, the service resilience skill …

    line 86
  12. Very specific:

    Use the security testing skill (${HANDBOOK_ROOT}/skills/security-testing/SKILL.md), Zero Trust skill …

    line 99
  13. Distinctive:

    When reviewing an existing design:

    line 141
  14. Distinctive:

    Test the design against peak load, unfair tenants, dependency and control-plane failure, regional failure, data corruption, and operator …

    line 145
  15. Very specific:

    Use the architecture review checklist (${HANDBOOK_ROOT}/skills/system-design/references/architecture-review-checklist.md).

    line 150

“Common” is measured: kept by at least 6 in 10 of the 50 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Production System Design

Use this skill to turn business requirements and operational constraints into the simplest production architecture that can be built, operated, evolved, and recovered safely.

This is not an interview-diagram generator. Every component and complexity must earn its place through a requirement, measured constraint, or explicit risk.

System Design Contract

  • Start with requirements, constraints, scale, and failure tolerance before selecting technologies.
  • Separate facts, assumptions, estimates, and decisions.
  • Quantify demand and SLOs enough to expose bottlenecks; never invent precision.
  • Tie every consequential mechanism to a quality-attribute scenario, measurable evidence, and a rollback or revisit trigger.
  • Prefer a modular monolith or one ownership boundary until independent scaling, deployment, security, data ownership, or team autonomy justifies a split.
  • Keep data ownership explicit. Shared databases and synchronous call chains create coupling even when diagrams show separate services.
  • Map correlated failure domains and hidden shared dependencies; replicated components are not isolated when they share a control plane, data store, quota, identity service, or deployment path.
  • State consistency and durability guarantees at each boundary.
  • Design degraded behavior, recovery, and migration, not only the healthy steady state.
  • Treat security, privacy, operability, and cost as design inputs, not review-stage additions.
  • Verify current vendor limits, guarantees, defaults, and pricing against official sources before relying on them.

Workflow

1. Frame the problem

Capture:

  • users, business outcome, and critical journeys;
  • functional requirements and explicit non-goals;
  • compliance, privacy, residency, and trust boundaries;
  • existing system and migration constraints;
  • delivery timeline, team ownership, and operational capability.

Ask at most three focused questions that would materially change the architecture. When answers are unavailable, proceed with clearly labeled assumptions and explain their impact.

2. Define quality targets

Specify:

  • availability and durability targets;
  • the SLI numerator, denominator, scope, and exclusion policy for each critical journey;
  • latency objectives by critical journey and percentile;
  • end-to-end latency and availability budgets allocated across required dependencies;
  • throughput, concurrency, data volume, retention, and growth;
  • recovery time objective and recovery point objective;
  • consistency and freshness requirements;
  • cost or resource envelope.

Do not collapse all endpoints and workloads into one SLO.

3. Estimate capacity

Show units and arithmetic for baseline, peak, and growth horizon. Estimate requests or events per second, concurrent work, storage, bandwidth, and dominant compute or I/O demand. Include headroom and identify the inputs most sensitive to uncertainty.

Use the design workflow and template (${HANDBOOK_ROOT}/skills/system-design/references/design-workflow.md) for estimation and document structure.

4. Establish boundaries and contracts

Define:

  • system context and external dependencies;
  • component or service responsibilities and owners;
  • tenancy model, placement boundary, noisy-neighbor controls, and tenant lifecycle;
  • synchronous APIs, asynchronous events, and compatibility rules;
  • data stores, authoritative ownership, indexes, and lifecycle;
  • identity, authorization, encryption, and secret boundaries.

Prefer cohesive boundaries over technology-driven decomposition.

5. Design runtime behavior

Trace critical write and read paths. For every remote dependency, state:

  • timeout and retry ownership;
  • idempotency and duplicate behavior;
  • ordering and concurrency requirements;
  • admission priority, tenant fairness, bounded queues and concurrency, backpressure, shedding, and user-visible overload behavior;
  • one end-to-end retry and deadline budget rather than retries at every layer;
  • cache correctness and invalidation;
  • partial failure and degraded mode.

Use the networking skill (${HANDBOOK_ROOT}/skills/networking-transport/SKILL.md) for transport choices, the service resilience skill (${HANDBOOK_ROOT}/skills/service-resilience/SKILL.md) for circuit breakers, bulkheads, retry policy, and degraded behavior, and the distributed transactions skill (${HANDBOOK_ROOT}/skills/distributed-transactions/SKILL.md) when one business operation spans consistency boundaries.

6. Design operations and recovery

Specify:

  • logs, metrics, traces, audit events, dashboards, and alerts;
  • health, dependency, saturation, queue-age, and business-invariant signals;
  • backup, restore, failover, reconciliation, and disaster-recovery tests;
  • failure-domain mapping across region, DNS, identity, configuration, deployment, quotas, observability, and shared control/data planes;
  • deployment, rollback, feature flag, and schema migration strategy;
  • runbooks, on-call and escalation ownership, operational expertise, cognitive load, and manual intervention.

Use the security testing skill (${HANDBOOK_ROOT}/skills/security-testing/SKILL.md), Zero Trust skill (${HANDBOOK_ROOT}/skills/zero-trust/SKILL.md), and observability skill (${HANDBOOK_ROOT}/skills/observability/SKILL.md) for specialist review.

7. Compare alternatives

Compare two or three credible options against the actual requirements. Include:

  • benefits and liabilities;
  • operational and migration cost;
  • failure blast radius;
  • lock-in and reversibility;
  • validation signal, decision owner, and review or expiry date;
  • condition that would invalidate or roll back the choice.

Choose one and record why it is the simplest option that meets the targets. Do not produce a technology shopping list without a decision.

8. Plan delivery and validation

Define incremental slices, compatibility transitions, data migration, load and failure testing, production signals, and rollback criteria. Prefer reversible steps and shadowing, canaries, or dual-read verification where appropriate.

Specialist Routing

Route depth instead of copying domain procedures:

  • Cloud architecture: cloud platforms (${HANDBOOK_ROOT}/skills/cloud-platforms/SKILL.md)
  • API contracts and protocol surfaces: API design (${HANDBOOK_ROOT}/skills/api-design/SKILL.md) and mandatory API gates (${HANDBOOK_ROOT}/rules/320-api-design.mdc)
  • Domain boundaries and models: Domain-Driven Design (${HANDBOOK_ROOT}/skills/domain-driven-design/SKILL.md)
  • Dependency failure, overload, and isolation: service resilience (${HANDBOOK_ROOT}/skills/service-resilience/SKILL.md)
  • Logs, metrics, traces, SLOs, alerts, and telemetry pipelines: observability (${HANDBOOK_ROOT}/skills/observability/SKILL.md)
  • PostgreSQL: database PostgreSQL (${HANDBOOK_ROOT}/skills/database-postgresql/SKILL.md)
  • Data platforms and pipelines: data engineering (${HANDBOOK_ROOT}/skills/data-engineering/SKILL.md)
  • Event platforms and Kafka governance: Kafka rule (${HANDBOOK_ROOT}/rules/483-kafka.mdc), data engineering (${HANDBOOK_ROOT}/skills/data-engineering/SKILL.md), and distributed transactions (${HANDBOOK_ROOT}/skills/distributed-transactions/SKILL.md)
  • Persistent AI memory and retrieval: memory architecture (${HANDBOOK_ROOT}/skills/memory-architecture/SKILL.md)
  • Infrastructure implementation and topology automation: infrastructure as code (${HANDBOOK_ROOT}/skills/infrastructure-iac/SKILL.md)
  • Containers: containers orchestration (${HANDBOOK_ROOT}/skills/containers-orchestration/SKILL.md) and Kubernetes containers (${HANDBOOK_ROOT}/skills/kubernetes-containers/SKILL.md)
  • Architecture visualization: React Flow architecture diagrams (${HANDBOOK_ROOT}/skills/reactflow-architecture-diagrams/SKILL.md) or documentation standards (${HANDBOOK_ROOT}/skills/documentation-standards/SKILL.md)
  • Stakeholder-weighted decisions: multi-perspective review (${HANDBOOK_ROOT}/skills/multi-perspective-review/SKILL.md)

Review Mode

When reviewing an existing design:

  1. Restate the claimed requirements and guarantees.
  2. Trace critical paths, dependency budgets, tenant/cell placement, and state ownership.
  3. Test the design against peak load, unfair tenants, dependency and control-plane failure, regional failure, data corruption, and operator error.
  4. Identify unsupported assumptions and missing evidence.
  5. Rank findings as Critical, Recommended, or Optional.
  6. Propose the smallest correction and how to validate it.

Use the architecture review checklist (${HANDBOOK_ROOT}/skills/system-design/references/architecture-review-checklist.md).

For cellular designs, use the cell-based architecture reference (${HANDBOOK_ROOT}/skills/system-design/references/cell-based-architecture.md). For consequential decisions, use the decision and validation workflow (${HANDBOOK_ROOT}/skills/system-design/references/decision-and-validation-workflow.md).

Required Output

Produce:

  1. Context, requirements, non-goals, and assumptions
  2. SLOs and capacity estimates
  3. Proposed architecture and critical flows
  4. Data ownership and consistency model
  5. Reliability, security, observability, and cost controls
  6. Alternatives and decision rationale
  7. Migration, testing, and rollout plan
  8. Risks, unresolved questions, and decision triggers

Distinguish verified evidence from recommendations. Cite current vendor documentation for claims about vendor behavior.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.