Chapter 47 of 60

From Symptom to Hypotheses

Concepts

CHAPTER 47 β€” From Symptom to Hypotheses

PART VIII β€” Building the AI Debugger

PURPOSE

Turns a RAG fabrication symptom into a layer-ordered, enumerable hypothesis space where every branch carries a distinct predicted signature β€” coverage over cleverness, mundane layers first.

CENTRAL QUESTION

How do we turn a symptom into an explicit, enumerable hypothesis space β€” where coverage matters more than brilliance?

UNIQUE CLAIM

Only this chapter defines the five-layer map (version β†’ retrieval/context β†’ prompt/instruction β†’ generation β†’ consumption/trajectory) with cheapest-discriminating-first ordering (run-cost Γ— power, written before the first run) as a differential diagnosis that defeats premature closure.

DEBUGGING OBJECT

Fabricated RAG citation: H1 stale-snapshot (gold chunk ABSENT from ranked list; re-index restores Γ—3) vs H2 reranker-demotion (gold PRESENT below k; k-expansion restores) vs H3 prompt-override (absent under both evidence states; wording-swap restores); constructed ranked list shows absent chunk + index one release behind β†’ H1 before exotic layers open.

CONCEPTS INTRODUCED (only genuinely new here)

  • Layer-ordered enumeration with per-hypothesis deciding signature; unfalsifiable-framing and score-citation rewrite rules; uncovered-slot check against crash-dump slots
  • “Consider β‰  close”: alternatives must each carry a discriminating test, not mere listing
  • Blind coverage scoring (listed/unlisted, distinct/overlapping, mundane/exotic)

CONCEPTS DEVELOPED / REUSED (with source chapter)

  • Supplies the competitor space Ch46 I-3/I-4 checks judge; signatures feed Ch48 tables; slot coverage reuses Ch45 manifest; Ch43 H2 consumption pattern becomes the consumption layer

PREREQUISITES

Symptom + measurable intent + first-divergence pointer (or UNKNOWN); frozen Ch45 bundle.

LOCAL INVARIANTS

  • Enumerate mundane-first with every dump slot considered; each H predicts a distinct observable; no interventions until the space is written; new mid-search branches re-date predictions.

FAILURE MODES (this chapter’s specific ones)

  • Clever-first search (exotic before mundane); plausibility ranking ordering runs; unfalsifiable “the model misunderstood”; score-as-cause; hidden verbal-only branches; mid-search reinvention without re-dating.

DIAGNOSTIC METHOD (3-6 steps)

  1. State symptom + intent + divergence pointer.
  2. Enumerate by layer (version, retrieval, prompt, generation, consumption), mundane first.
  3. Attach a distinct predicted signature per H; rewrite the rest.
  4. Order cheapest-discriminating-first with trial counts; execute (Ch48).

RESEARCH-DERIVED IDEAS (papers/findings with bounds)

  • Graber, Franklin & Gordon, Diagnostic Error in Internal Medicine, Arch Int Med 2005 β€” 100 cases; premature closure (stopping after first diagnosis) most common cognitive cause, faulty knowledge uncommon, system 65%/cognitive 74%; bounds: medicine QA cases; fix is procedural (explicit differential + test per branch).
  • Ishikawa, What Is Total Quality Control?, 1985 β€” fishbone cause-and-effect diagram; layers are its bones for AI failures.
  • Wang et al., Towards Diverse Scientific Hypothesis Search with LLMs, ICML 2026, arXiv:2606.10587 β€” diversity collapse (valid but near-duplicate templates, fraction of admissible set covered); free brainstorming returns duplicates, forcing structured enumeration. NOTE: audit Β§16.2 resolves the chapter’s “Anonymous/Institution” hedge β€” cite Wang et al. 2026.
  • Alaboudi & LaToza, VL/HCC 2020 β€” developers form ~2 hypotheses; candidate hypotheses ~6x help; bounds: also Ch6.

EXPERIMENT / LAB (actual lab, H-structure)

Lab 47 (PROPOSED): enumerate before intervening. H1: enumerated workspace β‰₯5 branches across β‰₯3 layers with distinct signatures; H2: brainstorm equals it; H3: brainstorm misses the deciding branch. Both lists (randomized order, β‰₯3 trials if assistant-generated), blind scorer marks coverage. Intervention before enumeration is not completion.

COMPANION TOOL (name + accepts/can-establish/cannot-establish)

