prototype
/octopus:prototype enforces the discipline that separates productive
exploration from half-built features: state the question first, build the
smallest thing that answers it, capture the answer durably, then delete
the code.
What it solves
Without a question, a prototype is just an uncommitted feature. Teams build prototypes to avoid committing to an unknown β but skip stating the unknown explicitly, then let the prototype linger until it becomes the default implementation by inertia.
prototype closes that loop. It requires a question before any code is
written, bifurcates the approach by question type, enforces the no-persistence
default, and ends with an explicit capture step so the answer survives the
prototypeβs deletion.
How it works
The command starts at the bifurcation gate β the most important step:
| Question type | Branch | What gets built |
|---|---|---|
| State, logic, data model, algorithm | logic | Runnable terminal app β smallest executable that exercises the question |
| Visual, layout, interaction feel | UI | Single route with multiple variants toggled from one screen |
If the type is ambiguous and you are unavailable, the command defaults by context (terminal-shaped repo β logic; web app β UI) and declares the assumption explicitly in the artifact.
Two rules that define prototype discipline:
No persistence by default. Prototypes do not write to a database or a real file store. If the prototype starts writing to persistence, the question has shifted β the command pauses and reclassifies. Exception: when persistence is the question (schema design, migration shape), a throwaway SQLite file in the prototype directory is acceptable; never the real database.
Capture before delete. When the question is answered, the answer is
written somewhere durable before the code is removed. The destination depends
on what the answer means: a commit message body, an ADR, an issue or PRD, or
a NOTES.md next to the prototype. The chat transcript does not count β it
scrolls away.
After capturing, the prototype is either deleted or its non-throwaway parts are absorbed into the real code path. There is no third option.
Usage & parameters
/octopus:prototype <one-sentence question to answer><one-sentence question>β the design question the prototype must answer. Required. If not supplied, the command refuses to start β a prototype without a question is a half-built feature.