Spawning a prototype
How to start a new prototype — conversationally or via slash command
The conversational way (recommended)
Open Claude Code at the repo root and say something like:
- "Start a new prototype called
expense-tracker." - "I want to prototype a tool for tracking quarterly client check-ins. Let's call it
client-checkins." - "Build a prototype from this PRD" — then paste your PRD.
The reva-new-prototype skill auto-fires when it recognizes those phrases. It will:
- Ask a few discovery questions first (to align on purpose, constraints, success criteria).
- Ask for the prototype name if you didn't give one.
- Run the spawn script (about 30 seconds — mostly
bun install). - Tell you the branch name and port.
- Hand you back to vibe-code mode for the actual build.
The slash command way
If you want to be explicit, type:
/reva-new-prototype expense-trackerSame underlying flow, just deterministic.
Naming rules
The prototype name must be:
- kebab-case — lowercase letters, digits, hyphens. Start with a letter.
- Unique — not already a directory under
prototypes/. - Not reserved — can't be
_templateor start with underscore.
Examples that work: expense-tracker, portfolio-rebalancer, client-checkins-v2, meeting-prep.
Examples that don't: ExpenseTracker (uppercase), expense_tracker (underscore), expense tracker (space), _template (reserved).
Flags (advanced)
Most users don't need these. They're for developer workflows:
--worktree— spawn the prototype into a git worktree under.worktrees/prototype-<name>/instead of the main checkout. Useful when you want a clean filesystem separation; less convenient for Claude Code preview discovery (see What's in the box for the trade-off).--force-branch— skip the "must be onmain" pre-flight check. Use when you intentionally want to spawn a prototype off a different branch.
bun run new:prototype expense-tracker --worktree --force-branchWhat if I'm on a different branch with uncommitted changes?
The script bails. It will not stash, switch, or discard your work. Commit or stash first, then re-run.
Spawning a prototype creates a prototype/<name> branch off main. The whole prototype lives on that branch — when reviewers want to see your work, they checkout that branch.