Symptom-to-Hypothesis Workspace β€” accepts: symptom, manifest ref, intent/divergence pointer. Can establish: whether this symptom’s space covers layers with discriminating signatures (this symptom only). Cannot establish: true cause, cross-symptom completeness, correctness; never uses plausibility, confidence, agreement, anecdotes, relief.

PREVENTION ARTIFACT

Space table (H1/H2/H3 + deciding obs + uncovered slots + cheapest-first order + trials) gating all Ch48 runs.

READER OUTCOME (testable phrasing)

Given one bundled symptom, reader emits β‰₯5 branches across β‰₯3 layers each with a distinct predicted signature, a cheapest-first run order, and a blind coverage score β€” with zero interventions before the space is written.

DEPENDENCIES

Ch45 bundle; Ch46 plurality/prediction checks; Ch43 consumption pattern.

FORWARD BRIDGE

Maps don’t run themselves; Ch48 prices each branch into single-variable discriminating runs that split the space fastest per run.

EVIDENCE / RESEARCH REQUIREMENTS

Reader’s own workspace + blind coverage score; constructed stale-snapshot case only, no measured runs.

ANTI-CLAIMS / LIMITS

One space covers one symptom under one bundle; warrants coverage, not correctness; rolls/re-indexes void version/retrieval branches until re-enumerated. UNKNOWN wherever a slot is ABSENT or divergence pointer missing.

Explain this chapter with AI

Copy this prompt into ChatGPT, Claude, Gemini, a local model, or another AI.

Apply this chapter with AI

Copy this prompt into ChatGPT, Claude, Gemini, a local model, or another AI.

Part VIII β€” Building the AI Debugger

The clever hypothesis that missed the boring cause

Chapter 46 can reject single-story reports β€” but it needs a defined space of competitors to judge plurality against. Here is the failure that space prevents. A RAG answer fabricates a citation. The assistant proposes one elegant hypothesis β€” “the reranker demoted the gold chunk” β€” with a sophisticated test involving score analysis. The team spends a week on reranker tuning. The actual cause is mundane: a stale index snapshot meant the gold chunk was never retrieved at all. Nobody listed it because nobody enumerated; cleverness covered one branch while coverage would have covered all of them.

OBSERVATION: the fabricated answer, the retrieval log showing the gold chunk absent from the ranked list, and the index version pinned one release behind the corpus. HYPOTHESIS H1 (reranker demotion): gold retrieved, scored low. H2 (retrieval absence): gold never retrieved (stale snapshot). H3 (prompt override): instruction text told the model to answer without citing. INFERENCE: none yet β€” H1/H2 predict different ranked-list signatures (present-low vs. absent-entirely) and H3 predicts insensitivity to evidence swaps; the ranked list plus an evidence-swap probe separates them.

This chapter’s question: how do we turn a symptom into an explicit, enumerable hypothesis space β€” where coverage matters more than brilliance?

Why “brainstorm likely causes” fails first

The obvious move β€” asking the assistant (or the room) for likely causes β€” fails because likelihood-ranked brainstorming optimizes for plausibility, not separability. Five defects hide behind cleverness:

  1. Single-candidate anchoring. The first plausible story captures all attention; alternatives are never generated, let alone tested. One hypothesis is a guess with formatting. In medicine this failure has a name and a body count: Graber and colleagues reviewed 100 diagnostic errors and found premature closure β€” “failure to continue considering reasonable alternatives after an initial diagnosis was reached” β€” to be the single most common cognitive cause, while faulty knowledge was uncommon (Graber, Franklin & Gordon, 2005). Debugging weeks are lost the same way: not to hard causes, to unconsidered ones.
  2. Unfalsifiable framings. “The model misunderstood” predicts every outcome and forbids none. Hypotheses without distinct predicted observables are decoration.
  3. Layer skipping. Jumping to exotic causes (attention failure, emergent deception) before exhausting mundane ones (stale snapshot, wrong file, dropped field). Exotic-first wastes runs.
  4. Score-based hypotheses. “The reranker scored it 0.31” offered as a cause. Scores describe ranking; the causal question is what intervention changes the outcome.
  5. Non-enumerated spaces. Causes held in heads, never listed, so nobody can see which branch of the space went untested. Unlisted branches fail silently.

OPINION: most debugging weeks are lost not to hard causes but to unlisted ones β€” the branch nobody wrote down, tested by nobody, containing the bug.

