Appearance
date: 2026-06-14 tags: [brainstorm, agent-behaviour, spikes, confirmation-bias, footgun] status: active graduated_to:
A green spike on a happy-path slice breeds false confidence — a pass is a cue to probe harder, not to stop
Symptom — In a brainstorm, the agent ran a feasibility spike (pest --mutate --path=…TaskCollection.php --covered-only) on a clean, happy-path file, reported "Feasibility confirmed — better than I hoped," generalised it to "the root solution (diff-scoping) works," and stopped probing. The spike never touched the actual crux — un-ignorable equivalent mutants that collapse diff-scoping's small denominator and break the blocking gate. The maintainer surfaced that (from existing issues), not the spike.
Root cause — A spike proves exactly one narrow thing: the slice you tested is buildable. The agent treated a green result as proof the approach solves the problem — and because the slice was easy, the spike said nothing about the hard case where the approach actually fails. A passing spike is the highest-bias moment in the skill: it invites "declare victory and stop thinking." Same family as the self-assessed-"simple" skips (2026-06-14-self-assessed-simple-never-skips-a-step.md) — the agent's own confidence overriding the de-biasing process. Existing guards only stopped a spike earning a ranking favour (sunk-effort scores nothing; chooser strips effort); none stopped it ending the critical thinking.
Fix — brainstorm Build-spikes now states what a spike proves (tested slice is buildable) and does not (not "solved", not the pick, nothing about hard cases); names the green-spike bias and inverts the instinct — a pass is a cue to hunt harder for where it breaks (the inputs you didn't spike, the worst case); step 3 requires scoping the claim to exactly what was tested and naming what the spike did not cover. A one-line spike clause added to the always-on standing principle. Commits on claude/brainstorm-dogfood-feedback-obft3s.
Guard — Treat a passing spike as evidence about one tested slice only, never as "the problem is solved." After a green spike, deliberately attack the untested/hard/worst case before converging — and keep the spike a single data point inside the normal blind convergence, never a stopping signal.