Hypothesis Generator
Generate multiple competing explanations for an observed problem or signal.
Installation
- Make sure Claude is on your device and in your terminal.
Skills load from
~/.claude/skills/when Claude Code starts up — so you need it on your machine first. If you don't have it yet, install it once with the command below, then runclaudein any terminal to verify.One-time setupnpm i -g @anthropic-ai/claude-codeAlready have it? Skip ahead.
- Paste into Claude Code or into your terminal.
This copies the whole skill folder into
~/.claude/skills/h-abduct-m0n0x41d/— the SKILL.md plus any scripts, reference docs, or templates the skill ships with. Safe default: works for every skill.Faster alternative (instruction-only skills)
Skips the clone and grabs only the SKILL.md file. Don't use this if the skill ships Python scripts, reference markdowns, or asset templates — they won't be downloaded and the skill will fail when it tries to load them.
Quick install (SKILL.md only)Sign up to copy - Restart Claude Code.
Quit and reopen Claude Code (or any other agent that loads from
~/.claude/skills/). New skills are picked up on startup. - Just ask Claude.
Skills auto-activate when your request matches the skill's description — no slash command needed. Trigger phrases live in the skill's own frontmatter; you can read them in the “What this skill does” section above.
Prefer to read the source first? Open on GitHub.
When Claude uses it
INTERNAL SUBROUTINE — used by h-diagnose for parallel rival-hypothesis generation. Manual invocation possible but the right user-facing entry point is almost always h-diagnose (which uses h-abduct internally with parallel testing). Generates ≥3 typed rival explanations for an observed signal per FPF B.5.2 abductive cycle. Do not auto-select this skill — when failure investigation is needed, select h-diagnose; when problem framing is needed, select h-frame.
What this skill does
h-abduct — Pure abductive four-step (subroutine)
You are running the B.5.2 abductive four-step micro-cycle: frame the prompt → generate candidates → apply plausibility filters → select prime hypothesis. Per CC-B.5.2-2 rivals stay visible; per CC-B.5.2-1 every run starts from a declared typed AbductivePrompt.
Explicit-only — disable-model-invocation: true. The skill is invoked manually when the operator wants the discipline without the parallel-test overhead of h-diagnose.
Step 1 — Frame the typed AbductivePrompt
State the initiating prompt precisely. Per B.5.2.0 the typed species are:
- AnomalyStatement — "<observed pattern> doesn't fit existing explanation"
- ProblemCuePrompt — "<sketch of a problem we don't yet know how to solve>"
- OpportunityCuePrompt — "<sketch of an opportunity worth exploring>"
- ProbeCuePrompt — "<we want to probe X to learn Y>"
Capture the prompt in writing before generating candidates — otherwise the abduction floats.
Step 2 — Generate ≥3 candidate hypotheses
Per CC-B.5.2-2 at least one rival required. Aim for 3-5 candidates that differ in kind, not degree. Each candidate states:
- Claim (one sentence)
- Why-plausible (one sentence)
- Discriminating probe — what would falsify or confirm
If all candidates trend in one direction (all blame the same component), force a rival from a structurally different direction (data flow, race condition, environmental, configuration, infrastructure, etc.).
Step 3 — Apply plausibility filters (≥2 declared)
For each candidate, evaluate against explicit filters. Typical:
- Parsimony — does the candidate introduce only the additional structure the prompt requires?
- Explanatory reach — how much of the prompt does the candidate actually account for?
- Consistency — does the candidate avoid collision with already-trusted pillars / mechanisms / scope declarations?
- Falsifiability / probeability — does the candidate create a path for deduction, testing, contrast, or evidence acquisition?
- Scope fit — is the candidate framed for the declared prompt scope rather than for an inflated or shifted target?
Pick at least two filters and apply them. Record the rationale.
Step 4 — Select prime hypothesis + publish
Pick one candidate for downstream work. Per CC-B.5.2-1 publish:
- The selected prime hypothesis as a new
U.EpistemeatAssuranceLevel:L0 - Linked back to the original AbductivePrompt
- With selection rationale referencing the applied filters
In haft kernel this translates to either:
mcp__haft__haft_solution(
action="explore",
problem_ref="<prob-... if existing or framed>",
variants=[
// 3-5 variants, prime hypothesis marked in description
],
no_stepping_stone_rationale="<if no stepping stone among candidates>"
)
OR (lighter — just record the abductive cycle without portfolio):
mcp__haft__haft_problem(
action="frame",
signal="<prime hypothesis statement>",
problem_type="diagnosis",
acceptance="prime hypothesis confirmed or falsified by <discriminating probe>",
mode="tactical"
)
The lighter path is for exploratory abduction where the operator doesn't yet want full portfolio comparison. The heavier path is when subsequent /h-compare is expected.
Step 5 — Hand off
Surface to operator:
- Prime hypothesis
- Rivals (per CC-B.5.2-2 stay visible)
- Filter rationale
- Recommended next step:
/h-verifyif the prime hypothesis is verifiable against existing evidence/h-exploreif rivals deserve deeper variant exploration before commitment/h-decide(manual-only) if the prime is binding and ready to commit
What NOT to do
- DO NOT generate only one candidate — rivals are required (CC-B.5.2-2).
- DO NOT skip plausibility filters — at least two declared, per CC-B.5.2.
- DO NOT collapse to a "best guess" without documenting why other candidates were rejected.
- DO NOT publish prime as L1+ — abductive output is L0 (unsubstantiated until tested).
- DO NOT auto-invoke from anywhere except explicit operator command or h-diagnose subagent spawn.
FPF spec references
- B.5.2 — Abductive Loop (parent procedure)
- B.5.2.0 — U.AbductivePrompt (typed entry surfaces)
- B.5.2.1 — Creative Abduction with NQD
- CC-B.5.2-1, CC-B.5.2-2 — Conformance: typed prompt + visible rivals
- EXP-01 (abductive loop), EXP-04 (WLNK per variant)
Look up via mcp__haft__haft_query(action="fpf", query="B.5.2").
Related skills
Documentation Co-Authoring
anthropics
Guide structured workflows for writing docs, proposals, and technical specs collaboratively.
MCP Server Builder
anthropics
Build protocol servers that connect language models to external APIs and services.
Ask Questions If Underspecified
trailofbits
Ask clarifying questions before starting work on ambiguous requests.
Claude Plugin Marketplace Builder
daymade
Convert a Claude skills repository into an installable marketplace with auto-updates.