The mental model: the hypothesis space is a map, and diagnosis is search. A good space partitions the possible causes into mutually testable branches (retrieval vs. ranking vs. generation vs. prompt vs. version), each with a distinct predicted signature. This is a differential diagnosis, and the layer map is its fishbone diagram β€” categorized cause enumeration so that no whole category is skipped. Coverage β€” every branch named with its deciding observation β€” beats cleverness, because the bug lives wherever it lives regardless of which branch flatters the investigator.

There is a specific reason not to outsource this to the assistant unstructured. Recent work on LLM hypothesis generation reports diversity collapse: when generation is driven by an optimization or selection pressure, models converge on a few preferred templates rather than exploring the space (Wang et al., 2026). A free “list the possible causes” prompt inherits the same bias, returning near-duplicates; the layer-ordered enumeration is the structural counter that forces one branch per category.

The method: enumerate by layer, discriminate by signature

Build the space mechanically from the crash-dump slots, in layer order (mundane first), with each hypothesis carrying its deciding signature:

  1. Version layer. Model/index/tool/environment revisions wrong or drifted? Signature: hash/version mismatch against the known-good manifest; re-pinning changes the outcome.
  2. Retrieval/context layer. Evidence missing, stale, or misordered? Signature: ranked-list presence/absence; adding/removing a chunk flips the outcome.
  3. Prompt/instruction layer. Wording, preamble, or tool description steering behavior? Signature: wording swaps with evidence frozen change the outcome (or do not).
  4. Generation layer. Decoding params, seed sensitivity, stop conditions? Signature: outcome varies across seeds/temperatures with all inputs frozen.
  5. Consumption/trajectory layer. Tool outputs valid but misused downstream (Ch43’s H2 pattern)? Signature: valid inputs with deviant consumption records.
    flowchart TD
    S["symptom + frozen bundle + first-divergence pointer"] --> L["enumerate one branch per layer, mundane first"]
    L --> V["version: model / index / tool / env drifted?"]
    L --> RT["retrieval / context: evidence missing, stale, misordered?"]
    L --> PR["prompt / instruction: wording or preamble steering behavior?"]
    L --> GN["generation: decoding params, seed sensitivity, stop conditions?"]
    L --> CN["consumption / trajectory: valid tool output misused downstream?"]
    V --> SIG["attach a distinct deciding signature to each branch"]
    RT --> SIG
    PR --> SIG
    GN --> SIG
    CN --> SIG
    SIG --> F{"any branch unfalsifiable or score-based?"}
    F -->|yes| RW["rewrite it or strike it β€” not a hypothesis"]
    F -->|no| ORD["order cheapest-discriminating-first; every crash-dump slot covered"]
  
HYPOTHESIS SPACE (worked sketch; constructed, not a measured run):
Symptom: fabricated citation in RAG answer (bundle refund-quote-041).
H1 stale-snapshot ... predicts: gold chunk ABSENT from ranked list;
    re-index + rerun restores citation (Γ—3).
H2 reranker-demotion . predicts: gold PRESENT but ranked below k;
    k-expansion restores citation without re-indexing.
H3 prompt-override ... predicts: citation absent under BOTH evidence
    states; wording-swap alone restores it.
COVERAGE: retrieval(H1/H2) vs. instruction(H3) β€” no branch unlisted.
RULE: H1/H2 split on one observable (presence in list) before any run.

OBSERVATION (constructed illustration, not a measured run): the ranked list shows the gold chunk absent entirely, and the index version trails the corpus by one release. UPDATED BELIEF: H1 supported for this instance; H2 exonerated here (nothing to demote what was never retrieved); H3 live pending the wording-swap probe β€” mundane layer convicted before exotic layers were opened.

No assistant’s plausibility ranking, no confidence token, no agreement across brainstormers, no single confirming anecdote, and no downstream relief promotes an unlisted branch into consideration or demotes a listed one without its deciding observation. Spaces, signatures, and runs decide.

Example: exhausting the space before spending the week

The practitioner writes all five layers with signatures before any intervention, then executes cheapest-discriminating-first: check versions (minutes), inspect the ranked list (minutes), evidence-swap (one run series), wording-swap (one run series), seed sweep (last, Γ—3+). In the constructed case the second step ends the investigation β€” absent chunk, stale index β€” and the reranker week never happens. The discipline is ordering: mundane layers with cheap signatures clear before expensive layers open. Enumeration makes the ordering visible; visibility makes it enforceable.

Research lineage: differential diagnosis, not brilliant diagnosis

The layer map is a fishbone diagram. Ishikawa’s cause-and-effect diagram was designed to make quality-control teams enumerate causes by category β€” materials, method, machine, measurement β€” so that no whole category is overlooked in the rush to a favored explanation (Ishikawa, 1985). The version/retrieval/prompt/generation/consumption layers are the bones of that diagram for an AI failure, and the discipline is identical: fill every branch before running anything.

Premature closure is defeated by an explicit differential, and by evidence, not by more thinking. Graber’s finding that faulty knowledge is uncommon while premature closure is common means the fix is procedural, not educational: force the alternatives onto the page, and then β€” the crucial second step β€” resolve each with a test, because clinicians who “consider” alternatives without ordering the discriminating test close prematurely anyway. The signature column is that test. Alaboudi and LaToza’s debugging study (Chapter 6) is the software-side evidence: developers form only about two hypotheses per defect unprompted, and supplying candidate hypotheses helped roughly six times as much as supplying candidate fault locations (Alaboudi & LaToza, 2020) β€” the enumerated space is the intervention that worked.

Cheapest-discriminating-first is the “horses, not zebras” rule, quantified. The instruction to test mundane causes before exotic ones is the medical heuristic “when you hear hoofbeats, think horses”; the addition here is that the ordering is set by run cost times discriminating power, written down before the first intervention, so it cannot be reordered to favor the interesting hypothesis after the fact.

Lab 47: enumerate before intervening, then score coverage (proposed)

PROPOSED, not executed: no author-measured results are reported. The evidence this chapter requires is the reader’s own workspace record.

Setup. Take one AI symptom with a frozen bundle. The generation regime (free brainstorm vs. this chapter’s layer-enumerated workspace) is the independent variable; symptom, bundle, and investigator are controlled. A second reader scores coverage blind.

Task.

  1. Before generating, write H1/H2/H3 about the regimes with distinct predicted coverage outcomes: H1: “enumerated workspace lists β‰₯5 branches across β‰₯3 layers with distinct signatures”; H2: “brainstorm lists equal branches (enumeration adds nothing)”; H3: “brainstorm lists fewer branches and misses the deciding one.”
  2. Produce both lists (order randomized, β‰₯3 trials if an assistant generates them).
  3. The blind scorer marks per-branch: listed/unlisted, signature distinct/overlapping, layer mundane/exotic.
Hypothesis Predicted coverage signature FORECAST OBSERVATION (Γ—3) UPDATED BELIEF
H1 enumeration wins β‰₯5 branches, β‰₯3 layers, distinct ___ ___ ___ ___ live/exonerated
H2 regime-neutral equal branch counts ___ ___ ___ ___ live/exonerated
H3 brainstorm gaps deciding branch unlisted ___ ___ ___ ___ live/exonerated

Success criterion. Two hypothesis lists with per-branch signatures, a blind coverage score, and a written statement of which branches were untested in each regime. An intervention run before enumeration is explicitly not completion.

Companion tool: Symptom-to-Hypothesis Workspace

What it accepts: the symptom statement, the bundle manifest reference, and the written intent/first-divergence pointer. What it performs: it forces layer-ordered enumeration (version β†’ retrieval β†’ prompt β†’ generation β†’ consumption), requires a distinct predicted signature per hypothesis, flags unfalsifiable framings and score-citations for rewrite, checks that no crash-dump slot went unconsidered, and emits the space table above. What it can establish: whether a hypothesis space covers the symptom’s layers with discriminating signatures β€” for the examined symptom only. What it cannot establish: the true cause, cross-symptom completeness, or which hypothesis is correct. It never treats plausibility, confidence, agreement, single anecdotes, or symptom relief as coverage. How its output changes your next action: space complete with distinct signatures β†’ cheapest-discriminating-first execution (Ch48); unfalsifiable entries β†’ rewrite before any run; uncovered slots β†’ enumerate further, never intervene into the gap.

Paper form, sufficient for this chapter:

Symptom: ___  Bundle: ___  Divergence: ___
LAYERS (version/retrieval/prompt/generation/consumption):
H1 ___ predicts ___ (deciding obs ___) | H2 ___ predicts ___ (obs ___)
H3 ___ predicts ___ (obs ___) | uncovered slots: ___
CHEAPEST FIRST: ___ β†’ ___ β†’ ___  TRIALS: β‰₯3 where nondeterministic

Where a software implementation does not yet exist in the reader’s stack, this record is the tool. Map before march.

