From essentials
Builds throwaway prototypes to answer design questions — terminal apps for logic/state models or multiple UI variations for visual decisions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/essentials:prototype What question should the prototype answer?What question should the prototype answer?The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A prototype is **throwaway code that answers a question**. The question decides the shape.
A prototype is throwaway code that answers a question. The question decides the shape.
If the user passed arguments, treat them as the question the prototype should answer.
Identify which question is being answered — from the user's prompt, the arguments, the surrounding code, or by asking if the user is around. The litmus test: if the user could answer the question by looking at a screen, it's UI. If they'd need to push buttons and watch state change, it's logic.
The two branches produce very different artifacts — getting this wrong wastes the whole prototype. If the question is genuinely ambiguous and the user isn't reachable, default to whichever branch better matches the surrounding code (a backend module → logic; a page or component → UI) and state the assumption at the top of the prototype.
Before writing boilerplate, run the bundled scaffolder to generate the repetitive parts (switcher component, TUI shell, variant stubs). Then fill in the interesting parts — the actual variants or the domain logic.
# UI prototype: generates PrototypeSwitcher + variant shells
npx tsx ${CLAUDE_PLUGIN_ROOT}/skills/prototype/scripts/scaffold.ts ui --variants 3 --framework next --outdir ./src/app/settings
# Logic prototype: generates portable logic module + TUI shell
npx tsx ${CLAUDE_PLUGIN_ROOT}/skills/prototype/scripts/scaffold.ts tui --name checkout-flow --outdir ./src/checkout
The scaffolder handles React UI (Next, React Router, Vite) and TypeScript TUI. For other UI frameworks, it creates the directory structure with React components — adapt them to your framework.
__prototype- or put them in a prototype/ subfolder next to the target module. For throwaway UI routes, obey whatever routing convention the project already uses; don't invent a new top-level structure.pnpm <name>, python <path>, bun <path>, etc. The user must be able to start it without thinking.The answer is the only thing worth keeping from a prototype. Capture it somewhere durable (commit message, ADR, issue, or a NOTES.md next to the prototype) along with the question it was answering. If the user is around, that capture is a quick conversation; if not, leave the placeholder so they (or you, on the next pass) can fill in the verdict before deleting the prototype.
npx claudepluginhub nicknisi/claude-plugins --plugin essentialsBuilds throwaway prototypes to explore design directions — interactive terminal apps for logic/state or multiple UI variations on one route. Activates when prototyping, mocking up, or trying approaches.
Builds throwaway prototypes to explore logic/state models via terminal apps or test multiple UI variations from a single route. Useful for answering design questions quickly.
Builds a throwaway prototype to explore design options, sanity-check data models or state machines, or mock up UI variations. Routes between a terminal app for logic questions and toggleable UI variants.