From great-designers
Produce a design spec / IA doc / interaction spec for a feature, surface, or system change. Reads the project specification (README, CLAUDE.md, brand brief, design system, user research), then dispatches a designer persona to draft the spec in their register. Default persona auto-selected by signal — Norman for cognitive flows, Spool for usability, Rams for visual restraint, Tufte for data UI, etc. Override with --persona. Output saves to design/specs/<slug>.md. Use when a feature or surface needs a structured proposal before build.
How this skill is triggered — by the user, by Claude, or both
Slash command
/great-designers:designers-write-specThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Produce a design spec for a feature, surface, or system change.
Produce a design spec for a feature, surface, or system change.
This skill is the design equivalent of /engineers-write-spec — the upstream artifact that downstream work obeys. Before pixels are pushed or code is written, the spec establishes what's being designed, what user is being served, what constraints apply, what alternatives were considered, what trade-offs were accepted, and what's still open.
The spec serves three downstream consumers:
Not for: line-level UI nits (use /designers-design-review); craft conversations about a single screen (use /designers-channel <persona>); auto-generated documentation.
When this skill is invoked with a <feature> argument and optional --persona:
Resolve the project root the same way /designers-project-init does. Verify CLAUDE.md (or README.md) exists and the design/ directory is present. If design/ is missing, recommend running /designers-project-init first; do not auto-create.
Read the project specification:
CLAUDE.md — orchestrator-mode notes, current spec slug, conventionsREADME.md — what the project does, who it's fordesign/systems/brand.md (or BRAND.md) — voice, color, type, motiondesign/systems/ — components, tokens, patternsdesign/audits/ — what's been observed about the current surface.great-authors/project.md if cross-craft projectdesign/audits/)Resolve the persona to dispatch. If --persona is given, use it. Otherwise auto-select by signal:
| Signal in the feature description / project | Default persona |
|---|---|
| "cognitive flow", "mental model", "affordance", "user is confused", door problem | don-norman-designer |
| "usability test", "research", "what do users actually do", evidence | jared-spool-designer |
| "design management", "team", "1:1", "calibration", "hiring" | julie-zhuo-designer |
| "restraint", "minimalist", "industrial", "less but better", form | dieter-rams-designer |
| "icon", "glyph", "favicon", "32x32", "16x16", pixel-grid | susan-kare-designer |
| "discovery", "four risks", "opportunity solution tree", outcomes | marty-cagan-designer |
| "typography", "identity", "brand voice", "wordmark", "poster" | paula-scher-designer |
| "physical product", "wearable", "hardware", "athlete", signature object | tinker-hatfield-designer |
| "chart", "dashboard", "data UI", "small multiple", "data-ink" | edward-tufte-designer |
| None of the above | don-norman-designer (the cognitive default) |
Document the choice in the spec's frontmatter.
Dispatch the persona via the Agent tool with subagent_type: "great-designers:<persona-slug>-designer". The brief must include:
<feature> argument, plus any context the user provided)design/specs/<slug>.mdThe output structure:
---
title: <Feature/surface name>
slug: <slug>
persona: <persona-slug>
created: YYYY-MM-DD
status: draft | proposed | accepted | implemented | superseded
---
# Design spec: <Title>
## Problem
<One paragraph. What is the problem? Who has it? Why now? Name the user, not the demographic.>
## User
<One paragraph. The named user (or the closest specific approximation): what they're trying to do, what they bring, what context they're in. The mental model they arrive with.>
## Constraints
<Bulleted list. Real constraints — brand, accessibility, technical, deadline, budget. The constraints are part of the design, not an afterthought.>
## Proposal
<2-4 paragraphs. The proposed solution, described concretely enough that the implementer can build it. Include flow diagrams, key states, copy where it carries the design, components used.>
## Alternatives considered
<2-4 alternatives with one paragraph each. What was rejected and why. The rejections are part of the proposal's defense.>
## Trade-offs
<Bulleted list. What the proposal costs in exchange for what it buys. Honest accounting, not advocacy.>
## Decision
<One paragraph. The chosen path, the reasoning in one or two sentences, the criterion that would invalidate the decision.>
## Open questions
<Bulleted list. Things the spec does not yet answer. The implementer is allowed to make these calls; the spec author is acknowledging the gaps.>
Save the doc to design/specs/<slug>.md. If the file exists, ask the user whether to overwrite, save as <slug>-v2.md, or skip.
Report:
📝 Saved to design/specs/<slug>.md (<word-count> words, drafted by <persona>).
Problem: <one-line summary>
Decision: <one-line summary>
Next:
- /designers-design-review design/specs/<slug>.md to dispatch a panel for review
- /designers-channel <other-persona> to refine specific sections (e.g., Tufte on the data UI portion, Scher on the typography)
great-engineers.)CLAUDE.md's Current spec: field.--persona norman and request the a11y format explicitly. Filed for v1.0 as /designers-accessibility-audit.npx claudepluginhub sethshoultes/great-designers-plugin --plugin great-designersProvides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.