Skip to content
Development
Command

/spike

Exploratory spike on a throwaway branch — answer a named question with disposable code. Never merges; exits to a findings note or {{CMD:feature}}.

From plugin
codearbiter
13944 skills28 agents44 commands
Install
$ npx -y skills add arbiterForge/codeArbiter --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/spike

Context preview

What this command does when you run it.

Exploratory spike on a throwaway branch — answer a named question with disposable code. Never merges; exits to a findings note or {{CMD:feature}}.

Command definition

spike.md
description: Exploratory spike on a throwaway branch — answer a named question with disposable code. Never merges; exits to a findings note or {{CMD:feature}}.
argument-hint: "<question to answer> [timebox]"

{{CMD:spike}} — exploratory spike

The sanctioned lane for "I need to write code to find out." Spike code is disposable by contract: it never merges, never PRs, and never becomes the implementation. What survives a spike is the *answer*, written down — the code is burned.

Flow

1. **Name the question** — a spike without a falsifiable question is just freelancing. Restate `$ARGUMENTS` as the question the spike answers and the timebox (default: one session). STOP for the user's confirmation. 2. **Branch** — create `spike/<slug>` from the current branch. All spike work stays on it. 3. **Explore** — no `tdd`, no plan, no review fleet. Two rules survive even here: no secret leaves the approved store, and no irreversible operation (prod data, destructive migration) runs from a spike. 4. **Exit — exactly one of:**

  • **Answered** → write the findings to `{{PROJECT_DIR}}/.codearbiter/spikes/<slug>.md`

(the question, what was tried, the answer, what it implies), then delete the branch. If the answer warrants building, hand the findings to `{{CMD:feature}}` — the spike file seeds `brainstorming`; the spike code is reference material, never the implementation.

  • **Timebox expired, no answer** → record that too (a dead end is a finding), delete the branch.

Hard gate

MUST NOT merge or PR a `spike/*` branch — its only exits are a findings file and deletion. MUST NOT copy spike code into an implementation branch wholesale; implementation re-enters through `{{CMD:feature}}` and `tdd`. Secret-handling and irreversibility rules hold even in a spike. Commits on a `spike/*` branch are exempt from `commit-gate` — the exemption is safe precisely because nothing on the branch can ever land.

When NOT to use

  • You already know what to build → `{{CMD:feature}}`.
  • Diagnosing a defect → `{{CMD:debug}}` (investigation with a structured exit).
  • A question answerable by reading code or docs → `{{CMD:btw}}`.
Read more
Ships withcodearbiter

When you can't trust yourself with your code base, trust Arbiter.

Get the whole plugin, auto-invoked
Stats
139
Stars
1
Views
7
Forks
Active
Maintenance
Python
Language
AGPL-3.0
License
just now
Last commit
3mo ago
Created

Repo: arbiterForge/codeArbiter