Files
claude-plugins/composer/skills/ui-system/references/design-interview.md
movq 20acf3ae9b chore(composer,symphony): align skills with skill-development spec
Validated against the plugin-dev:skill-development checklist and
applied conformance fixes:

Description style — all five skill descriptions now use the canonical
"This skill should be used when..." third-person form, with expanded
trigger-phrase coverage. Previously used imperative "Use when..." which
the spec calls out as wrong.

Writing voice — body prose changed from "You are the dispatcher / You
walk a user through..." to imperative "Act as the dispatcher / Walk
the user through...". Remaining "you" usage is confined to quoted
output text the agent prints to the user, which is correct usage.

Progressive disclosure — composer/skills/ui-system/SKILL.md was 2513
words (over the 2000-word ideal). Refactored to 1063 words by moving
detailed phase content into:

- references/design-interview.md (D1–D11 phase specifications)
- references/interaction-interview.md (I1–I11 phase specifications)
- references/inspiration-presets.md (Linear/Notion/Stripe/etc. table)

The SKILL.md now points at each reference as needed; agents load only
what's relevant for the current phase. Other four skills already
within the 1000–2000 word range, no refactor needed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 22:10:14 -05:00

4.5 KiB
Raw Blame History

Design system interview — full phase reference

Detailed phases for Part 1 of the ui-system interview. Read this when running the design-system interview; it expands the phase summaries in SKILL.md.

Each phase: state what's being decided, show the default if there is one, ask the question(s), confirm the answer back, move on. The user can reply default (accept) or skip (mark <TBD: ...>) at any phase.

D1 — Visual posture (one paragraph)

The north star sentence for visual decisions. Don't ask for paragraphs; ask for adjectives and assemble.

Three or four words that describe how this should feel.
Examples: "quiet, dense, monochrome, one accent" / "playful,
generous, expressive type" / "clinical, neutral, accessibility-forward".

Compose into a single sentence; show; accept.

D2 — Color

Batch as a single phase with sub-questions; tight loop.

D2.1 Brand primary. If material gave a color, propose it. Else:

Pick a brand primary. Either name a hex, name a color
("warm orange", "deep teal"), or name a reference ("Linear's purple",
"Stripe's indigo"). I'll generate the variants from there.

D2.2 Brand secondary. Optional. default = none.

D2.3 Neutral tone. Warm / cool / true. One question.

For grays, do they feel slightly tan (warm), slightly blue (cool),
or truly neutral (true)? Default: cool.

D2.4 Generate the neutral scale. Compute 50950 from the chosen tone and brand contrast targets. Show the user; offer default or "redo with warmer/cooler/more contrast".

D2.5 Semantic colors. Success / warning / error / info. Show defaults that contrast against both light and dark backgrounds; user accepts or overrides one at a time.

D2.6 Dark mode. yes / no / system-following. Default: system. If yes, generate the dark token mapping (invert + adjust saturation per token class) and show.

D2.7 Accessibility check. Compute contrast ratios between primary + neutral pairs. Flag anything below 4.5:1 for body text or 3:1 for UI. Don't silently accept failures — surface and confirm or adjust.

D3 — Typography

D3.1 One family or two? Default: one.

D3.2 Family choice. If user has no preference, offer presets:

  • Modern sans: Inter (free, broad weights)
  • Humanist: Source Sans 3 / IBM Plex Sans
  • System stack: native to OS (free, no load)
  • Editorial: Inter + Fraunces (display)
  • Technical: IBM Plex Sans + IBM Plex Mono

D3.3 Scale base. 14, 15, 16. Default: 16 (web), 17 (iOS native), 14 (compact dashboards).

D3.4 Scale ratio. 1.125 (subtle), 1.2, 1.25 (default), 1.333 (dramatic), 1.5 (display-heavy).

D3.5 Line-height policy.

  • Display: 1.11.2 (tight)
  • Body: 1.5 (normal)
  • Long-form prose: 1.7 (relaxed)

Defaults usually fine; user can override one of three.

D4 — Spacing

D4.1 Base unit. 4 (default — finer control) or 8 (rougher cadence; iOS native often).

D4.2 Scale. Use the standard 12-step (0, 0.5, 1, 1.5, 2, 3, 4, 6, 8, 12, 16, 24) — almost always accepted as default.

D5 — Radii

D5.1 Posture. sharp (04) / tight (48) / medium (816) / pillowy (16+) / mixed.

D5.2 Generate sm/md/lg/pill/full. Show; accept or tweak one.

D6 — Shadows & elevation

D6.1 Posture. flat (none) / subtle / generous.

D6.2 Scale. xs/sm/md/lg/xl. Generated from posture; show; accept.

D7 — Density

D7.1 Default density. comfortable (default; web app) / cozy / compact (data-heavy dashboard).

This drives component padding tokens — important enough to ask, easy to forget otherwise.

D8 — Visual motion

D8.1 Default duration. fast (150ms), default (250ms), slow (400ms). Default: default.

D8.2 Default easing. standard / accel / decel / custom. Default: standard.

Behavioral motion (when things animate) lives in the interaction interview, not here.

D9 — Components

Read the entity vocabulary from ia.md. Confirm the standard set (Button, Input, Card, Surface) and ask for project-specific additions found in IA.

For each project-specific component, ask: variants? states? anatomy? Default to "standard variants only" if user is unsure — better to add later than over-spec now.

D10 — Theme variants (skip by default)

Multi-brand / tenant theming usually no for v1. Default: skip.

D11 — Accessibility tokens

D11.1 Focus ring. Style (solid / double / inner-outer) and color (brand / accent / outline-default). Default: solid 2px brand at 60% opacity.

D11.2 Contrast targets. Confirm WCAG AA (4.5:1 text, 3:1 UI). AAA optional. Default: AA.