brainstorming
The Socratic spec-refinement front of /feature, and the planning front of /sprint. Routed to BEFORE any code — it takes a one-line idea and drives it to an…
Exploratory spike on a throwaway branch — answer a named question with disposable code. Never merges; exits to a findings note or $ca-feature.
$ npx -y skills add arbiterForge/codeArbiter --skill ca-spike --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ca-spikeContext preview
The summary Claude sees to decide when to auto-load this skill.
Exploratory spike on a throwaway branch — answer a named question with disposable code. Never merges; exits to a findings note or $ca-feature.
name: ca-spike description: Exploratory spike on a throwaway branch — answer a named question with disposable code. Never merges; exits to a findings note or $ca-feature. argument-hint: "<question to answer> [timebox]"
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.
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:**
(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 `$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 seeds `brainstorming` ([routines/brainstorming/SKILL.md](../../routines/brainstorming/SKILL.md)); the spike code is reference material, never the implementation.
transfer before deleting the spike branch.
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 you can't trust yourself with your code base, trust Arbiter.
Repo: arbiterForge/codeArbiter
The Socratic spec-refinement front of /feature, and the planning front of /sprint. Routed to BEFORE any code — it takes a one-line idea and drives it to an…
The only path to a commit. Routed to when the user invokes /commit or otherwise instructs codeArbiter to persist staged changes. Nine gated phases —…
Optional manual drift audit — report stale provenance-tracked docs (via _provenancelib drift detection across .codearbiter/.provenance/), then per stale doc…
The brownfield back-fill. Routed to by /create-context, and by startup when .codearbiter/CONTEXT.md lacks the <!--INITIALIZED--> body marker but source code…
The banned-primitive gate. Routed to when changed code hashes, signs, encrypts, derives keys, generates security-relevant randomness, configures TLS, or…
Investigate-then-decide root-cause analysis for a defect whose cause is unknown (distinct from /fix, which assumes a known bug). Five gated phases: capture,…