prototype

Use when a design question is still fuzzy — build a throwaway logic or UI prototype that answers one question fast, stays easy to run, and is meant to be deleted or absorbed.

8 stars

Best use case

prototype is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when a design question is still fuzzy — build a throwaway logic or UI prototype that answers one question fast, stays easy to run, and is meant to be deleted or absorbed.

Teams using prototype should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/prototype/SKILL.md --create-dirs "https://raw.githubusercontent.com/drvoss/everything-copilot-cli/main/skills/development/prototype/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/prototype/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How prototype Compares

Feature / AgentprototypeStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when a design question is still fuzzy — build a throwaway logic or UI prototype that answers one question fast, stays easy to run, and is meant to be deleted or absorbed.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Prototype

A prototype is disposable code that answers a question faster than debate. Keep it close
to the real area, make it easy to run, and optimize for learning rather than polish.

## When to Use

- The user says "prototype this", "try a few designs", or "let me play with it"
- A state model or workflow is hard to reason about on paper
- You need several UI directions before picking one
- The fastest way to answer the question is to build a small runnable artifact

## When NOT to Use

| Instead of prototype | Use |
|----------------------|-----|
| You are building production-ready functionality | [`spec-driven-development`](../spec-driven-development/SKILL.md) |
| The main problem is root-cause analysis of broken code | [`diagnose`](../diagnose/SKILL.md) |
| You already know the design and need safe cleanup | [`refactor-clean`](../refactor-clean/SKILL.md) |

## Prerequisites

- A concrete question the prototype should answer
- A place near the target code where throwaway work can live temporarily
- One obvious command the user can run locally

## Workflow

### 1. Choose the branch

Decide which question you are answering:

- **Logic / state question** — build a tiny runnable terminal or script-based prototype
  that pushes the state machine through the tricky cases
- **UI question** — build several clearly different visual variants that can be switched
  from one route, page, or entry point

If the question is ambiguous and the user is unavailable, match the surrounding code and
state the assumption clearly at the top.

### 2. Mark it as throwaway from day one

Put the prototype near the feature it informs, but name it so nobody confuses it with
production code. Follow the project's existing routing or directory conventions instead
of inventing a brand-new top-level structure.

### 3. Make it runnable with one command

Use the project's existing runtime:

- `npm run prototype:checkout`
- `python src\feature\prototype.py`
- `go run .\cmd\prototype`

The user should not need a multi-step setup just to learn from the prototype.

### 4. Strip everything non-essential

Default rules:

- no persistence unless persistence itself is the question
- no tests unless the prototype is proving a test technique
- no extra abstractions
- only enough error handling to keep it runnable

### 5. Surface the state

After each action or branch change, print or render the relevant state so the user can
see what changed and why.

### 6. Capture the answer, then delete or absorb

The lasting artifact is the decision, not the prototype. When the question is answered:

1. capture the takeaway in an issue, ADR, commit note, or nearby `NOTES.md`
2. either delete the prototype or fold the validated idea into real code

## Examples

### Logic prototype

Create a tiny checkout state-machine runner that lets the user toggle events like
`apply-coupon`, `expire-session`, and `submit-order`, then prints the full state after
each step.

### UI prototype

Build three layout variants for the same page and expose a simple variant switcher so the
user can compare them quickly without branching the whole app.

## Common Rationalizations

| Rationalization | Reality |
|----------------|---------|
| "Let's make the prototype production-ready just in case" | That turns learning code into premature product code. |
| "We should hide the ugly internal state" | The whole point is to make the decision surface obvious. |
| "We'll remember what we learned later" | If the answer is not captured, the same question returns next session. |

## Red Flags

- The prototype grows tests, persistence, and abstractions unrelated to the question
- Nobody can tell how to run it in one command
- The artifact stays in the repo after the decision is made, with no cleanup plan
- The prototype answers multiple unrelated questions at once

## Verification

- [ ] The prototype names the question it is answering
- [ ] One command runs it locally
- [ ] The relevant state or variant is visible after each interaction
- [ ] The resulting decision is captured somewhere durable before the prototype is kept or removed

## Tips

- Prototype the smallest slice that can disprove a bad design quickly
- Put a short "throwaway prototype" note in the file header or surrounding docs
- Follow with [`refactor-clean`](../refactor-clean/SKILL.md) if a successful prototype
  is later absorbed into production code

Related Skills

verification-before-completion

8
from drvoss/everything-copilot-cli

Use before claiming any task is done — run the exact command that proves the fix works, read the output, and only then report success.

using-git-worktrees

8
from drvoss/everything-copilot-cli

Use when you need multiple branches checked out at once — create isolated working directories for parallel development without cloning the repository repeatedly

triage

8
from drvoss/everything-copilot-cli

Use when a single issue needs structured triage — classify it, reproduce if needed, request missing information, and leave a durable brief or close-out note in the tracker.

to-issues

8
from drvoss/everything-copilot-cli

Use when a plan, spec, or PRD must become an actionable backlog — break it into thin dependency-aware issues that each deliver a verifiable vertical slice

sprint-workflow

8
from drvoss/everything-copilot-cli

Use when starting a new feature, refactor, or multi-step dev task — runs the full sprint cycle (Think → Plan → Build → Review → Test → Ship → Monitor) using Copilot CLI's plan/autopilot modes.

sprint-retro

8
from drvoss/everything-copilot-cli

Use at the end of a sprint to run a data-driven retrospective — analyzes session history and git metrics to surface what shipped, what slowed you down, and concrete improvements.

security-audit

8
from drvoss/everything-copilot-cli

Use when a codebase needs a formal security audit beyond a quick scan — applies OWASP Top 10 and STRIDE threat modeling from a CSO perspective to surface systemic vulnerabilities.

release

8
from drvoss/everything-copilot-cli

Use when a sprint or feature is complete and ready to ship — tags the version, generates GitHub Release notes, runs rollout or smoke verification, and publishes to npm/PyPI/Docker registries.

prompt-optimizer

8
from drvoss/everything-copilot-cli

Use when a rough prompt, vague idea, or task description needs to become a finished copy-pasteable prompt for a chat-based LLM - rewrite it into one ready-to-send prompt with no blanks, no placeholders, and a clear output shape.

outside-voice

8
from drvoss/everything-copilot-cli

Use when you need an independent second opinion before, during, or after implementation — run challenge, consult, or review mode in a direct builder-to-builder voice

llm-wiki

8
from drvoss/everything-copilot-cli

Use when research or domain knowledge keeps getting rediscovered across sessions — build a supplementary markdown wiki that compounds synthesized knowledge without replacing GitHub or committed project guidance

interview-me

8
from drvoss/everything-copilot-cli

Use when a request is underspecified and you need to discover what the user actually wants before writing a plan, spec, or code - ask one question at a time, attach your current hypothesis, and stop only after the intent is explicitly confirmed.