$ca-spike — exploratory spike
SkillDocs & knowledgeExploratory spike on a throwaway branch — answer a named question with disposable code. Never merges; exits to a findings note or /ca-feature.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the $ca-spike — exploratory spike skill
What this skill tells your AI
The instructions your AI receives, as published by arbiterforge/codearbiter in plugins/ca-pi/skills/ca-spike/SKILL.md and read by ahel’s review.
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
- Name the question — a spike without a falsifiable question is just freelancing. Restate
$ARGUMENTSas the question the spike answers and the timebox (default: one session). STOP for the user's confirmation. - 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. - 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. - Exit — exactly one of:
- Answered → write the findings to
<project-root>/.codearbiter/spikes/<slug>.md(the question, what was tried, the answer, what it implies), and commit only that findings file onspike/<slug>. Return to the parent branch and rungit restore --source spike/<slug> -- .codearbiter/spikes/<slug>.mdto transfer only the committed findings file, review it, and commit that one file through$ca-commit; do not merge the spike branch. Then delete the spike branch. If the answer warrants building, hand the findings to$ca-feature— the spike file seedsbrainstorming(routines/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.
- Answered → write the findings to
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
$ca-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 →
$ca-feature. - Diagnosing a defect →
$ca-debug(investigation with a structured exit). - A question answerable by reading code or docs →
$ca-btw.
Signals
- GitHub stars
- 144
- Forks
- 7
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
ca-spike- Source
- github.com/arbiterforge/codearbiter