Skip to main content
skill CX Codex

om-mockup-prototype — Claude Code skill: what it does, how to install

Builds a neutral clickable low-fidelity HTML prototype directly from a product brief. It tests flows and assumptions locally in a browser before backlog grooming.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add open-mercato/skills --skill om-mockup-prototype -a claude-code
Open on GitHub

What om-mockup-prototype does

The skill turns a selected flow from product-brief.md into standalone local HTML, CSS, and basic event handlers. It runs with mock data in neutral styling without demanding an existing design system. The generated mockups let you evaluate navigation, labels, and edge cases early.

Execution is interactive. If business rules conflict or facts are missing, the skill halts and waits for direct human input instead of guessing requirements. Existing application code, the source brief, and .uxproof/ stay intact. Every run saves outputs into a dedicated revision directory alongside prototype.json and a context record.

Automated verification depends on a configured browser provider to exercise the pages. If browser access is missing, the tool logs the verification as not-run, which flags the artifact as incomplete.

What it helps with

  • generate clickable HTML mockups from a product brief
  • verify user journeys locally in a browser before visual design
  • record assumptions and edge states before writing backlog items
  • create isolated prototype revisions without touching application code

Example prompts for the agent

  • Build a prototype for our checkout flow: om-mockup-prototype --flow checkout
  • Create a new revision from an existing folder: om-mockup-prototype --refresh specs/prototypes/v1
  • Generate interactive wireframes from the brief: om-mockup-prototype specs/product-brief.md --flow onboarding

How to install om-mockup-prototype

1Skills CLI (Vercel)

npx skills add open-mercato/skills --skill om-mockup-prototype -a claude-code

2Manually: put the files in place

~/.claude/skills/om-mockup-prototype/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/om-mockup-prototype/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about om-mockup-prototype

How to install om-mockup-prototype in Claude Code?

Run npx skills add open-mercato/skills --skill om-mockup-prototype -a claude-code.

What does om-mockup-prototype do?

It takes a flow from your product brief and generates a clickable static HTML prototype with simulated data, verifying interactions in a browser.

Does om-mockup-prototype modify existing project code?

No, it never modifies existing application source code, the product brief, or .uxproof/. All generated mockups and metadata are written to an isolated revision directory.

Source text

SKILL.md · MIT
---
name: om-mockup-prototype
description: Build a neutral clickable low-fi prototype from a product brief during discovery, after the first synthetic panel and before refreshing the brief or drafting a backlog. Preserve business rules and explicit assumptions, simulate the chosen flow locally, and verify navigation and relevant states in a browser. Use for discovery wireframes or testing a flow before detailed design.
---

# Discovery prototype

Turn a selected flow from the product brief into neutral screens a person can
operate. The result is self-contained local HTML with simulated data, a context
record and browser evidence. It tests the sequence, labels, choices and recovery
paths before detailed visual design. It works with or without a design system.

In the discovery hand-off, this step follows the first `om-synthetic-users`
panel. The user may then walk the prototype with another panel before
`om-discover --refresh` incorporates the observations and checks readiness for
`om-backlog`. A direct invocation can use a brief without a panel report.

<HARD-GATE>
Keep the brief's business rules, non-goals, scope and owned decisions intact.
Mark missing facts and proposed flow changes as assumptions; never turn a
synthetic suggestion into an accepted requirement. A prototype or its approval
does not prove user demand or satisfy the Definition of Ready. Write only new
files in the selected prototype revision. Keep application code, the brief and
`.uxproof/` unchanged; preserve previous revisions and manual work.
</HARD-GATE>

## Arguments

- `{brief}` (optional): a repository-relative product-brief path. Default `${SPECS_DIR}/product-brief.md`.
- `--flow <name-or-id>` (optional): the Key flow to simulate. Use the flow already chosen in the current conversation; otherwise propose one from the brief and confirm it.
- `--panel-report <path>` (optional): a repository-relative report from the first synthetic panel. With none supplied, use the report returned by the current discovery hand-off; otherwise proceed without one and say so.
- `--slug <slug>` (optional): a lowercase kebab-case output name, proposed from the flow without a setup question.
- `--refresh <revision-dir>` (optional): revise a previous output of this skill by writing the next new revision. Keep its slug and link the previous revision; never replace existing files.

## Workflow

**ALWAYS check first:** Apply `.ai/skills/om-mockup-prototype/SKILL.md` when present; safety rules still win.

0. **Load context and safety rules.** Follow `references/agentic-setup.md` and read `references/rules.md` on every run. Resolve optional config and safe local paths, apply the repository's instructions and permitted override, and load a configured browser descriptor when available. Missing config never starts delivery setup.

1. **Select the flow and preserve its constraints.** Read the brief's Key flows, Product, Scope, Business rules, Non-goals, Decisions, Domain glossary and relevant open questions. Read the optional panel report as synthetic hypotheses. Record source paths, relevant stable rule/decision IDs and their status, and what remains unknown. If the brief or a usable flow is missing, stop with the precise missing input. For `--refresh`, inspect the earlier context and ownership record before drafting a new revision (`references/prototype-format.md`).

2. **Confirm the simulation boundary.** Show the actor, starting point, success outcome, screen/state list, preserved rules and any assumptions the interaction would require. Ask only for information unavailable in the context and for unresolved product choices. Existing explicit authorization for that exact scope stands. A rule conflict needs the human's decision through the brief's required change path; do not resolve it in prototype code. Confirmation approves a simulation and its stated assumptions, not the truth of those assumptions.

3. **Build the clickable revision.** Follow `references/prototype-format.md`: create a fresh revision directory, write the context record, and construct static HTML, CSS and small local event handlers. Use neutral wireframes, accessible controls and simulated data. Wire the selected journey, relevant edge states, back navigation and reset; represent excluded destinations honestly. Record assumptions in the context file without putting panel conclusions or expected reactions into the simulated interface.

4. **Verify the artifact.** Run `references/quality-gate.md`: check scope, offline operation and required interactions, then exercise the local HTML through the browser provider's named operations. Capture actual evidence, close the session, fix failed interactions within the new revision, and recheck affected states. An unresolved static failure means `Verification: incomplete`, even when it prevents opening the browser. When static review passes but browser access is unavailable, record `Verification: not-run`; do not claim a browser walk. Failed or partial browser checks also mean `incomplete`.

5. **Record and report the result.** Finalize `prototype.json` with the file inventory, context sources, previous revision and verification result. Report through `references/report-templates.md`, with the artifact, limitations and exact Output contract lines. Return to the calling discovery hand-off when present; this skill does not invoke a panel, refresh the brief, file a backlog or start implementation. A direct user may choose a later exact invocation, recorded in `Next:` without executing it.

## Output contract

End with these exact, undecorated lines when an artifact was written:

```text
Prototype: <repo-relative path to revision/index.html>
Prototype context: <repo-relative path to revision/README.md>
Verification: passed | incomplete | not-run
Next: none | om-<skill> <exact user-approved arguments>
```

Consumers parse `^Prototype: (\S+)$`, `^Prototype context: (\S+)$`,
`^Verification: (passed|incomplete|not-run)$` and
`^Next: (none|om-[a-z-]+.*)$`. Emit only one final `Next:` line. It names an
explicitly chosen, still-unexecuted action; otherwise emit `Next: none`.
Do not emit artifact paths when no files were written. A declined follow-up or
completed operation belongs in the prose, not in `Next:`.

## Rules

- Interactive only. A missing human decision is a stop; no autonomous mode or implicit choice of business policy.
- Use the existing UI language and the brief's terminology. Neutral styling does not remove accessibility, meaning or useful recovery text.
- `.uxproof/` is read-only context. This skill creates no brand, moodboard, tokens, design contract or production component, and does not require a design system to be extracted first.
- All displayed records are fictitious simulation data. Never reuse personal interview details, credentials or production records.
- Keep `[SYNTHETIC]` and `[ASSUMPTION]` labels in the context record. Preserve confirmed decisions with their source and owner. Browser checks verify prototype behavior only.
- Preserve old revisions and manual files. A refresh writes a fresh revision after validating the prior ownership record and its path.
- Perform no tracker mutations, publishing, dependency installation or application boot. Invoke no unavailable companion skill; report the missing capability instead.
- Read `references/rules.md` for the shared writing rules, output markers and evidence distinctions; they always apply.

© open-mercato · MIT · open-mercato/skills

Similar skills

Everything for Design →

From the same set41

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor