plugins/systems-design/skills/design-workflow/SKILL.md
Guides a full system design from idea to spec — sequences requirements gathering, architecture decomposition, data modeling, API design, and document writing into a coherent workflow with clear handoffs. Use when the user asks to "design a system", "build X from scratch", "architect something end-to-end", "plan a new service", or has a broad design ask that spans multiple concerns. Also use when the user says things like "I need to build X" without specifying which aspect to start with. This is the entry point for any design task that isn't clearly scoped to a single skill (data model only, API only, etc.).
npx skillsauth add lucasilverentand/skills design-workflowInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Orchestrates a full system design by sequencing the focused skills in the right order. Each skill does one thing well — this skill decides which ones to invoke, in what order, and handles the transitions between them.
This plugin owns the core design skills: architecture, data-modeling, api-design, design-review. For full end-to-end work, compose with companion plugin skills when they are installed: project:requirements, documentation:write-design-doc, documentation:write-adr, and documentation:c4-diagrams.
api-designdesign-reviewdata-modelingNot every project needs every step. Skip steps that don't apply, but skip consciously — acknowledge what you're skipping and why.
Before doing anything, figure out what already exists:
.context/architecture/ for existing design artifactsIf significant work already exists, don't start from scratch — pick up where the existing work leaves off.
When to do this: The user has a vague idea ("I need to build X") or the requirements have gaps that would block architecture decisions.
When to skip: The user has a clear, specific ask with known constraints, or existing documentation covers the requirements.
What to do: If project:requirements is installed, follow it. Otherwise gather the minimum requirements inline. The output is a structured requirements doc in .context/architecture/requirements/. The key deliverables are: functional requirements (MoSCoW-prioritized, numbered), NFR targets with concrete numbers, constraints, and open questions.
Transition: Once requirements are captured, move to architecture. Carry the requirements doc forward — the architecture skill reads it as input.
Always do this for new systems. This is the core intellectual work — component decomposition, data flow, failure modes, tech selection.
What to do: Follow the architecture skill. The output is a set of components with clear boundaries, data flow analysis, failure mode thinking, and tech selection with trade-offs.
Key decision at this step: D1 vs Neon (see data-modeling's "Data store selection"). This shapes everything downstream.
Transition: Architecture produces the component list and data flow. Hand these to data-modeling for schema design, then api-design for the API surface.
When to do this: The system has persistent state (most systems do).
When to skip: The system is stateless (pure compute, proxy, or orchestration layer with no database).
What to do: Follow the data-modeling skill. Start from the entities identified in architecture. The output is a Drizzle schema with IDs, naming, tenancy, timestamps, indexes, and migrations.
Transition: The schema informs the API design — resources map to entities, and the API shapes are derived from the schema.
When to do this: The system has an HTTP or RPC interface (most systems do).
When to skip: The system is purely background (queue consumer, cron job) with no external API.
What to do: Follow the api-design skill. Start from the resources identified in data modeling and the flows from architecture. The output is a spec with endpoints, schemas, auth, errors, and cross-cutting concerns.
When to do this: The design is substantial enough to document (>1 service, >5 endpoints, non-trivial architecture). Or the user explicitly asks for a design doc.
When to skip: Small features, quick additions, or when the user prefers to keep things informal.
What to do: If documentation:write-design-doc is installed, follow it. Otherwise write the design doc inline from the outputs of steps 2-5. The design doc is the artifact that engineers implement from.
ADRs: If any non-obvious decisions were made during the design (new service, new vendor, deviation from defaults), suggest capturing them as ADRs via documentation:write-adr when available. Don't create ADRs for every decision — only for genuine trade-offs where the rejected option had real merit.
Diagrams: If the system has >4 components or the user wants a visual, produce a C4 diagram via documentation:c4-diagrams when available. A Container-level diagram is the most useful default.
Before declaring the design done, run a quick self-review using the design-review lens:
If gaps surface, go back and fill them rather than leaving them as "open questions" — unless they genuinely need input from someone else.
AskUserQuestion for genuine forks. When there are two viable paths and the choice affects everything downstream, ask. Don't ask about cosmetic details.development
Cross-platform Apple Human Interface Guidelines: color, typography, layout, materials, motion, accessibility, SF Symbols, branding, plus shared UI elements (activity views, rating indicators, web views, …) and meta sections (components, patterns, technologies). Use when the design topic is platform-agnostic. User says: "iOS color tokens", "SF Symbols", "Apple typography", "dark mode guidance".
development
Guides a full system design from idea to spec — sequences requirements gathering, architecture decomposition, data modeling, API design, and document writing into a coherent workflow with clear handoffs. Use when the user asks to "design a system", "build X from scratch", "architect something end-to-end", "plan a new service", or has a broad design ask that spans multiple concerns. Also use when the user says things like "I need to build X" without specifying which aspect to start with. This is the entry point for any design task that isn't clearly scoped to a single skill (data model only, API only, etc.).
development
Synthesizes build-ready design systems and DESIGN.md files from chat briefs, screenshots, moodboards, videos, URLs, live pages, or local image folders while preserving the target product identity. Use when the user asks to "make a design system from these screenshots", "turn this moodboard into DESIGN.md", "extract the design language from this video", "define the UX vibe and rules from these references", or create cohesive UI rules from visual inspiration.
development
Reviews and critiques an existing or proposed system design — flags single points of failure, missing non-functional requirements, scaling bottlenecks, security gaps, operational blind spots, unjustified tech choices, and places where the design will fall over under load or failure. Produces a structured review with severity-tagged findings, not just vibes. Use when the user asks for a second opinion on an architecture, requests a design review, wants feedback on a proposed system, pastes a design doc, or says things like "review this design", "what's wrong with X", "poke holes in this", or "is this a good architecture".