design
Skill187 starsChanged 5 months agoMITView on GitHub
Use to produce a Software Architecture Document for a feature — Arc42 12 sections + C4 L1/L2 inline + ADRs spawned on a blast-radius gate — once spec.md exists. Triggers on "design {slug}", "architecture for {slug}", "SAD for {slug}", "arc42 for {slug}", "C4 context+container for {slug}", "/sdd:design {slug}", "спроектуй архітектуру {slug}", "SAD для {slug}", "архітектурний документ {slug}". Drafts §1–§12, batch-validates each section Socratically (4-state machine), spawns an ADR only when a decision crosses the blast-radius threshold (irreversible / multi-module / has legitimate alternatives), writes each resolved section + its ADRs to disk immediately, then runs a clean-context critic and commits sad.md + each ADR separately. Brownfield: dispatches an Explore subagent to map the repo first. Hard-refuse if spec.md is missing; CONTEXT.md is optional (when present its Glossary is canonical).
197 other projects use a version of this.
Adopted by
Most recently taken up by
- dialog-db/dialog-dbtheir own version, first seen Nov 9, 2026
- BermanRoman/promt-seo-geotheir own version, first seen Nov 8, 2026
- anorth/agent-skillstheir own version, first seen Nov 8, 2026
- gspencergoog/skillstheir own version, first seen Nov 8, 2026
- PeanutGT/NutsSkillstheir own version, first seen Nov 8, 2026
- Integralist/agent-skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use banner-design, ui-styling 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.
seikaikyoSkillbanner-design
Design banners for social media, ads, website heroes, creative assets, and print. Multiple art direction options with optional generated or supplied visuals. Actions: design, create, generate banner. Platforms: Facebook, Twitter/X, LinkedIn, YouTube, Instagram, Google Display, website hero, print. Styles: minimalist, gradient, bold typography, photo-based, illustrated, geometric, retro, glassmorphism, 3D, neon, duotone, editorial, collage.
Also in 38 projects that use this
MicrosoftSkillui-styling
Guide for the visual style, structure, and shared building blocks used by Semantic Link Labs interactive UI tools (HTML widgets and anywidget-based widgets). Use this when adding a new interactive UI, modifying an existing one, or adding shared visual components.
Also in 39 projects that use this
seikaikyoSkillbrand
Brand voice, visual identity, messaging frameworks, asset management, brand consistency. Activate for branded content, tone of voice, marketing assets, brand compliance, style guides.
Also in 43 projects that use this
mayankjain1815-commitsSkillinfra-audit
Reads docker-compose, env files, ORM configs, and connection strings to map current infrastructure. Flags missing layers (cache, queue, analytics) based on observed access patterns. Outputs a structured infrastructure manifest.
Also in 3 projects that use this
JetBrainsSkillslides
Create and edit presentation slide decks (`.pptx`) with PptxGenJS and render/validation utilities. Use when tasks involve building a new PowerPoint deck, recreating slides from screenshots/PDFs/reference decks, modifying slide content while preserving editable output, adding charts/diagrams/visuals, or diagnosing layout issues such as overflow, overlaps, and font substitution.
Also in 42 projects that use this
henrikthome-archSkillinfra
Manage all infrastructure for the Volos school project — Render (API backend), Cloudflare (DNS + Pages frontend), PostgreSQL database, and GitHub Actions workflows.
Also in 3 projects that use this
Other versions197 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 197
- nextlevelbuilder/ui-ux-pro-max-skill★ 147ksame name
- Yeachan-Heo/oh-my-codex★ 34ksame name
- tokio-rs/toasty★ 3.3ksame name
- PaulWoitaschek/Voice★ 3.3ksame name
- joye61/pic-smaller★ 2.9ksame name
- oxsecurity/megalinter★ 2.6ksame name
- Infisical/agent-vault★ 2.5ksame name
- static-web-server/static-web-server★ 2.4ksame name
- SethGammon/Citadel★ 927same name
- Ohh-889/skyroc-admin★ 795same name
187 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository22 other files it gives its agents.
- apiSkill
- clarifySkill
- classify-sizeSkill
- configSkill
- data-modelSkill
- decide-adrSkill
- design-systemSkill
- fixSkill
- glossarySkill
- implementSkill
- interviewSkill
- plan-testsSkill
- reviewSkill
- roadmapSkill
- scaffoldSkill
- screensSkill
- sequencesSkill
- shipSkill
- specifySkill
- surveySkill
- tasksSkill
- ux-flowsSkill
The file
Files
Skill: design
Generator of the Software Architecture Document (docs/features/<slug>/sad.md — Arc42 12 sections, C4 Context inline in §3 and C4 Container inline in §5) plus supporting ADRs (docs/features/<slug>/adr/NNNN-*.md). It drafts all 12 sections in memory, walks them Socratically one section at a time, spawns an ADR only when a decision's blast radius (масштаб удару — how painful it is to reverse the decision later) crosses the gate, writes each resolved section and its ADRs to disk as soon as it resolves, runs a clean-context critic over the finished SAD, and then commits once per document — sad.md plus each ADR on its own — per ../_shared/write-and-commit.md. The document itself is the state — resuming after an interrupt is free. L3 Component / L4 Code are out of scope. This file is the spine; detail lives in references/.
The Socratic machine, the critic, and the size matrix are shared — this skill keeps only its deltas:
→ ../_shared/socratic-loop.md · ../_shared/critic.md · ../_shared/size-matrix.md · ../_shared/ask-style.md
sad.md + ADR prose follow artifact_language — the Arc42 section headings, frontmatter, C4/Mermaid keywords and ADR Status values stay English → ../_shared/artifact-language.md.
Depth governs the per-section question volume + autonomy → ../_shared/interview-depth.md. C4 diagrams are confirmed in prose, never as raw source → ../_shared/diagram-presentation.md. design is also where the feature's target surface(s) are chosen — the first §4 decision, written to sad.md frontmatter target_surfaces and read (never re-derived) by every downstream stage → ../_shared/surfaces.md.
Owner
Architect / Tech Lead (drives everything). PM is consulted only on §10 Quality goals and §11 Risk severities.
Inputs
<slug>— same feature slug used by every earlier stage.- Gate (hard-refuse if missing):
docs/features/<slug>/spec.md. If absent → STOP and point: «runspecify <slug>first — design reads the spec's goals/NFRs as canonical». - (Optional)
CONTEXT.md— repo-root and/ordocs/features/<slug>/→../glossary/SKILL.md. When present, its## Glossaryis canonical for roles + domain terms (per-feature wins over root on conflict); when absent, the spec's §4 roles are canonical and the handoff recommends/sdd:glossary <slug>before terms drift. - (Optional)
docs/features/<slug>/ux-flows.md— the user flows + SCR screen inventory fromux-flows. When present it is evidence for the §4 Target-surface + UI-architecture decisions and for the §5 containers — read it in step 2; its absence on a UI-touching feature is legal (the stage may have been skipped) but worth naming in the handoff. - (Optional)
docs/features/<slug>/.size— depth hint (MVP vs Full + expected ADR count per the size matrix). Absent → default to M (full set) and say so loudly in the handoff — «size M (default — no.size; run/sdd:classify-size <slug>)». - A git repo — so the Step-3 Explore subagent can read code on a brownfield.
- Skip if
sad.mdalready has all 12 sections filled ANDadr/has ≥1 file — suggest review instead.
Protocol
- Gate + size + set interview depth.
test -f docs/features/<slug>/spec.md→ missing = refuse with the pointer above. Read.sizeif present (shapes ADR count + §6 flow count — see the size matrix) and.routeif present. Then set the interview depth (the opening question): readinterview_depthfrom.claude/sdd.local.mdif present (else default medium), and — unless a--depth=easy|medium|hardarg was passed — ask ONE depth-selectionAskUserQuestionphrased per../_shared/ask-style.md, with the saved/medium value as the «(Recommended)» first option — except on routequick, whereeasybecomes the «(Recommended)» first option (the quick-route softening per the Routes table in../_shared/size-matrix.md). The level governs the step-6 per-section question volume (easy: decide convention-defaults itself + ledger, ask only blast-radius decisions; medium: walk every real decision; hard: walk every decision, foreground each trade-off) and the C4 diagram confirmation →../_shared/interview-depth.md. (The blast-radius → ADR gate and the §11 owner+due rule are floors — enforced at every depth.) - Read upstream.
spec.md(§2 Goals, §3 Non-goals, §6 NFR with numeric targets + measurement, §6.1 Security/privacy + abuse cases, §7 KPIs, §8 Open questions, any §1 ¶4 «Decision override» bullets);docs/features/<slug>/ux-flows.mdwhen present (platform decisions, flows, the SCR inventory — evidence for the §4 Target-surface + UI-architecture decisions and the §5 containers);CONTEXT.md## Glossarywhen present — read both repo-root (project-wide) anddocs/features/<slug>/CONTEXT.md(feature-scoped); per-feature wins on conflict; canonical roles + domain terms win over anything that contradicts. Neither file exists → the spec's §4 roles are canonical; recommend/sdd:glossary <slug>in the handoff. - Current architecture — read the map, don't re-scan. Prefer
docs/architecture-map.md(produced bysurvey): if it exists and is fresh (itsreflects_commit≈ current HEAD), read it — that IS the brownfield context (module layout, layering, datastores, conventions, the C4 of what exists). Re-scan only if the map is absent or stale: dispatch theexploreragent —subagent_type: "sdd:explorer"(model: haiku+effort: low, clean-isolated per../_shared/agent-roster.md) — for «module layout, layering/ports conventions, datastores, inter-module comms, anything that constrains<slug>», and suggest the user runsurveyto persist it. Greenfield (no source + no map) → note<!-- brownfield: N/A — greenfield repo -->in §3. (Fallback to asubagent_type: "Explore"Agent ifexplorerunavailable.) - Bootstrap + read template. Copy
./templates/sad.md→docs/features/<slug>/sad.md; patch frontmatter (updated_at,feature_sizefrom.size; leavetarget_surfaces: []empty — it's filled when §4's Target-surface decision resolves in step 6). No commit — commits happen once, at the end of step 7. Read the template's<!-- … -->comments (the per-section contract) +./templates/adr.md(MADR shape). This is the only file write between Step 4 and Step 6 — Step 5 drafts in-memory. - Per-section draft (in-memory). For each §1 → §12, draft proposed content + the decisions it contains, bundling trivial convention defaults into one question. Per-section sourcing, item-banks, the question budget, and pre-Socratic hygiene →
./references/draft-generation.md. Do NOT writesad.mdhere. - Socratic walk + blast-radius gate, per-section write. For each §1 → §12: render the full section + its numbered decisions (big picture), walk one
AskUserQuestionper decision with the shared 4-state machine (per-section question volume scales with the depth dial — at easy, decide convention-defaults yourself and ladder them into the assumptions ledger, asking only blast-radius decisions), apply transitions in-memory, run the blast-radius gate on each Approved decision (spawn an ADR on 2-of-3), then write the resolved section + its spawned ADRs to disk immediately — no commit here, on any route or depth (an interrupt loses nothing: the disk already holds every resolved section). Never return to a written section. §4's first decision is the Target-surface selection — what's being built (backend-service/web-frontend/mobile-app/desktop-app/cli/worker/library-sdk, derived from spec §1 «for whom» + §4 roles, withux-flows.mdas evidence when it exists — a real screen inventory is a strong signal for a UI surface; the spec itself names no surface), gated by the blast-radius gate (multi-surface is multi-module + irreversible ⇒ usually an ADR). On resolution, writetarget_surfaces: [...]to thesad.mdfrontmatter — it draws one §5 C4 container per surface and is read (never re-derived) byapi/sequences/tasks/plan-tests/review. For each declared UI surface, walk the follow-on UI-architecture decision (web → SSR/SPA/hybrid; mobile → native/cross-platform; + state/routing if warranted), gated to an ADR like any §4 strategic choice →../_shared/surfaces.md. For the §3 C4Context and §5 C4Container sections, confirm the diagram per../_shared/diagram-presentation.md— write the block intosad.md, validate it, then describe the context / containers in prose (who talks to what, which systems it depends on) and confirm by prose; never paste the raw C4 source as the question. Ateasy, write + a one-line summary and proceed (no per-diagram question). design delta →./references/socratic.md(section list, decision-types, the gate); gate scoring →./references/blast-radius.md; C4 syntax for §3/§5 →./references/c4-mermaid-syntax.md; design-specific question shapes →./references/ask-examples.md. Maintain the edits-log + an adjacent ADR-spawns log. - Critic + finalize. Dispatch the
criticagent —subagent_type: "sdd:critic"(clean-isolated per../_shared/agent-roster.md; model perjudgment_model; effortxhighon L/XL viaCLAUDE_CODE_EFFORT_LEVEL; fallbackgeneral-purposeif unavailable) — with the design delta in./references/critic.md(over../_shared/critic.md) on the finalsad.md+ edits-log + ADR-spawns log; resolve each finding viaAskUserQuestion(Accept revert / Accept amendment / Override-with-rationale → §1 ¶4 bullet). Run the pre-write backstop scans: validate every Mermaid block insad.mdper../_shared/mermaid-check.md(render-parse withmmdcif available, else the structural lint — fix any that don't parse, never commit a broken diagram); ADR title in decision-form kebab-case + StatusAccepted; §9 closed againstadr/; no<placeholder>stubs. On pass, write any amendments, then commit per../_shared/write-and-commit.md— one commit per ADR (design: <slug> ADR-NNNN <title>) and one forsad.md(design: <slug> sad.md); an unresolved self-check item means no commits. Then emit the stage-handoff block per../_shared/handoff.md— What I did + Review (sad.md,adr/) + Run next — resolve the next stage per.route(the Routes table in../_shared/size-matrix.md): forward/sdd:sequences <slug>(which writes flows into §6);sequences' N/A condition = one actor and no multi-step runtime flow, skip target/sdd:data-model <slug>(onquick— auto-skip with the reason + inverted↳ or; onstandard— offer the↳ or; onfull— no skip line); when skipping, carry the next conditions forward in order: no schema change either →/sdd:api <slug>directly; no contract change either → evaluatescreens' N/A condition (no UI surface intarget_surfaces) →/sdd:screens <slug>, or/sdd:tasks <slug>when that holds too.
Definition of Done
docs/features/<slug>/sad.mdexists with all 12 Arc42 sections filled OR marked<!-- N/A: <reason> -->.- §3 has a real
C4Contextblock and §5 a realC4Containerblock — real names from the glossary/spec + the scan, no<placeholder>stubs, noContainer_Bondarytypos. §6 has ≥1sequenceDiagram(thesequencesstage then covers every critical flow / §5 AC — no cap). - Frontmatter
target_surfaces: [...]is non-empty (the Target-surface decision was made in §4) and §5 draws one C4 container per declared surface; each declared UI surface (web-frontend/mobile-app/desktop-app) carries a UI-architecture decision — an ADR, or an inline §4 note if it didn't cross the gate. →../_shared/surfaces.md. - §9 ADR table is closed against
adr/(every file has a row, every row a file). 2–4 ADRs for XS/S, 5–12 for M, 10–15 for L/XL; every ADR Status =Accepted, title in decision-form (0003-sliding-window-counter.md✓ vs0003-rate-limiting.md✗), no strawman options. - §10 scenarios are testable (When / Then / How-verify) and cite spec §6 NFR numbers verbatim (no inventing, no rounding).
- §11 carries a row for every
save_as_oqdecision with both owner AND due (severity literalOpen question); never N/A. - §1 Stakeholders + §3 actors match the glossary exactly when a
CONTEXT.mdexists (per-feature wins over root), else the spec's §4 roles (no inventeduser/admin). - Step-3 Explore ran on a brownfield (or §3 has the greenfield note). Edits-log maintained. The critic ran on the post-Socratic SAD; every finding resolved or overridden.
- The step-7 critic + pre-write backstop scans (mermaid-check, ADR-title form, §9 closure, no-placeholder) are this skill's structural self-check (
../_shared/self-check.md); its result is reported in the handoff.
Anti-patterns
- An ADR for every decision — kills the genre. Only blast-radius decisions become ADRs (5–12 for M, not 25). Conversely, missing an irreversibility under-ADRs the feature.
- ADR
Status: Proposedfrom this skill — it is synchronous (you decide with the user now), so Status isAccepted. Usedecide-adrfor an async Proposed → Accepted flow. - ADR title in problem-form (
0003-rate-limiting.md) or with a strawman option (an alternative an existing constraint already excludes) — both dilute the ADR genre and trigger the critic's F6. - Inventing §10 numbers the spec never agreed to — cite spec §6 NFR verbatim. Naming a concrete stack in §2 that contradicts the repo's conventions without an Override note pointing at §11.
- Skipping the Step-3 Explore on a brownfield — guessing the layout produces a fictional §5 Container view and invented §2 Constraints.
- Returning to a written section — each section lands on disk as it resolves; cross-section drift is the critic's job, not a re-walk. Re-opening §4 after writing §10 means you don't trust the per-section batch.
- Save-as-OQ without owner+due — capture both in the follow-up; missing either downgrades to Drop with a warning, never a half-filled §11 row.
- Resolving critic findings unilaterally (without
AskUserQuestion) — defeats the user-in-the-loop contract. Per-section or batched commits — the disk already protects an interrupted pass; history gets onesad.mdcommit + one per ADR, after the self-check. - Spilling into C4 L3/L4 — out of scope; suggest a separate diagramming pass.
References & template
./references/draft-generation.md— Step 5: per-section sourcing for §1–§12, item-banks, the question budget, pre-Socratic hygiene../references/socratic.md— design's delta over the shared Socratic loop (section list, decision-types, the blast-radius gate, the §11 OQ table)../references/blast-radius.md— the 3-criteria ADR gate (irreversible / multi-module / legitimate alternatives), scoring, target counts../references/critic.md— design's delta over the shared critic (F5 floor, F6 = NFR-leak + strawman-ADR + §2-vs-repo, F1 = strategic-vector drift)../references/c4-mermaid-syntax.md— C4Context + C4Container Mermaid cheatsheet for §3/§5../references/ask-examples.md— design-specific question shapes (strategic-with-ADR-spawn, blast-radius gate, Save-as-OQ follow-up).../_shared/interview-depth.md— the easy/medium/hard dial set in step 1 (per-section question volume + autonomy).../_shared/diagram-presentation.md— how the §3/§5 C4 diagrams are confirmed in prose (write → validate → describe), never as raw source.../_shared/surfaces.md— the target-surface taxonomy (C4-container-grounded); design owns the selection (§4 first decision → frontmattertarget_surfaces), downstream reads it../templates/sad.md·./templates/adr.md·./templates/deployment.md— output scaffolds; inline comments are the per-section generation contract. (C4 syntax →./references/c4-mermaid-syntax.md.)
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
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.

