Canonical repo-local DESIGN.md workflow for product, UI/UX, and frontend decision source of truth
Install with the open skills CLI (global, non-interactive — available in every Claude Code session):
npx skills add Yeachan-Heo/oh-my-codex --skill "design" -g -a claude-code -yOr manually — copy the SKILL.md below into:
~/.claude/skills/design-yeachan-heo/SKILL.md---
name: design
description: Canonical repo-local DESIGN.md workflow for product, UI/UX, and frontend decision source of truth
---
# Design Skill
Use `$design` when product, UI/UX, frontend, or design-system decisions need a durable source of truth in the repository. This skill discovers existing design context, interviews for missing product/design information, and creates or refreshes repo-local `DESIGN.md` so future UI/UX/frontend work is grounded instead of improvised.
## Purpose
Make repo-local `DESIGN.md` source of truth and canonical design contract for the current repository:
`existing repo evidence -> missing-context interview -> create/refresh DESIGN.md -> use DESIGN.md for UI/UX/frontend decisions`.
The output is not a pixel-matching loop and not a one-off visual critique. It is the maintained design brief/checklist that implementation, review, and future visual work should cite.
## Use when
- The user asks for design direction, UX guidance, frontend planning, or design-system alignment.
- A repo needs a design brief before UI/frontend implementation begins.
- Existing UI/components/assets/screenshots need to be summarized into a reusable design source of truth.
- UI/UX/frontend decisions are ambiguous and should be resolved through product context, constraints, and documented principles.
- A feature needs `DESIGN.md` created or refreshed before `$ralph`, a designer lane, or implementation work proceeds.
## Do not use when
- The user provides or requests a visual reference/image/live URL and wants measured implementation until screenshots match. Use `$visual-ralph` for that visual-reference implementation loop.
- The task is pure backend/API/infrastructure work with no user-facing design consequence.
- The user only asks to compare screenshots or score visual fidelity. Use `$visual-ralph` and its built-in visual verdict flow.
## Relationship to `$visual-ralph`
`$design` owns the durable repo design source of truth: product goals, users, IA, visual language, components, accessibility, constraints, and open questions in `DESIGN.md`.
`$visual-ralph` owns implementation against an approved generated/static/live-URL visual reference, with screenshot capture, Visual Ralph verdict scoring, and pixel-diff evidence. `$visual-ralph` may read `DESIGN.md`, and it may leave design-system artifacts behind, but it does not replace the `DESIGN.md` discovery/interview/refresh workflow.
If both are needed, run `$design` first to establish the design contract, then run `$visual-ralph` only after the visual reference/baseline is approved.
## Workflow
### 1. Discover local design evidence
Inspect the repository before writing guidance. Look for:
- `DESIGN.md`, `docs/design*`, `docs/ux*`, `docs/frontend*`, `README.md`, product specs, PRDs, and issue notes.
- Existing UI source: routes, pages, layouts, components, stories, examples, demos, theme files, CSS variables, Tailwind/theme config, tokens, icons, and assets.
- Screenshots, mockups, brand files, logos, Figma/export notes, Storybook snapshots, Playwright screenshots, visual-regression baselines, or `.omx/artifacts/visual-ralph/*` references.
- Accessibility, responsive, i18n, content, and platform constraints already encoded in code or docs.
Record evidence with file paths. Distinguish observed facts from design inferences.
### 2. Interview only for missing context
Ask concise questions only when repo evidence cannot answer design-critical context. Prefer one focused round that closes the biggest gaps, such as:
- target users/personas and jobs to be done,
- product/business goals and non-goals,
- brand personality or forbidden aesthetics,
- primary flows and information architecture,
- accessibility level, device/browser support, and implementation constraints,
- existing design assets or references the repo does not contain.
If the user wants autonomous progress or cannot answer, create `DESIGN.md` with explicit assumptions and open questions instead of blocking.
### 3. Create or refresh `DESIGN.md`
Use the structure below. Preserve useful existing content, remove contradictions, and mark unknowns as open questions. Keep it actionable for implementers and reviewers.
#### Required `DESIGN.md` structure/checklist
```markdown
# Design
## Source of truth
- Status: Draft | Active | Needs refresh
- Last refreshed: YYYY-MM-DD
- Primary product surfaces:
- Evidence reviewed:
## Brand
- Personality:
- Trust signals:
- Avoid:
## Product goals
- Goals:
- Non-goals:
- Success signals:
## Personas and jobs
- Primary personas:
- User jobs:
- Key contexts of use:
## Information architecture
- Primary navigation:
- Core routes/screens:
- Content hierarchy:
## Design principles
- Principle 1:
- Principle 2:
- Tradeoffs:
## Visual language
- Color:
- Typography:
- Spacing/layout rhythm:
- Shape/radius/elevation:
- Motion:
- Imagery/iconography:
## Components
- Existing components to reuse:
- New/changed components:
- Variants and states:
- Token/component ownership:
## Accessibility
- Target standard:
- Keyboard/focus behavior:
- Contrast/readability:
- Screen-reader semantics:
- Reduced motion and sensory considerations:
## Responsive behavior
- Supported breakpoints/devices:
- Layout adaptations:
- Touch/hover differences:
## Interaction states
- Loading:
- Empty:
- Error:
- Success:
- Disabled:
- Offline/slow network, if applicable:
## Content voice
- Tone:
- Terminology:
- Microcopy rules:
## Implementation constraints
- Framework/styling system:
- Design-token constraints:
- Performance constraints:
- Compatibility constraints:
- Test/screenshot expectations:
## Open questions
- [ ] Question / owner / impact
```
### 4. Use `DESIGN.md` as the decision contract
For UI/UX/frontend work after the refresh:
- Cite the relevant `DESIGN.md` sections before making design choices.
- Prefer existing components, tokens, and documented constraints.
- If implementation reveals a design contradiction, update `DESIGN.md` or add an open question before proceeding.
- Do not introduce a new design-system layer when existing repo-native patterns can be extended.
### 5. Handoff to implementation or Visual Ralph when appropriate
- For normal frontend implementation, hand off with the relevant `DESIGN.md` sections, repo evidence, and acceptance criteria.
- For visual-reference/image/live-URL matching, hand off to `$visual-ralph` with the approved reference/baseline and note that `DESIGN.md` is supporting context, not the visual verdict target.
## Completion checklist
Do not declare the design workflow complete until:
- Existing design docs/assets/components/screenshots have been inspected or explicitly noted as absent.
- Missing product/design context has been answered, assumed, or listed in `DESIGN.md` open questions.
- `DESIGN.md` exists at the repo root and contains all required checklist sections.
- UI/UX/frontend recommendations cite `DESIGN.md` rather than relying on unstated preferences.
- Any `$visual-ralph` handoff is clearly separated as visual implementation matching, not DESIGN.md governance.
Task: {{ARGUMENTS}}
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Use when you have a spec or requirements for a multi-step task, before touching code
Use when creating new skills, editing existing skills, or verifying skills work before deployment