From shipwright-design
Generates UI mockups from IREB specs as standalone HTML. Produces screens, user flows, and a review viewer for iterative design.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shipwright-design:designThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn IREB specs into interactive HTML mockups before a single line of code is written.
references/design-flavors.mdreferences/design-system-patterns.mdreferences/invocation-mode.mdreferences/iteration-mode.mdreferences/material-design-components.mdreferences/review-loop.mdreferences/review-viewer-template.mdreferences/snippets-chrome.mdreferences/snippets-components.mdreferences/snippets-layout.mdreferences/snippets-variables.mdreferences/step-2-5-brand-extraction.mdreferences/step-2-screen-type-detection.mdreferences/step-3-5-design-preview.mdreferences/step-3-7-chrome-definition.mdreferences/step-3-design-interview.mdreferences/step-4-generate-screens.mdreferences/step-6-design-manifest.mdreferences/step-6a-review-viewer.mdreferences/step-8-completion.mdTurn IREB specs into interactive HTML mockups before a single line of code is written.
Governing rules: Read and follow shared/constitution.md (ALWAYS / ASK FIRST / NEVER boundaries).
================================================================================
SHIPWRIGHT-DESIGN: UI Mockups
================================================================================
Generate HTML mockups from your specs.
Usage:
/shipwright-design (analyze specs, generate all)
/shipwright-design @.shipwright/designs/screens/02-dashboard.html (iterate on one screen)
/shipwright-design @.shipwright/designs/design-feedback-round2.md (process feedback file)
/shipwright-design --upload (integrate uploaded designs)
Output:
- .shipwright/designs/screens/*.html (individual screen mockups)
- .shipwright/designs/flows/*.html (multi-screen user flows)
- .shipwright/designs/index.html (review viewer with feedback panel)
- .shipwright/designs/design-manifest.md (screen registry)
- .shipwright/designs/visual-guidelines.md (design tokens for build phase)
- .shipwright/designs/design-handoff.md (session handoff at finalization)
================================================================================
New Design Session (no .shipwright/designs/ directory):
Iterate on Existing (@file argument pointing to HTML):
Upload Integration (--upload flag or .shipwright/designs/uploads/ exists with files):
.shipwright/designs/uploads/ for existing mockupsResolve it with {shared_root}/scripts/tools/get_phase_context.py --phase-task-id "{phaseTaskId}" --phase design (omit --phase-task-id entirely if the orchestrator did not hand you one — that is what selects standalone) and store the returned mode as invocation_mode (pipeline | standalone | error → STOP). The dispatch token is the authority — never re-derive the mode from run-config state. In pipeline mode do NOT call orchestrator.py update-step (single-session-apply owns completion). Full decision tree: invocation-mode.
Single-Session Gate Discipline: under mode: "single_session", honour per-gate policies — resolve interactive gates via ${SHIPWRIGHT_PLUGIN_ROOT}/../../shared/scripts/tools/resolve_gate_policy.py --phase design --list before stopping (auto-default → proceed; orchestrator-approve/hard-stop → STOP; design.preview-approval + design.review-loop-finalize are orchestrator-approve — a human eyeballs the mockups). Full rule: shared/prompts/single-session-gate-discipline.md.
The SessionStart hook injects SHIPWRIGHT_PLUGIN_ROOT=<path>. Use it directly.
Read these files for stack and architecture context before generating mockups:
CLAUDE.md — stack context (influences component and layout choices).shipwright/agent_docs/architecture.md — app structure, component hierarchy (if exists)If a file does not exist, skip it silently.
Early tracking: Mark design phase as in-progress in the project config (for session handoff):
# Read existing project config, add design_phase field
python3 -c "
import json; from pathlib import Path
p = Path('shipwright_project_config.json')
c = json.loads(p.read_text()) if p.exists() else {}
c['design_phase'] = 'in_progress'
p.write_text(json.dumps(c, indent=2) + '\n')
"
If the orchestrator handed you a phaseTaskId — i.e. /shipwright-run dispatched
you as a phase-runner subagent — you are part of an active pipeline. Run this as your
very first action:
uv run "${SHIPWRIGHT_PLUGIN_ROOT}/../../shared/scripts/tools/get_phase_context.py" \
--phase-task-id <phaseTaskId-from-context>
The tool prints structured JSON with runId, phase, splitId, prerequisites,
runConditions, and a skill_artifacts_to_read list. Read those artifacts
before proceeding so this phase session has full context for what came before.
If NO phaseTaskId was handed to you, this is a standalone invocation —
continue with Step 1 below as normal.
One resolver, one verdict. This is the same tool your "Detect Invocation Mode" step
already ran, so reuse that payload rather than re-deriving anything: its mode IS your
invocation_mode. Pass --phase <your phase> so a token belonging to another phase is
rejected, and if mode is "error" (exit 2) STOP — a dispatched phase must never
fall back to standalone.
Goal: Understand what the app needs from the IREB specs.
Read these files:
shipwright_project_config.json → profile name, scope.shipwright/planning/project-manifest.md → split overview.shipwright/planning/*/spec.md → all split specs (Functional Requirements)Extract from each spec:
Map FRs to screen types automatically using the keyword table. See step-2-screen-type-detection.md for the FR-keyword → screen-type table and the proposed screen-list output.
If the user has an existing website, auto-extract design tokens before asking design questions. See step-2-5-brand-extraction.md for the WebFetch flow and token-extraction procedure.
Ask 3–5 targeted questions covering design system flavor, brand character, layout, existing designs, and special UX. Then present the proposed screen list for confirmation. See step-3-design-interview.md for the full question list, palette derivation table, and confirmation prompt.
Generate exactly 3 preview screens (auth + main layout + content-heavy) and confirm the look-and-feel before generating all screens. See step-3-5-design-preview.md for the procedure and confirmation prompt.
Create a single source of truth (.shipwright/designs/chrome-definition.md) for all shared UI elements (sidebar, topbar, footer, branding) so every screen has identical chrome.
See step-3-7-chrome-definition.md for the resolved-HTML procedure and confirmation prompt.
Create standalone HTML mockups using the snippet assembly system. See step-4-generate-screens.md for the 8-step assembly process, design-context references, and HTML requirements.
Goal: Create multi-screen flow mockups.
For each confirmed flow:
.shipwright/designs/flows/{flow-name}.htmlFlows show screens in sequence with arrows or step indicators. See user-flow-patterns.md for standard flow templates.
Create the registry .shipwright/designs/design-manifest.md that downstream skills read.
See step-6-design-manifest.md for the manifest template.
Create .shipwright/designs/index.html — a full review tool with grid view, fullscreen viewer, and integrated feedback panel.
See step-6a-review-viewer.md for the template + placeholder mapping and feature list.
Goal: Create a reusable design token document for shipwright-build.
Skip if: User uploaded existing visual guidelines in Step 3.
See visual-guidelines-template.md for the complete template and value sourcing rules.
Goal: Add UI References back to the IREB specs.
If specs have a "UI Requirements" section (Section 7), update it with:
This is optional — skip if specs don't have the UI Requirements section.
Print the completion summary, review instructions, and generate screen-routes.json for design fidelity testing, then proceed to Step 8.5.
See step-8-completion.md for the completion banner, review instructions, and screen-routes derivation rules.
See review-loop.md for the complete review loop flow (Option A: Finalize with FR-Coverage Gate + Spec Backflow, Option B: Process Feedback, Option C: Pause, Decision Log Format, Flow Diagram).
Run this only after Step 8.5 Option A approves the design. Performs the canon minimum (C1/C2/C3/C5 + phase_history); C4 is skipped by design policy.
See step-9-finalization.md for the full bash sequence and the SHIPWRIGHT_RUN_ID handling.
See iteration-mode.md for Mode 1 (single-screen iteration), Mode 2 (feedback-file processing), and the Chrome Change Propagation rule.
See upload-mode.md for the .shipwright/designs/uploads/ integration procedure.
:root variable blocks for each flavor × character combinationuntitled-ui)material-design)npx claudepluginhub svenroth-ai/shipwright --plugin shipwright-designGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Resolves in-progress git merge or rebase conflicts by analyzing history, understanding intent, and preserving both changes where possible. Runs automated checks after resolution.