agentleFS
Sequela02Sequela02/canasta/skills/workflow/system-design/SKILL.md

system-design

Skill0 starsChanged yesterdayMITView on GitHub

Design a system or a cross-component change before building it: requirements with numbers, components and data ownership, consistency, failure, capacity, and deployment, recorded as a design doc and an ADR. Use only when the user asks for a system design or names this skill, never on your own initiative.

65 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use data-pipelines, data-engineering and 9 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

  • travisjneumanSkill

    data-engineering

    ETL/ELT pipelines, data warehousing (BigQuery, Snowflake, Redshift), stream processing (Kafka, Spark Streaming), orchestration (Airflow, Dagster, Prefect), dbt transformations, and data lake architecture. Use when building data pipelines, designing warehouse schemas, or implementing real-time data processing.

    Also in 4 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

  • OpenAISkill

    observability

    Vercel Observability expert guidance — Drains (logs, traces, speed insights, web analytics), Web Analytics, Speed Insights, runtime logs, custom events, OpenTelemetry integration, and monitoring dashboards. Use when instrumenting, debugging, or optimizing application performance and user experience on Vercel.

    Also in 12 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

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 7 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 51 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Write in the repository's documentation language.

    line 14
  2. Distinctive:

    Read the product's own instructions, direction or architecture docs, existing decisions, and the code that already exists.

    line 19
  3. Distinctive:

    Never invent a number. Ask, or write it as an assumption the operator must confirm.

    line 30
  4. Distinctive:

    Read the operator's deployment standards and cite the constraints relied on: resource budgets, hosting, state stores, observability, …

    line 35
  5. Distinctive:

    If a required standard is missing, propose its owning location and wording in the design.

    line 39
  6. Distinctive:

    Before deciding, obtain an independent architecture review using an available reviewer with the draft and ask it to find the weakest …

    line 77
  7. Distinctive:

    Check the design doc contains every item.

    line 94

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

System Design

For decisions above one codebase's modules: which processes and data stores exist, how they talk, where they run, how they fail and recover. Hand the rest to the owning skill: domain rules, terms and bounded contexts to domain-modeling, modules inside a codebase to architecture-review, the build sequence to implementation-planning.

Write in the repository's documentation language.

1. Frame the decision

  • State the one question being decided and what is out of scope.
  • Read the product's own instructions, direction or architecture docs, existing decisions, and the code that already exists. Do not redesign what is already decided; build on it or name the decision you would revisit.

2. Requirements, with numbers

  • Functional: the journeys the design must serve.
  • Non-functional, each as a number or an explicit unknown: users and concurrency, request rate, data volume and growth, latency, acceptable data loss (RPO) and downtime (RTO), availability, privacy and security constraints, budget, and who operates it day to day.
  • Never invent a number. Ask, or write it as an assumption the operator must confirm.

3. Constraints from where it runs

  • Read the operator's deployment standards and cite the constraints relied on: resource budgets, hosting, state stores, observability, secrets and releases.
  • For a client-operated deployment, take constraints from the product's docs or the operator rather than assuming the developer's infrastructure.
  • If a required standard is missing, propose its owning location and wording in the design; do not edit unrelated policy as part of the design task.

4. Start from the simplest shape

Begin with one deployable unit (a modular monolith), PostgreSQL as the source of truth, and the standards and technology already in use. Every added service, queue, cache, data store, or vendor must name the requirement it meets and the simpler option that fails that requirement.

5. Components and data

  • For each component: its responsibility, the data it owns (one owner per piece of data), its interface, and its callers.
  • For each flow: the consistency it needs (strong, or eventual and how stale), idempotency for retries, and ordering.
  • Diagram the C4 context and container levels in Mermaid.

6. Failure, security, operations

  • For each component and dependency: what happens when it is slow, down, or wrong; how it is detected; how it recovers.
  • Backups with a tested restore (a backup never restored is not a backup), deployment and rollback, and the data migration path.
  • Trust boundaries: authentication, authorization, secrets, network exposure.

7. Capacity

Estimate data size at one and three years, peak load, and resource use against the host's budget. Show the arithmetic.

8. Options and decision

Compare at least two viable options against the requirements, choose one, and name what the choice gives up.

9. Challenge it

Before deciding, obtain an independent architecture review using an available reviewer with the draft and ask it to find the weakest assumption and the failure the design misses. Do this every time this skill runs; skip it only when the operator says so. Record its objections and how the design answers each one.

10. Record

  • The design doc in the product repository, where its docs live.
  • An ADR (context, decision, consequences, status) in the product's decision records, or docs/decisions/ when it has none. When the decision affects more than one product or shared infrastructure, link it from the shared decision record too.
  • Status stays Proposed until the operator accepts it.
  • End with the unresolved questions the operator must answer.

Before finishing

Check the design doc contains every item; add what is missing:

  • Requirements with numbers or marked assumptions, including RPO and RTO
  • Constraints, with the deployment standard or product doc each one comes from
  • A Mermaid C4 context and container diagram
  • Failure, recovery, and security for each component
  • Capacity arithmetic
  • At least two options compared, and what the choice gives up
  • The advisor's objections and the answers
  • An ADR with status Proposed, and the unresolved questions

Sources behind this procedure: references/sources.md.

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.