ui-mockup — Claude Code skill for UI mockups and setup
Create ASCII wireframes, standalone HTML screens, or live prototypes from product requirements. Use the skill to review a proposed interface before building it.
npx skills add mvschwarz/openrig --skill ui-mockup -a claude-codeWhat ui-mockup does
The skill starts by reading feature documents: SPEC.md, validation.md, and background.md. It asks the PM which screens and fidelity level to produce, then gathers real data from the codebase, seed files, or config. Mockups go in supporting/; placeholder data is off limits.
For early requirement work, it writes ASCII wireframes to supporting/mockup-ascii.md. Delivery-ready screens go into supporting/mockup-{feature}.html, with a JavaScript screen switcher. Live prototypes use the app’s existing component library and run in the dev server; their mock data is hardcoded, with no API calls.
The HTML deliverable must stay under 1,000 lines and can rely on Google Fonts, but no other dependencies. Live prototypes cannot introduce components, and screens must follow SPEC.md. That constraint matters when the requested interaction needs a component the app does not already have.
What it helps with
- map screen layouts with ASCII wireframes
- deliver requirement-ready screens as standalone HTML
- test interface interactions in a live prototype
- link mockups to acceptance criteria in
SPEC.md
Example prompts for the agent
- Draft ASCII wireframes for this feature using
SPEC.md. - Create an HTML mockup for this feature in
supporting/mockup-{feature}.html, following the app’s current style. - Build a live prototype to test these interactions with existing components.
How to install ui-mockup
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill ui-mockup -a claude-code2Manually: put the files in place
~/.claude/skills/ui-mockup/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ui-mockup/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill ui-mockup -a codex2Manually: put the files in place
.agents/skills/ui-mockup/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill ui-mockup -a cursor2Manually: put the files in place
.cursor/skills/ui-mockup/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mvschwarz/openrig ui-mockup2Manually: put the files in place
.github/skills/ui-mockup/SKILL.md1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill ui-mockup -a gemini-cli2Platform CLI
gemini skills install https://github.com/mvschwarz/openrig --path skills/_canonical/pm/ui-mockupManually: put the files in place
.devin/skills/ui-mockup/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill ui-mockup -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about ui-mockup
How do I install ui-mockup in Claude Code?
Run npx skills add mvschwarz/openrig --skill ui-mockup -a claude-code. The skill is installed at ~/.claude/skills/ui-mockup/SKILL.md.
What does ui-mockup do?
It produces UI representations at three levels: text wireframes, standalone HTML screens, and live prototypes built with the app’s existing components.
What does ui-mockup need before making a mockup?
It reads SPEC.md, validation.md, and background.md, then asks the PM to choose the screens and fidelity level. It uses real project data and existing styling.
Source text
SKILL.md · Apache-2.0
---
name: ui-mockup
description: "Create UI mockups at three fidelity levels — ASCII wireframes for quick iteration, standalone HTML mockups for delivery with requirements, and live prototypes for interaction testing."
---
You are a UI prototyping assistant that creates mockups for product managers at three fidelity levels.
## Three Fidelity Levels
### Level 1: ASCII Wireframes (fastest, during requirements writing)
Text-based wireframes in markdown showing layout, information hierarchy, and key interactions.
**Where**: `supporting/mockup-ascii.md`
Rules:
- Use box-drawing characters for structure
- Show real data, not placeholder text
- Annotate interactive elements
- Note key behaviors below each wireframe
- Include frontmatter with screen list
### Level 2: Standalone HTML Mockups (for delivery with requirements)
Self-contained HTML files that look like the real app. Portable, no dependencies except Google Fonts.
**Where**: `supporting/mockup-{feature}.html`
Rules:
- Match the application's existing styling exactly
- Use real data from the codebase
- Only show what's in SPEC.md
- Self-contained single HTML file
- Screen switcher nav to toggle between screens via JavaScript
- Keep under 1,000 lines
### Level 3: Live Prototypes (for interaction testing)
Real framework pages using the actual component library. Runs in the dev server.
Rules:
- Use ONLY existing components — don't create new ones
- Hardcoded mock data, no API calls
- Match existing page styling exactly
## Process
### Step 1: Understand What to Mockup
Read feature folder docs first:
- **SPEC.md** — acceptance criteria define what screens are needed
- **validation.md** — the narrowest wedge tells you what's most important to show
- **background.md** — customer drivers and competitive context inform what to emphasize
Then ask the PM about fidelity level and specific screens.
### Step 2: Gather Real Data
- Read the requirements acceptance criteria
- Read existing codebase components to match styling
- Pull real data from seed files or config
- Never use placeholder data
### Step 3: Create the Mockup
### Step 4: Connect to Requirements
- Save to `supporting/`
- Reference from background.md under "Visual References"
- Note in requirements if the mockup informed acceptance criteria
## Guidelines
- **Use real data.** Real names, real ranges, real hierarchies.
- **Only show what's in SPEC.md.** Don't add features beyond the requirement.
- **Less is more.** 3-5 screens beats 10.
- **Match the app exactly.** Read existing code and match styling patterns.
- **Tell the PM what's real vs mocked.**
© mvschwarz · Apache-2.0 · mvschwarz/openrig