Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

System Design

ASecurity

Design a change or feature with the user and write the design set — proposal, per-capability specs, design (with open questions) and UML diagrams (use case, ER, sequence, file change map) — into a folder they choose. Settles the design first by interviewing the user one round at a time. Use when the user wants to design a system, feature or change before building it, asks for a design doc / spec / proposal, or wants requirements turned into design documents.

2 stars
0 votes
0 copies
0 views
Added 9/20/2026
developmentgobashnoderailsgit

Security Analysis

A100/100

Scanned 9/20/2026

Install to Claude Code

$npx -y skills add atman-33/workhub --skill system-design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of System Design?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for System Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/atman-33-system-design/badge)](https://www.skillsdirectory.com/skills/atman-33-system-design)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: system-design
description: Design a change or feature with the user and write the design set — proposal, per-capability specs, design (with open questions) and UML diagrams (use case, ER, sequence, file change map) — into a folder they choose. Settles the design first by interviewing the user one round at a time. Use when the user wants to design a system, feature or change before building it, asks for a design doc / spec / proposal, or wants requirements turned into design documents.
allowed-tools: Read Glob Grep Write Edit Agent Bash(git *)
---

# System design

Turn a request into a settled design and a set of design documents a human can
review and an agent can implement from. Two phases, in order: **settle the
design with the user**, then **write it down**. Writing is not a substitute for
asking — a document built on guesses reads as settled and is not.

**Planning boundary.** This skill produces documents only. Do not edit
application code, even if the request says "build it". After the documents are
written, stop and wait for a new request to implement.

## Outputs

All files go flat into the output folder — no subfolders, so the set also fits
a workhub backlog item folder:

| File | Holds | Template |
|---|---|---|
| `proposal.md` | Why, what changes, capabilities, impact | `templates/proposal.md` |
| `spec-<capability>.md` | One per capability: requirements with WHEN/THEN scenarios | `templates/spec.md` |
| `design.md` | How: context, goals/non-goals, decisions with alternatives, risks, open questions | `templates/design.md` |
| `uml.md` | Diagrams in Mermaid: use case, ER, sequence, file change map | `templates/uml.md` |

There is deliberately no task list: breaking the work into tasks belongs to
whatever runs the implementation (a task board, a TDD loop), and a second copy
here would drift.

## Steps

### 1. Take in the request

The user supplies the requirement or feature description, often with links,
notes or screenshots. Read everything they point at.

Then gather the **facts** yourself: read the relevant code, configuration,
existing docs and data models of the target repository. Delegate a broad sweep
to a sub-agent (`code-explore` when available) rather than reading dozens of
files here. Never ask the user for something you can look up.

### 2. Decide the output folder

Use the folder the user named. If they named none, ask — with a recommended
answer, not an open question:

- running inside a workhub task whose `backlog:` item is known → recommend that
  item's folder (`projects/NNNN-<slug>/backlog/B-NNN-<slug>/`);
- otherwise → recommend `docs/design/<change-name>/` in the target repository,
  where `<change-name>` is a kebab-case name derived from the request.

If the folder already holds a design set, ask whether to revise it or start a
new folder. Revising means reading the existing files first and editing them,
not regenerating from scratch.

### 3. Settle the design (grilling)

Interview the user until the design is shared understanding. Keep a **design
tree** in mind: every decision branches into the decisions that hang off it.

- Work in **rounds**. The **frontier** is every decision whose prerequisites
  are already settled. Ask the whole frontier in one round — numbered, each
  with your recommended answer and its reason — then wait:

  ```
  ❓ **Q1 — <title>**: <question, with the options if there are any>

  ➡️ <recommended answer> — <why>
  ```

- A question whose answer depends on another question still open this round
  belongs to a later round.
- Answers reshape the tree. Recompute the frontier and ask the next round.
- Facts are yours to find; decisions are the user's. If a question turns on a
  fact, look it up (or dispatch a sub-agent) instead of asking.
- Cover what the documents will need: actors and use cases, scope and
  non-goals, data (entities, ownership, lifecycle), the main flows and their
  failure paths, external interfaces and compatibility, and which files or
  modules change.
- Minor details that do not change scope, observable behaviour, compatibility
  or acceptance criteria: assume, and record the assumption in `design.md`.

The phase ends when the frontier is empty. Summarise the settled decisions in a
few lines and ask the user to confirm before writing anything.

### 4. Write the documents

Write in the user's language (the language of the conversation, unless they ask
otherwise). Keep each template's section structure; translate its headings
into that language if it is not English. Template comments are guidance for
you — never copy them into the output.

Order, each reading the files already written:

1. `proposal.md` — the contract for the rest. Its **Capabilities** list decides
   which spec files exist.
2. `spec-<capability>.md` — one per capability in the proposal, named with the
   same kebab-case id.
3. `design.md` — reference the proposal and specs instead of restating them.
4. `uml.md` — only the diagrams that apply (see the template for when each one
   does). Say in the file which were omitted and why.

Each template states what belongs in its file and what does not; follow it.

### 5. Sort the open questions

Writing surfaces gaps. For each one, decide which kind it is:

- **Deferrable** — can be answered later without changing the specs, the
  approach or how the work breaks down. Leave it in `design.md`'s
  `## Open Questions`.
- **Blocking** — would change any of those. Do not park it. Go back to step 3,
  ask it (with a recommendation), then update the documents.

Open questions are for genuinely deferrable unknowns, never for decisions you
skipped.

### 6. Report and stop

List the files written with one line each, the diagrams omitted and why, and
the deferrable open questions left. Then stop: implementation is a separate
request.

## Guardrails

- Re-read a file from disk before editing it; the user may have changed it.
- Specs describe observable behaviour — never class names, libraries or
  step-by-step implementation. That belongs in `design.md`.
- Mermaid must render: after writing `uml.md`, re-read each block and check the
  syntax (node ids without spaces, quoted labels that contain punctuation,
  one diagram type per block).
- Never write outside the output folder.

## Attribution

The document set and its section rules are adapted from OpenSpec's
`spec-driven` schema; the interview method from mattpocock/skills' `grilling`.
Both MIT — see the plugin's `NOTICE.md`.

Attribution

atman-33atman-33
View sourceMore from atman-33 →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →