mock
Creates interactive HTML mocks for features through guided iteration with users in exploration mode (generating 3+ variants to explore ideas) or confirmation…
Identity proven by GitHub's verified organisation badge (imbue-ai)
- Agents
- Claude Code
- License
- MIT (permissive)
- Pin
- f847102pinned Oct 9, 2026
- Context cost
- about 3,000 tokenswhen the skill loads
- GitHub stars
- 236on imbue-ai/sculptor
- Scripts
- None found
What it does
“Create interactive HTML mocks for a feature through guided iteration with the user. Two modes: exploration (generates 3+ end-to-end variants to help the user surface ideas) and confirmation (single coherent mock to visually verify an existing design). Can be invoked standalone or from `/sculptor-workflow:spec` as input to, or output of, a spec.”
Generated summary from the skill's own text
Creates interactive HTML mocks for features through guided iteration with users in exploration mode (generating 3+ variants to explore ideas) or confirmation mode (single coherent mock to verify existing designs). Produces mocks.html with realistic app chrome and sample data, plus mocks.context.md to track decisions and rejected alternatives.
When to use it
- Early design phase to explore multiple approaches for a feature
- Verifying a completed spec design through visual mockup
- Multi-screen feature flows requiring end-to-end design validation
- Building consensus with stakeholders on feature direction
When not to
- Production code or component implementation needed
- Detailed interaction design or animation specification
- When visual style reference or UI guidelines unavailable
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add imbue-ai/sculptor --skill mockInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install imbue-ai/sculptor mock@f847102ada1d6896bf6a3a5eccde996760526d9eInstalls the commit we checked (f847102).
Copy by hand
Download the folder at f847102 and put it in .claude/skills/mock for Claude Code and in .agents/skills/mock for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "mock" by Imbue. Source, pinned to commit f847102ada1d6896bf6a3a5eccde996760526d9e: https://github.com/imbue-ai/sculptor/tree/f847102ada1d6896bf6a3a5eccde996760526d9e/sculptor/sculptor-workflow/skills/mock 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/mock/ for Claude Code and .agents/skills/mock/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/imbue/mock
SKILL.md at the pin
---
name: mock
description: |
Create interactive HTML mocks for a feature through guided iteration with
the user. Two modes: exploration (generates 3+ end-to-end variants to help
the user surface ideas) and confirmation (single coherent mock to
visually verify an existing design). Can be invoked standalone or from
`/sculptor-workflow:spec` as input to, or output of, a spec.
argument-hint: [feature description]
---
# Mock
Iterate with the user on HTML mocks of a feature. In **exploration mode**
you generate multiple end-to-end variants to help the user figure out what
they want. In **confirmation mode** you generate a single coherent mock
to visually verify a design that is already specified. Either way, the
user iterates, you update the mocks and log every change, and the two of
you decide together when to stop.
You do NOT commit. You do NOT write production code. The only artifacts
you create are `mocks.html` and `mocks.context.md`.
## First: Rename this agent to "Mock"
Before doing anything else, rename this agent to "Mock" via the
`/sculptor:sculpt-cli` skill so the user can identify this tab at a
glance. This applies whether you were spawned by `/sculptor-workflow:spec`
or invoked directly. Use `sculpt --help` or `sculpt schema` to find
the right rename command.
## Step 1: Load docs config (REQUIRED — do not skip)
**You MUST have the docs config before doing anything else.** Do not
proceed to any later step until the file exists and you have read it.
Check for `.sculptor/docs.md` in the repo root.
- If the file is **missing**, immediately invoke the
`/sculptor-workflow:setup-repo` skill via the Skill tool. Do NOT
ask the user whether to run it first — just run it.
- Once the file **exists**, read it for:
- **Spec Location** — the path pattern used to place mock files
- **UI Reference** — how to match the app's visual style (may be
blank)
Mock conventions (what good mocks look like) are **baked into this
skill** — see the *Mock conventions* section below. Don't look for
them in `.sculptor/docs.md`.
## Mock conventions (baked into this skill)
Every mock produced by `/sculptor-workflow:mock` follows these rules:
- **Multiple states in a single HTML file.** Each scenario / state is
clearly labeled with a short description of what it demonstrates.
Don't split states across files.
- **Realistic app chrome.** Render the mock inside a plausible app
window — browser chrome, sidebar, header, navigation — not
isolated components floating on a blank page.
- **Match the app's existing visual style.** Read the UI Reference in
`.sculptor/docs.md` (or scan frontend code) before guessing colors,
spacing, typography.
- **Realistic sample data.** Use plausible names, timestamps, content
— never `foo`/`bar`/`lorem ipsum`.
## Step 2: Parse the input
`$ARGUMENTS` contains the feature description and, when invoked by
another agent, may include these markers:
- `Mode: exploration` or `Mode: confirmation`
- `Target path:` an absolute or repo-relative mock directory
- `Slug:` a pre-chosen slug
- `Associated spec:` the path of an existing spec. **Required in
confirmation mode** — the mocks are built from the spec. Absent in
exploration mode (no spec exists yet).
If the feature description is missing or too vague (1-3 words like
"settings page"), use your question tool to ask the user
to describe the feature in a sentence or two before continuing.
If mode is **confirmation** and `Associated spec:` is missing, stop and
ask with your question tool for the spec path
before proceeding — confirmation mocks without a spec are meaningless.
## Step 3: Determine mode
If `Mode:` is in the input, use it. Otherwise ask with your question tool:
- **Exploration** — "I'll generate 3+ end-to-end variants to help you
explore ideas before you commit to a direction."
- **Confirmation** — "I'll generate a single coherent mock to visually
verify an existing design."
Default to exploration unless the input clearly references an existing
spec.
## Step 4: Derive slug and file paths
1. **Slug.** If a slug was provided, use it. Otherwise derive one from
the feature description: kebab-case, 2-5 words, lowercase,
alphanumeric + hyphens only. If the derived slug is not obvious from
the feature description, confirm it with your question tool.
2. **Paths.** If a `Target path:` was provided, use it. Otherwise derive
from the **Spec Location** pattern in `.sculptor/docs.md`:
- **Directory-per-spec** pattern (e.g. `specs/<slug>/spec.md`) →
mocks live at `specs/<slug>/mocks.html` and
`specs/<slug>/mocks.context.md`.
- **Flat** pattern (e.g. `docs/<slug>.md`) → mocks live at
`docs/<slug>.mocks.html` and `docs/<slug>.mocks.context.md`.
3. If `mocks.html` already exists at the target location, use your question tool to ask
whether to extend it, replace
it, or pick a new slug.
## Step 5: Resolve the visual anchor
Look at the **UI Reference** section of `.sculptor/docs.md`:
- If it points at code, a design system, or Storybook — read the
referenced material and use it as the visual anchor.
- If it is empty — scan the repo's frontend code via Glob and Grep.
Look for a component library, design tokens, or existing pages you
can imitate.
- If the UI Reference is empty **and** the repo has no discoverable
frontend code (brand-new project, pure backend), STOP and ask with your question tool:
- What visual style the mocks should follow (e.g. clean minimal,
dashboard, mobile-first)
- Any reference sites or apps to imitate
- Target platform (web, mobile web, etc.)
Do not silently produce an unstyled mock.
## Step 6: Scaffold `mocks.context.md` up front
Before generating any HTML, write `mocks.context.md` with this
structure. The user watches it evolve in Sculptor's diff viewer as you
work:
```markdown
# <Feature Name> — Mock Context
## Description
<paraphrase the feature description and any clarifications from earlier
steps>
## Decisions
(TBD — filled in as the user confirms design directions)
## Rejected Alternatives
(TBD — filled in as the user rules out variants or tweaks)
## Tweaks Log
(empty — appended to on every iteration)
```
The **Decisions** and **Rejected Alternatives** sections are
load-bearing: if the skill was invoked from `/sculptor-workflow:spec`, the spec writer
reads them at handoff to populate the spec's Requirements and User
Scenarios. Keep them short, concrete, and lift-ready.
## Step 7: Initial generation
Write `mocks.html` with the initial mocks.
### Exploration mode
Generate **at least 3 distinct end-to-end approaches**. Variants must
differ in meaningful ways (layout, information density, interaction
model) — not cosmetic nits like a color tweak. Each variant must show
the full feature end-to-end: if the feature has 5 screens, each variant
contains all 5.
Pick the presentation shape based on feature size:
- **Small UI element** (single screen, no flow) — stack variants as
labeled sections in the page, each with a short heading and one-line
description of what it demonstrates.
- **Larger arc** (multi-screen flow) — use in-document tabs, one tab
per variant. Tabs must be self-contained (vanilla JS or CSS-only, no
external dependencies). Inside each tab, the variant's screens lay
out top-to-bottom with labels.
### Confirmation mode
**Before generating, read the spec at `Associated spec:` in full.** It
is the primary source of truth — the feature description from
`$ARGUMENTS` is secondary context. Pay particular attention to:
- **Overview / User Scenarios** — drive the screens and states you mock
- **Requirements** — must be visible or implied by the mock
- **Non-Goals** — stay out of the mock
- **Open Questions** — note them; you may surface them during iteration
Generate a single coherent mock with labeled states (e.g. empty state,
loaded, error, permissions-denied, loading). No variants — the design
is already committed in the spec.
### For both modes
The mock must follow the *Mock conventions* baked into this skill
(see Step 1): realistic app chrome, multiple states clearly labeled,
match the visual style from Step 5's resolution, realistic sample
data — no `foo`/`bar`/`lorem ipsum`.
After generating, show the user both file paths in code blocks so they
can open them, then immediately enter Step 8's iteration loop by asking — with your question tool — what they want to change, and
emitting the checklist footer.
## Step 8: Iterate
This is the main loop. It continues until the user says they are done.
### Turn structure — NON-NEGOTIABLE
Every turn in Step 8 MUST end with both:
1. A **checklist footer** in the text output:
```
Updated mocks.html: yes/no
Logged tweak in mocks.context.md: yes/no
Summary: <one line describing what you did this turn>
```
2. A question via your question tool (asking what to tweak
next, or offering to wrap up — see below).
The text-output footer comes first, then the tool call closes the turn.
Ending a turn without the footer is the primary failure mode of this
skill. Ending without a question to the user is the second.
### On every user answer
1. **Update `mocks.html`** to reflect the requested change.
2. **Append to the Tweaks Log** in `mocks.context.md`:
```
- Requested: <what the user asked for>
Changed: <what you did>
```
3. **If the answer confirms a direction**, add a concrete bullet to
**Decisions**.
4. **If the user rules out a variant, tweak, or approach**, move it to
**Rejected Alternatives** with a one-line reason.
5. **Keep rejected variants in `mocks.html`.** Do not delete them.
`mocks.html` is a historical record of exploration, not just a
snapshot of the final design.
### When to offer to wrap up
When the user seems satisfied (no new tweaks landing, they say they're
happy, or the conversation is clearly winding down), ask with your question tool, offering:
- **I'm done** — wrap up the mock session
- **Keep iterating** — stay in Step 8
- **Revisit a rejected alternative** — pull a rejected variant back
for another look
The user always has the final call on when to stop.
## Step 9: Wrap up
When the user says they're done:
1. **Final pass on `mocks.context.md`:**
- Make sure **Decisions** reflects the final state of the mocks
(no `(TBD)` left behind — move any residual content to Decisions
or Rejected Alternatives).
- Keep the **Tweaks Log** as-is; it's a historical record.
2. **Show the user the final paths** in code blocks:
- `mocks.html` (all variants, including rejected ones)
- `mocks.context.md` (Decisions, Rejected Alternatives, Tweaks Log)
3. **Do not commit.** The user commits when they like.
### If invoked from `/sculptor-workflow:spec`
The user's next step is to return to the Spec tab and tell it they're
done. The Spec agent will read `mocks.context.md` and proceed with
the spec using Decisions and Rejected Alternatives as input.
## Rules
- **Ask every question with your question tool** — `mcp__sculptor__ask_user_question` if it's available, otherwise the built-in `AskUserQuestion`. Never ask in plain text: only the tool call puts the workspace into the "waiting for input" state that alerts the user.
- **Every turn in Step 8 MUST end with the checklist footer AND
a question to the user via your question tool.** The footer is the drift-prevention
anchor; the tool call keeps the ritual intact. Missing either is a
failure.
- **Do NOT commit.** The mock skill never runs `git commit`. Users
commit on their own schedule.
- **Do NOT delete rejected variants from `mocks.html`.** They are
historical record. Rejecting means moving the variant's rationale
into `mocks.context.md`'s Rejected Alternatives — not deleting the
HTML.
- **Do NOT skip the docs config.** If `.sculptor/docs.md` is missing,
invoke `/sculptor-workflow:setup-repo` first.
- **Do NOT produce an unstyled mock.** If the repo has no UI Reference
and no discoverable frontend code, ask the user for direction before
generating anything.
- **Do NOT announce upcoming tool calls in text.** Phrases like "Let me
ask what you think next" or "Here are some options:" followed by a
tool call are a known failure trigger — the model emits end-of-turn
instead of the tool call. Say nothing about what you're about to do;
just do it.
From imbue-ai/sculptor at f847102, shown as plain text under its license: MIT (permissive). The license text is in LICENSE.md.
View SKILL.md on GitHub at f847102Files
- SKILL.md12 KB · c77fbe0b3b72
1 file, 12 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at f847102More from Imbue
architect
Generates an architecture document for a feature by reading the existing spec, analyzing the codebase deeply, and conducting guided Q&A with the user to…
Claude Code · about 4K tokens · pinned 6 days ago
build
This skill executes a multi-step implementation plan by working through task files sequentially.
Claude Code · about 1.1K tokens · pinned 6 days ago
build-sculptor-extension
Build or modify Sculptor extensions, which are runtime ES modules that add panels, overlays, widgets, home views, or settings UI to the Sculptor frontend.
Contains scripts
Claude Code, Codex, Cursor +3 · about 3.3K tokens · pinned 6 days ago
fix-bug
Fixes bugs using test-driven development with an interactive or autonomous workflow.
Claude Code · about 9.8K tokens · pinned 6 days ago
handoff
This skill hands off ongoing work to a fresh agent, either in the same workspace or a new isolated workspace, while preserving context through a synthesized…
Claude Code · about 1.1K tokens · pinned 6 days ago
help
This skill fetches the latest Sculptor documentation from GitHub and answers user questions about how to use Sculptor's features, including workspaces…
Claude Code · about 880 tokens · pinned 6 days ago
Related in Frontend and design
next-bundle-optimizer
Audits Next.js applications to identify and reduce browser bundle size and initial-load work by analyzing routes, dependencies and client outputs.
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 2.3K tokens · pinned 6 days ago
next-cache-components-optimizer
Optimize Next.js routes to display meaningful UI instantly on initial load or client navigation by encoding the optimization goal as a failing…
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 5.6K tokens · pinned 6 days ago
next-partial-prefetching-adoption
Enables Partial Prefetching in Next.js 16.3+ apps and guides adoption through auditing Link prefetch behavior, preserving UI in tests or manually, and…
by VercelOfficial publisher
Claude Code, Codex, Cursor +4 · about 6.7K tokens · pinned 6 days ago
remotion-interactivity
This skill teaches how to structure Remotion code so the Studio IDE recognizes and makes it interactive.
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 2.4K tokens · pinned 6 days ago
remotion-interactivity
This skill teaches how to structure Remotion video components to unlock Studio interactivity features like click selection, drag-and-drop, resizing, rotation…
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 4.8K tokens · pinned 6 days ago
remotion-maps
This skill enables creating map-based animations with Remotion using four different mapping libraries: Mapbox, MapLibre, MapTiler, or CesiumJS.
by RemotionOfficial publisher
Contains scripts
Claude Code, Codex, Cursor +3 · about 240 tokens · pinned 6 days ago
Open roles at Imbue
No open roles at Imbue on the Agent Native jobs board right now.
Browse the jobs board