prototype
Skill2 starsChanged 3 months agoMITView on GitHub
Generate N different HTML implementations of a UI feature, preview them, and iterate a few times, a fast "show me the options" loop for exploring what a feature could look like. Default N is 5. Use when the user wants to prototype a UI, explore or compare designs for a feature, says "prototype this", "try a few designs", "explore some options for X", "what could this look like", or hands over a feature with no spec. Marks a quiet pick but does NOT collapse to one winner, research, implement, verify, or open a PR; a chosen direction hands off to the build skill, whose review gates check the result. For editable Paper artboards rather than throwaway HTML, use paper-prototype instead; for whether a state model, business logic, or data shape feels right, use logic-prototype.
194 other projects use a version of this.
Adopted by
Most recently taken up by
- gaoyu06/harnesstheir own version, first seen Nov 8, 2026
- Firzus/agent-skillstheir own version, first seen Nov 8, 2026
- ishandutta2007/Awesome-Claude-Skillstheir own version, first seen Nov 8, 2026
- domengabrovsek/agent-configtheir own version, first seen Nov 8, 2026
- domengabrovsek/claudetheir own version, first seen Nov 8, 2026
- The-Vibe-Company/quivrtheir own version, first seen Nov 8, 2026
Used with
Projects with it also use playtest-report, soak-test and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
CoralGameSkillplaytest-report
Generates a structured playtest report template or analyzes existing playtest notes into a structured format. Use this to standardize playtest feedback collection and analysis.
Also in 12 projects that use this
lilangMaxSkillsoak-test
Generate a soak test protocol for extended play sessions. Defines what to observe, measure, and log during long play sessions to surface slow leaks, fatigue effects, and edge cases that only appear after sustained play. Primarily used in Polish and Release phases.
Also in 9 projects that use this
lilangMaxSkillteam-live-ops
Orchestrate the live-ops team for post-launch content planning: coordinates live-ops-designer, economy-designer, analytics-engineer, community-manager, writer, and narrative-director to design and plan a season, event, or live content update.
Also in 9 projects that use this
CoralGameSkillteam-polish
Orchestrate the polish team: coordinates performance-analyst, technical-artist, sound-designer, and qa-tester to optimize, polish, and harden a feature or area for release quality.
Also in 14 projects that use this
- +5 more from lilangMax
- +3 more from CoralGame
Other versions194 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 194
- mattpocock/skills★ 309ksame name
- emilkowalski/skill★ 55ksame name
- emilkowalski/skills★ 55ksame name
- QuivrHQ/quivr★ 40ksame name
- The-Vibe-Company/quivr★ 40ksame name
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- GreyDGL/PentestGPT★ 16ksame name
- spree/spree★ 16ksame name
- usekaneo/kaneo★ 9.7ksame name
- podman-desktop/podman-desktop★ 8.1ksame name
184 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository12 other files it gives its agents.
- buildSkill
- decision-coachSkill
- grill-with-docsSkill
- handoffSkill
- harness-configSkill
- logic-prototypeSkill
- paper-prototypeSkill
- polish-fixSkill
- post-build-reviewSkill
- pre-build-reviewSkill
- wrapupSkill
- writing-for-agentsSkill
The file
We split this skill into the rules it gives an agent
7 rules. 0 are common, 5 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 179 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
If the feature is genuinely unclear, ask one tight question.
- Very specific: line 26
Match fidelity to the decision: When the open question is direction — layout, hierarchy, density, disclosure — sketch it.
- Very specific: line 43
Build from the product's own materials: Before generating, go and read them: whatever file holds the theme (variables.css, theme.*, a …
- Distinctive: line 108
Do not: add a banner or modal, and do not reorder the pick to the front.
- Distinctive: line 110
If the user would rather not see it, omit it.
- Distinctive: line 115
Never auto-collapse to the recommended option.
- Distinctive: line 125
When a direction wins, don't bin the exploration.
“Common” is measured: kept by at least 6 in 10 of the 179 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Prototype
prototype answers one question, what could this look like?, with N
previewable HTML takes you can click through. It explores and quietly flags a
favourite. It does not collapse to one option, research, implement, verify, or
ship. When a direction wins, hand it to the build skill, whose pre-build and
post-build reviews check the result; the HTML here is throwaway.
Inputs
- Feature (required): what you're prototyping, however loosely phrased ("prototype the autocomplete dropdown", "try a few designs for the empty state").
- N (optional, default 5): how many implementations to generate. Honour an explicit count ("prototype 3 options...") up to a ceiling of 5 — past that, variants stop being radically different and start being noise; say so and cap.
If the feature is genuinely unclear, ask one tight question. Otherwise proceed.
Generate
Match fidelity to the decision. When the open question is direction — layout,
hierarchy, density, disclosure — sketch it; low-fi takes settle a direction, and
going hi-fi across the whole set spends the finish N times over to answer one
question. Save the finish for a settled direction, or for a question that is
itself about finish. Say which you are doing — sketch fidelity means placeholder
content and fewer states, never invented values: rule 2 holds at every fidelity.
Produce N self-contained, single-file HTML files (inline CSS/JS, no build
step, openable directly in a browser), each a genuinely different implementation
of the feature. Four rules keep the set useful:
- Anti-wallpaper guard. Variants must differ structurally (layout, hierarchy, interaction model), not be the same thing recoloured. If it helps, name the single axis they vary along (density, hierarchy, mood, disclosure) and state it, so the comparison means something. Argue for every option: what it bets on, and what it gives up. If you cannot write that pair for a variant, it is filler — replace it with one you can.
- Build from the product's own materials. Before generating, go and read
them: whatever file holds the theme (
variables.css,theme.*, a Tailwind config, a tokens file), the component package and anything documenting it, the icon set, the fonts the product ships, aCONTEXT.mdif the project keeps one (see thegrill-with-docsskill), and the two or three shipped screens this feature would sit beside. Take every number from there: resolve a token to the value it renders as, rather than sampling a colour off a screenshot or rounding a measurement to whatever looks about right. Type, spacing, corners, elevation and control sizing all come from the same place. Prefer components that already exist, in the variants and states they already have — these files stand alone, so copy them as markup rather than importing them — and make anything new look like it belongs beside them. Name in one line what you took ("from the app shell: 4px corners, the neutral ramp, 36px inputs"), so the claim can be checked. If none of it is reachable, say so and name what you assumed rather than rebuilding the product from memory. - Stress-content the previews. Populate with realistic and edge-case content: long strings, empty and error states, narrow widths, keyboard focus. The point of a real preview is to surface problems a static mockup hides, while you're still choosing.
- Judge in context, not in a vacuum. A variant floating on a blank page always looks fine. Reproduce the host surface around each option — the real header, sidebar, neighbouring content, and density of the page it would live in, built from those same values — so the options compete against the app, not against whitespace.
Craft floor
- Icons are inline SVG in one consistent style, matching the weight and fill of the product's own set; where there is none, draw them stroke-based at 16, 20 or 24px. Emoji and unicode glyphs are not icons.
- At phone width, reserve the system's space and leave it blank — on a device the OS paints its own bar and keyboard over yours, so a drawn copy shows up twice.
- At phone width, hit areas start at 44px. On pointer surfaces the control height you took from source wins.
- For an icon, image, or component you cannot reach, draw a marked placeholder — it beats a bad imitation of the real thing.
Preview
Emit one small index.html gallery that links to (or embeds) all N files, so
there is a single surface to look through. Write the N files and the gallery to a
gitignored scratch or temp directory, never committed and never left polluting
git status. Print the file paths too, so they can be opened directly or with
whatever preview command the project already uses.
State the design question in one visible line at the top of the gallery, next to the named axis of variation, so the comparison can be checked later — by the user, or by whoever opens it cold.
Give the gallery a compare mode: embed the variants in one frame and cycle
them in place with ←/→ (wrapping around; ignore arrow keys while an input,
textarea, or contenteditable element has focus). Label the frame with the current
variant's key and name (e.g. "3 — Sidebar layout") and reflect it in
location.hash, so what's on screen is nameable and a reload lands on the same
variant. Flipping variants in the same viewport position exposes structural
differences that a serial gallery of links hides.
Quietly mark the recommendation
Form an opinion and surface it understated, inside the artefact, never as a loud prose verdict:
- A small, low-key marker on the favoured variant in the gallery (e.g. a muted "Agent's pick" dot/badge) and one short line of rationale in small, low-contrast text.
- Do not add a banner or modal, and do not reorder the pick to the front. It must be ignorable. The user is the design lead; this is a nudge, not a decision.
- If the user would rather not see it, omit it.
Iterate
Refine on request; a few passes is normal. The user drives and owns the decision. Never auto-collapse to the recommended option; only consolidate when the user chooses one or edits toward it.
Option identities are fixed for the life of the exploration: once a variant is
"3 — Sidebar layout" it keeps that key and that name through every pass.
Renumbering across turns breaks every reference already made to it — in the
gallery, in location.hash, and in what the user said last turn.
Capture on hand-off
When a direction wins, don't bin the exploration. Copy the variant set, the gallery, and a one-line verdict (which option won and why) to a durable notes or artefacts location outside the repo — wherever the project keeps design decisions — and leave a pointer wherever the implementation is tracked. The losing options and the rationale are the primary source for "why does it look like this"; the winner alone can't answer that.
Scope
That's the whole skill. Heavier steps (researching patterns first, implementing the
winner for real, opening a PR with a screenshot) stay at prompt time when the
user asks for them, exactly as a person would layer them on. They are deliberately
not baked in. Hand a chosen direction to the build skill; its review gates
check the result. The recommendation is the single opinion this
skill expresses, and it expresses it quietly.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