Reusable procedure: cover the space, then search it

  1. State symptom + intent β€” measurable expectation, first-divergence pointer or UNKNOWN.
  2. Enumerate by layer β€” mundane first; every crash-dump slot considered.
  3. Attach signatures β€” each H predicts a distinct observable; rewrite the rest.
  4. Order cheap-first β€” version checks and list inspections before sweeps.
  5. One space, one search β€” no interventions until the space is written; no new branches mid-search without re-dating predictions.

Failure modes

  • Clever-first search. Opening with the exotic hypothesis. Mundane layers clear first, always.
  • Plausibility ranking. Treating “most likely” as “test first.” Cheap-and-discriminating orders runs, not likelihood.
  • Unfalsifiable hypotheses. “The model misunderstood.” If nothing observable differs, it is not a hypothesis.
  • Score-as-cause. Citing reranker scores or confidences as the defect. Scores are ranked-list symptoms; interventions are causes.
  • Hidden branches. Causes discussed verbally, never listed. Unlisted means untested means possibly-guilty.
  • Mid-search reinvention. Adding hypotheses after seeing outcomes without re-dating predictions. New branches restart prediction-first discipline.

Limits, per contract: one space covers one symptom under one bundle; it warrants coverage, not correctness; version rolls or re-indexing after enumeration void the version/retrieval branches until re-enumerated. UNKNOWN wherever a slot is ABSENT or the divergence pointer is missing.

References

  • Mark L. Graber, Nancy Franklin, and Ruthanna Gordon. Diagnostic Error in Internal Medicine. Archives of Internal Medicine 165(13), 2005, pp. 1493–1499. https://doi.org/10.1001/archinte.165.13.1493
  • Kaoru Ishikawa. What Is Total Quality Control? The Japanese Way (introduces the cause-and-effect / “fishbone” diagram). Prentice-Hall, 1985.
  • Haorui Wang, Parshin Shojaee, Kazem Meidani, Kunyang Sun, JosΓ© Miguel HernΓ‘ndez-Lobato, Teresa Head-Gordon, Jiajun He, Chandan K. Reddy, Chao Zhang, and Yuanqi Du. Towards Diverse Scientific Hypothesis Search with Large Language Models. International Conference on Machine Learning (ICML), 2026 (arXiv:2606.10587). https://arxiv.org/abs/2606.10587
  • Abdulaziz Alaboudi and Thomas D. LaToza. Using Hypotheses as a Debugging Aid. IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), 2020. https://doi.org/10.1109/VL/HCC50065.2020.9127273

Debugging Checklist

  • Symptom stated with measurable intent and divergence pointer?
  • Branches enumerated layer-by-layer, mundane first?
  • Every crash-dump slot considered (none silently skipped)?
  • Each hypothesis carries a distinct predicted signature?
  • No unfalsifiable framings or score-citations remaining?
  • Run order set cheapest-discriminating-first with trial counts?
  • No intervention executed before the space was written?
  • Coverage scored (branches Γ— layers Γ— distinctness) and recorded?

What This Chapter Established

  • Hypothesis generation as enumerable procedure: layer-ordered spaces (version β†’ retrieval β†’ prompt β†’ generation β†’ consumption) with distinct predicted signatures per branch, cheapest-discriminating-first ordering β€” demonstrated on the constructed stale-snapshot case, no measured runs claimed.
  • The coverage-over-cleverness principle with the map-and-search mental model.
  • Lab 47 as a proposed enumeration-vs-brainstorm coverage record the reader executes; the Symptom-to-Hypothesis Workspace contract (accepts/performs/can-establish/cannot-establish/next-action).
  • What was NOT proved: any cause, any cross-symptom completeness claim, or any correctness verdict on a hypothesis. One space built; nothing searched.
  • Research grounding: “the clever hypothesis that missed the boring cause” is premature closure, the leading cognitive cause of medical diagnostic error, and faulty knowledge is rarely the problem (Graber et al.) β€” so the fix is procedural (an explicit differential + a discriminating test per branch); developers form ~2 hypotheses per defect unprompted and candidate hypotheses helped ~6x where candidate locations did not (Alaboudi & LaToza); the layer map is Ishikawa’s fishbone diagram; and enumeration must be structured because LLM hypothesis search collapses toward a few templates under optimization pressure, a bias a free brainstorm inherits (Wang et al.).

Next

The space is mapped β€” but maps do not run themselves. Each branch now needs a deciding observation, and observations cost runs: compute, time, attention. Spending one run per branch naively is affordable for three branches and ruinous for ten. Chapter 48, “Discriminating Experiments,” designs each run for maximum information β€” splitting the space fastest with the fewest interventions.