skills/verifying-hunches/SKILL.md
Use when about to claim discovery during debugging. Triggers: "I found", "this is the issue", "I think I see", "looks like the problem", "that's why", "the bug is", "root cause", "culprit", "smoking gun", "aha", "got it", "here's what's happening", "the reason is", "causing the", "explains why", "mystery solved", "figured it out", "the fix is", "should fix", "this will fix". Also invoked by debugging, scientific-debugging, systematic-debugging before any root cause claim.
npx skillsauth add axiomantic/spellbook verifying-hunchesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
False confidence is worse than admitted uncertainty. This is very important to my career. </ROLE>
You are here because you're about to claim a discovery. STOP. That's a hypothesis, not a finding.
<analysis> Before ANY claim: What EXACTLY am I claiming? What CONCRETE evidence? What would DISPROVE this? Have I claimed this before? </analysis> <reflection> After testing: Did prediction match reality? Should I update or abandon? Am I confirmation-biasing? </reflection>Track ALL hypotheses. Persist across compaction in /handoff.
| Field | Purpose |
|-------|---------|
| id | H1, H2, etc. |
| claim | Exact specific claim |
| falsification | What would disprove this |
| status | UNTESTED / TESTING / CONFIRMED / DISPROVEN |
| test_results | prediction vs actual for each test |
Cross-Session Déjà Vu Check: The local registry only covers this session. Before accepting a new hypothesis, query stored memories for prior hypotheses about this symptom or component:
memory_recall(query="hypothesis [component_or_symptom]")
If a matching DISPROVEN hypothesis is found in memory, you MUST explain what is DIFFERENT about your current hypothesis or abandon it. If a CONFIRMED hypothesis is found, check whether it still applies to the current code state.
Note: The <spellbook-memory> auto-injection only fires on file reads. If you haven't read the relevant file recently, this explicit recall is the only way to access cross-session hypothesis history.
| DON'T SAY | SAY INSTEAD | |-----------|-------------| | "I found the bug" | "Hypothesis: [specific claim]. Testing now." | | "This is the issue" | "Suspect this code. Need to verify." | | "Root cause is X" | "Theory: X. Verification: [test]" | | "I see what's happening" | "Mental model formed. Testing accuracy." |
Hypothesis MUST have:
file:line, not "somewhere in auth"Can't fill these? You have a vague hunch, not a hypothesis.
memory_store_memories(memories='{"memories": [{"content": "[CONFIRMED/DISPROVEN] Hypothesis: [specific claim]. Evidence: [key evidence]. Component: [file:line]", "memory_type": "[fact or antipattern]", "tags": ["hypothesis", "[component]", "[symptom_type]"], "citations": [{"file_path": "[relevant_file]"}]}]}')
Before marking a hypothesis CONFIRMED, apply CoVe self-interrogation (per skills/shared-references/cove-protocol.md):
<RULE>A hypothesis requires both a matching prediction AND CoVe clearance to reach CONFIRMED status. A matching prediction alone is necessary but not sufficient.</RULE>
□ Déjà vu check passed
□ Specificity check passed (location, mechanism, link, prediction)
□ Falsification criteria defined
□ At least ONE test performed
□ Prediction matched actual
□ CoVe self-interrogation passed (no unresolved alternative explanations)
□ Alternatives considered
ANY unchecked = still a hypothesis, not a finding.
Premature Confidence: "Found it!" before testing. "Definitely the issue" without evidence.
Confirmation Bias: Only seeking supporting evidence. Rationalizing failed predictions.
Generalization as Evidence: "Looks suspicious." "Seems related." "Might be involved."
Eureka Amnesia: Rediscovering same insight after compaction. Not checking prior hypotheses.
Untested Claims: "Fixed" without tests. "Should work" without verification.
Sunk Cost: Continuing disproven theory. "Spent so long, must be right."
</FORBIDDEN>Include in /handoff:
## Hypothesis Registry
### Confirmed: H3 "Race condition in cleanup" ✓
### Disproven: H1 "Off-by-one expiry" ✗, H2 "Pool exhausted" ✗
### Untested: H4 "Middleware caches header"
Before claiming discovery:
<FINAL_EMPHASIS> Your pattern-matching is fast but unreliable. Every eureka is hypothesis until tested. Track theories. Test predictions. Abandon disproven hypotheses without rationalizing.
This is very important to my career. You'd better be sure. </FINAL_EMPHASIS>
testing
Use when creating new skills, editing existing skills, or verifying skills work before deployment. Triggers: 'write a skill', 'new skill', 'create a skill', 'skill doesn't work', 'skill isn't firing', 'edit skill', 'skill quality'. NOT for: general prompt improvement (use instruction-engineering) or command creation (use writing-commands).
development
Use when you have a spec, design doc, or requirements and need a detailed implementation plan before coding. Triggers: 'write a plan', 'create implementation plan', 'plan this out', 'break this down into steps', 'convert design to tasks', 'implementation order'. Also invoked by develop during planning. NOT for: reviewing existing plans (use reviewing-impl-plans).
testing
Use when creating new commands, editing existing commands, or reviewing command quality. Triggers: 'write command', 'new command', 'create a command', 'review command', 'fix command', 'command doesn't work', 'add a slash command'. NOT for: skill creation (use writing-skills).
tools
System skill loaded at session start to initialize skill routing. Not invoked directly by users. Also useful when: 'which skill should I use', 'what skill handles this', 'wrong skill fired', 'skill didn't trigger'.