interactive-prototype
Build a clickable, hi-fi prototype of a product or flow — not a wireframe, not a static mock.
Skill by aiatelie
Chalk Labs
Need help deploying interactive-prototype?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/aiatelie-interactive-prototype
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/interactive-prototype
What's inside
- Skill name
interactive-prototype- Description
- Build a clickable, hi-fi prototype of a product or flow — not a wireframe, not a static mock. The user can navigate, toggle states, and feel the interaction. Reach for this whenever the design has flows, multi-screen states, or many-option situations.
- License
- MIT
- Instructions
- 78 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Interactive prototype
A clickable, hi-fi prototype of a product or flow — not a wireframe, not a static mock. The user can navigate, toggle states, and feel the interaction. Use this whenever the design has flows, multi-screen states, or many-option situations.
## When to use this skill
- The user asks for "an app", "a flow", "a multi-step thing", "let me see it working", "let me click around".
- The design has stateful behavior (toggles, modals, multi-screen navigation, form validation flows).
- There are 3+ screens that connect.
- The user needs to demo interactions to a stakeholder.
## When this skill does NOT apply
- **Single static surface** (a banner, a poster, a thumbnail, a single-screen marketing page) → that's purely visual; use the existing DesignCanvas with one or more `<DCArtboard>` instead.
- **Comparing variations of one element side-by-side** → also DesignCanvas, multiple `<DCArtboard>` children in a single `<DCSection>`.
- **Timeline-based motion** (the page advances on a clock, elements enter/exit on a schedule) → that's [`animated-video`](../animated-video/SKILL.md), not this skill.
## Build with React + Babel (inline JSX)
The project's iframe loads React + ReactDOM + Babel-Standalone from CDN at the top of `index.html`. Use these exact script tags with pinned versions and integrity hashes — newer minor versions sometimes break the inline-JSX flow without notice:
```html
<script src="https://unpkg.com/react@18.3.1/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
<script src="https://unpkg.com/react-dom@18.3.1/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
<script src="https://unpkg.com/@babel/standalone@7.29.0/babel.min.js" integrity="sha384-m08KidiNqLdpJqLq95G/LEi8Qvjl/xUYll3QILypMoQ65QorJ9Lvtp2RXYGBFj1y" crossorigin="anonymous"></script>
```
**Don't add `type="module"` on script imports.** Babel-standalone doesn't transpile module imports cleanly in this CDN setup; the iframe will silently fail to mount.
**Style-object naming.** Never declare `const styles = { ... }`. Multiple components in the same file (or multiple `<script type="text/babel">` blocks sharing the iframe window) will collide on the `styles` global. Always namespace: `const terminalStyles = { ... }`, `const composerStyles = { ... }`.
**Cross-file scope.** Each `<script type="text/babel">` block is its own scope. Components defined in one block aren't visible to the next without going through `window`. At the bottom of every component-defining block, write:
```js
Object.assign(window, { Terminal, Line, Spacer /* every component declared here */ });
```
The next block can then read them off `window` directly: `const { Terminal, Line, Spacer } = window;`.
## Starter components to drop in
The host's MCP starters server exposes these via `mcp__starters__copy_starter`. Each is a single `.jsx` file that drops into the project; reference it from the iframe's `<head>` with `<script type="text/babel" src="<name>.jsx">`.
| Starter | Use it for |
|---|---|
| `ios_frame.jsx` | Mobile prototype with iOS status bar, home indicator, keyboard. |
| `android_frame.jsx` | Mobile prototype with Android status bar, navigation bar. |
| `macos_window.jsx` | Desktop window chrome — title bar, traffic-light buttons. |
| `browser_window.jsx` | Web app inside a browser frame — URL bar, tabs. |
| `design_canvas.jsx` (DesignCanvas) | Laying out 2+ static screens side-by-side for comparison. |
The DesignCanvas wrapper is already present in fresh projects (see [skills/frontend-design/SKILL.md](../frontend-design/SKILL.md) and the project's `index.html`). Add additional `<DCArtboard>` children to the existing `<DCSection>` to lay multiple flows side-by-side.
## Build process
1. **Confirm the brief.** Use `mcp__ask-user__ask_user` if anything's vague: how many screens, which device frame, what states matter.
2. **Look for prior art** in the project before generating from scratch — existing components, uploaded screenshots, anything in `uploads/`. Designs are stronger when they riff on something concrete.
3. **Show the user something fast.** Drop in a placeholder version of the first screen with assumptions visible (annotations, a `// TODO` comment block at the top), let them react before going deep on every screen.
4. **Build the React components per screen.** Keep each screen in its own component file (`HomeScreen.jsx`, `ProductDetail.jsx`, etc.), shared primitives in a `Primitives.jsx`. Wire navigation via state.
5. **Add tweaks.** A couple of `make-tweakable` knobs by default (color, copy, layout variant) so the user can riff without re-prompting. See [skills/make-tweakable/SKILL.md](../make-tweakable/SKILL.md).
6. **Iterate.** The user is using the running prototype — every change should be visible in <5 seconds.
## Defaults
- Center the prototype in the viewport (mobile frame) or fill the viewport with reasonable margins (desktop / browser frame).
- **No "title" screen** — the prototype IS the artifact; there's no need for a launcher slide.
- Simple animation: CSS transitions or React state. Reach for `animations.jsx` only when motion is *the design* (timeline-based, choreographed entries, hero animations) — see [animated-video](../animated-video/SKILL.md).
- Real-feeling content: avoid lorem ipsum. If real content isn't available, use plausible-but-fake (names from popular open datasets, real product types, real-shaped numbers).
## Anti-patterns
- **Wireframe-grade detail.** If the prototype is meant to demonstrate interaction, every screen has to be *believable*. A wireframe with grey blocks where photos go, "lorem ipsum" headlines, and unbranded buttons fails as a prototype the user can react to.
- **Modal-everywhere navigation.** Pressing a "next" button shouldn't always pop a modal that hides the previous screen. Use real screen transitions (slide left/right for horizontal flows, slide up for modals/sheets, fade for overlays).
- **State that resets on navigation.** If the user clicks "Back", their form data should still be there. Use a single shared state object at the root component, not per-screen `useState`.
- **`window.alert`** for confirmations or feedback. It feels like a developer artifact, not a designed product. Build the confirm/feedback UI inline.
- **Inline event handlers wired to nothing** — every button should do something visible, even if it's just toggling a piece of mock state. A non-functional button breaks the illusion the prototype is trying to create.From aiatelie/ai-atelie, MIT.
More from aiatelie/ai-atelie
- 0.542score
frontend-design
aiatelie
Aesthetic and convention guide for editing AI Atelie's own chrome — the editor, canvas frame, toolbars, sidebars, dialogs, settings, projects screen.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-critique
aiatelie
Run a structured anti-slop audit on the design just produced before declaring done.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-md-author
aiatelie
Read or write a Google-spec DESIGN.md at the project root — the cross-tool aesthetic spec that grounds every prompt in this project.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
semantic-commit
aiatelie
Draft a Conventional Commits 1.0.0 message for the AI Atelie repo.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
canvas-sync
aiatelie
Keep the canvas surface coherent across its three places — the canonical starter at `mcp/starters/DesignCanvas.jsx`, the byte-identical demo copy at…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
cuj-guardian
aiatelie
Run and triage AI Atelie's Critical User Journey (CUJ) for every PR — the single end-to-end test that proves a user can open the app, create a project, drive…
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
export
aiatelie
Export a selected element from the canvas as PNG, JPEG, OGraf bundle, Lottie, or video.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
ship-task
aiatelie
Take an AI Atelie task — issue, ticket, or ad-hoc ask — all the way from description to merged-ready PR.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
animated-video
aiatelie
Timeline-based motion design — animated explainer-style HTML artifacts where time advances and elements enter or exit on a schedule.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
design-aesthetic-presets
aiatelie
Pick one of eleven named aesthetic directions before writing any code, then execute it with discipline.
SkillCFreshness: C★ 11Claude Code +9 - 0.538score
verify-with-playwright
aiatelie
Drive a real browser against AI Atelie's running dev server to verify a change works, and capture screenshots + video as PR evidence.
SkillCFreshness: C★ 11Claude Code +9 - 0.538score
pr-evidence
aiatelie
Run AI Atelie's journey suite and inject inline-rendering evidence (per-journey video + screenshot, in a 4-column markdown table) into the current PR's body.
SkillCFreshness: C★ 11Claude Code +9
Signals
- Stars
- 11
- Forks
- 0
- Open issues
- 40
- Last commit (this folder)
- May 7, 2026 (5 months ago)
- Last release
- Jun 3, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/aiatelie/ai-atelie
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from aiatelie
- 0.542score
semantic-commit
aiatelie
Draft a Conventional Commits 1.0.0 message for the AI Atelie repo.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
frontend-design
aiatelie
Aesthetic and convention guide for editing AI Atelie's own chrome — the editor, canvas frame, toolbars, sidebars, dialogs, settings, projects screen.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-critique
aiatelie
Run a structured anti-slop audit on the design just produced before declaring done.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
canvas-sync
aiatelie
Keep the canvas surface coherent across its three places — the canonical starter at `mcp/starters/DesignCanvas.jsx`, the byte-identical demo copy at…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
cuj-guardian
aiatelie
Run and triage AI Atelie's Critical User Journey (CUJ) for every PR — the single end-to-end test that proves a user can open the app, create a project, drive…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-md-author
aiatelie
Read or write a Google-spec DESIGN.md at the project root — the cross-tool aesthetic spec that grounds every prompt in this project.
SkillCFreshness: C★ 11Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get interactive-prototype running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
interactive-prototype skill. Agent Mart. https://agentmart.dev/skills/aiatelie-interactive-prototype (last updated 2026-10-24)