design
Design
Use this skill when a feature needs architecture, integration, interface, operational, or validation decisions captured durably before breakdown, whether the input comes from discover.md, direct prompting, or current implementation review.
Read these references when relevant:
references/system-design-template.mdfor the requiredsystem-design.mdstructure and quality barreferences/behavioral-systems.mdwhen the feature includes shared state, routing, connection/session reuse, concurrency, retries, recovery, or protocol error mappingreferences/config-surface-governance.mdwhen the feature touches configuration, startup, compatibility boundaries, environment injection, or test harness inputs
Responsibilities
- Translate project framing into a concrete technical approach.
- Capture architecture, interfaces, data flow, and constraints.
- Make major tradeoffs, risks, and assumptions explicit.
- Define the validation strategy needed before implementation starts.
- Produce feature-scoped PlantUML diagrams that clarify the system design.
- Make failure handling, recovery behavior, and concurrency invariants explicit when they materially affect correctness.
- Reuse existing typed configuration and state carriers before introducing new control surfaces.
Required Output
<feature_path>/system-design.md
Optional companion output:
- updates to
<feature_path>/discover.md - updates to
<feature_path>/user-stories.md <feature_path>/figures/*.pumland<feature_path>/figures/*.svgwhen configured for linked SVG output
Preferred Inputs
<feature_path>/discover.mdwhen presentimpact-analysis.mdwhen present- direct user prompt or backlog context when
discover.mddoes not exist - relevant existing docs, ADRs, or feature notes
- relevant code paths when documenting current implemented behavior
Feature Path Resolution
Resolve <feature_path> as either:
-
<planning_dir>/<feature-slug>/for canonical feature planning -
<planning_dir>/<feature-slug>/subfeatures/<subfeature-id>/for a selected durable subfeature -
If
.skills/planning.jsondefinesplanning_dir, use that as<planning_dir>. -
Otherwise default to
docs/features. -
If
.skills/planning.jsondefinesdesign_diagram_mode, honor it. Otherwise default toembedded.
Design Rules
- Keep this skill feature-scoped, not slice-scoped.
- Focus on decisions that unblock later decomposition and execution.
- Document interfaces, dependencies, and operational constraints clearly.
- Call out risks that should affect slice ordering or stop-and-ask gates.
- Minimize control surfaces: prefer typed structs, parameters, and owned configuration objects over new environment variables, CLI flags, globals, or duplicate compatibility shims.
- Support these entry modes explicitly:
- discover-led design from existing planning docs
- prompt-led design when engineers want to start from requirements or chat context
- current-state design when engineers want to reverse engineer implementation into a reviewable design document
- Prefer explicit section headings over loosely structured prose so reviewers can scan decisions quickly.
- Default to forward-looking design. If the feature is already implemented and the task is to capture current behavior, label it clearly as current-state or implemented design instead of presenting it as pre-implementation intent.
- When implementation and intended design differ, record the delta explicitly so later planning and review do not treat drift as intent.
- Use PlantUML as the UML language whenever you include diagrams.
- If
design_diagram_modeisembedded, include system-design diagrams directly insystem-design.mdwith fencedplantumlblocks. - If
design_diagram_modeislinked_svg, write the PlantUML source files under<feature_path>/figures/, generate matching SVGs into the same directory, and link those SVGs fromsystem-design.mdwith relative Markdown image links such as. - In
linked_svgmode, keep figure backgrounds explicitly white: setskinparam backgroundColor whitein PlantUML, and ensure each emitted SVG includes an explicit white canvas rect such as<rect fill="#FFFFFF" height="100%" width="100%" x="0" y="0"/>so rendered diagrams do not inherit transparent or dark backgrounds. - In
linked_svgmode, do not also embed the same diagram as a fencedplantumlblock insystem-design.md. - Use stable, descriptive figure names such as
component-diagram.puml,component-diagram.svg,sequence-diagram.puml, andsequence-diagram.svg. - Prefer feature-level diagrams such as component, package, sequence, state, or deployment diagrams over low-level implementation detail.
- When the feature contains shared mutable state, cache entries, connection/session lifecycles, or cross-boundary protocol translation, include the relevant invariants, state transitions, and error-mapping policy instead of leaving them implicit.
- Before adding a new configuration surface, inspect the parent feature constraints and any existing typed carriers so the design inherits existing ownership unless it records a deliberate delta.
- Process-global inputs such as environment variables or CLI flags belong only at the outermost compatibility boundary and should be converted immediately into typed state.
- Do not introduce multiple control planes for the same value without documenting why the extra surface is required and who owns it.
Workflow
- Gather the best available inputs:
- read
discover.md,impact-analysis.md, and existing feature planning docs when present - otherwise derive the design from the user prompt, backlog context, and repository context
- read
- Inspect the relevant codebase or adjacent systems as needed, especially existing interfaces, ownership boundaries, operational constraints, and already-owned configuration/state surfaces.
- Read
.skills/planning.jsonwhen present to determine whether diagrams stay embedded or are emitted under<feature_path>/figures/. - Choose the framing mode:
- planned design for work that is not yet implemented
- current-state design for documenting existing implemented behavior
- Write
system-design.mdusing the structure inreferences/system-design-template.md, adding the behavioral guidance fromreferences/behavioral-systems.mdandreferences/config-surface-governance.mdwhen applicable. - Add PlantUML system-design diagrams or linked SVG figures, depending on configuration.
- Refine story boundaries when the design changes implementation shape.
- Stop when the work is concrete enough for
breakdown.
Guardrails
- Do not generate slice-scoped
blueprint.mdor other execution-slice artifacts. - Do not create execution-ready slices for vague or unresolved designs.
- If the work is purely UX-focused, use
ui-flowinstead or alongside this skill. - Do not let feature-level UML drift into slice-scoped class-by-class implementation design; that belongs in
plan. - Do not leave critical behavior such as retry semantics, cache invalidation, ownership scope, or protocol error mapping as undocumented "implementation details" when they shape correctness or operator expectations.
- Do not fail just because
discover.mdis absent; use the best available prompt, backlog, documentation, and code context instead.
More from sirius-cc-wu/sirius-skills
dioxus-ui-ux
Dioxus UI/UX design intelligence. Specialized guidelines for Dioxus Components, plus 50 styles, 21 palettes, 50 font pairings. Stacks: dioxus, daisyui, shadcn, html-tailwind. Actions: plan, build, create, design, implement, review, fix, improve, optimize. Projects: web app, dashboard, admin panel, SaaS, mobile app. Elements: button, modal, navbar, card, form, chart.
16dioxus-stitch
Transforms Stitch designs into clean, modular Dioxus code using daisyUI. Handles RSX conversion, type-safe props, and data decoupling for Rust projects.
8dioxus-ui-skill
Dioxus UI/UX design intelligence. Specialized guidelines for Dioxus Components, plus 50 styles, 21 palettes, 50 font pairings. Stacks: dioxus, shadcn, html-tailwind. Actions: plan, build, create, design, implement, review, fix, improve, optimize. Projects: web app, dashboard, admin panel, SaaS, mobile app. Elements: button, modal, navbar, card, form, chart.
4slice
Validates approved, committed execution-ready work, bootstraps a slice-scoped execution slice, and hands off to guide-execution.
2ui-flow
Captures optional UI and UX flows, screen-level requirements, and interaction notes before implementation.
2commit
Use this skill when requested to commit changes. It ensures commit messages follow project standards and ensures code quality via verification steps.
2