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
15338 skills20 agents38 commands
> /plugin marketplace add arbiterForge/codeArbiter

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 exploratory code and experiments stay on it; only the completed findings file may later cross back to the parent. 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), and commit only that findings file on `spike/<slug>`. Return to the parent branch and run `git restore --source spike/<slug> -- .codearbiter/spikes/<slug>.md` to transfer only the committed findings file, review it, and commit that one file through `{{CMD:commit}}`; do not merge the spike branch. Then delete the spike branch. If the answer warrants building, hand the findings to `{{CMD:feature}}` — the spike file seeds `brainstorming` (`{{PLUGIN_ROOT}}/skills/brainstorming/SKILL.md`); the spike code is reference material, never the implementation.

  • **Timebox expired, no answer** → record that in the findings file and use the same findings-only

transfer before deleting the spike branch.

Hard gate

MUST NOT merge or PR a `spike/*` branch — its only exits are a findings file and deletion. Do not transfer spike code: the parent may receive only the committed findings file. 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 because no spike commit is merged and the parent may copy only the committed findings file's contents, never spike code.

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 → ask it directly; no command needed.
Read more
@arbiterforge
Ships withcodearbiter

Open-source governance and hard gates for AI coding agents across Claude Code, Codex CLI, and Pi.

15356 skills20 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
153
Star history of arbiterForge/codeArbiter on GitHub, a chart by star-history.com

Other commands on codearbiter.

add-dep

add-dep

Command

Vet a new or changed third-party dependency for license, provenance, and supply-chain risk before any install runs.

audit

audit

Command

Assemble the governance record for a range — commits, overrides, ADRs, sprint auto-decisions, open questions, checkpoint findings…

chore

chore

Command

Sanctioned lane for non-behavioral work — docs-only edits, dependency bumps, reverts. Type-scaled gates; no TDD demanded of prose.

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command