Skip to content

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 typeBranchWhat gets built
State, logic, data model, algorithmlogicRunnable terminal app β€” smallest executable that exercises the question
Visual, layout, interaction feelUISingle 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.

Source: commands/prototype.md