{"path":"research/relevance-in-the-corpus-sweep.md","content":"> **Provenance**: the verbatim report of a read-only research agent, 2026-09-28, answering the founder's\n> question about relevance. Only absolute path prefixes were shortened for publication; nothing else was\n> changed. The synthesis and proposal built on it: [relevance-and-the-two-factors.md](relevance-and-the-two-factors.md).\n> It describes the code as it stood BEFORE the two-factor build of the same evening (commit `76da237`),\n> which made supporters' own strength flow and sorted the critical questions by what they bear on.\n\n# Relevance in the Deliberus corpus: what was documented, decided, built and proposed\n\nCompiled 2026-09-28 by a read-only sweep. Repository root: the repository root. No file was modified.\n\n**Method.** I used `rg` over `docs/` (including `docs/research/what-counts-as-evidence/`), `specs/`, `.claude/specs/`, `TODO.md`, `CLAUDE.md`, `SESSION-HISTORY.md`, `README.md`, `deliberus/`, `scripts/`, `tests/` and `web/src`. I read the key documents and modules in full. I ran `mannaminne` over docs and sessions, and I scanned the raw session transcripts (`the session-transcript folder/*.jsonl`) for founder messages that use \"relevan…\" near argument vocabulary. `mannaminne` returned only pointers that the grep had already found. The session search was noisy, so the transcript scan is the source for founder words that are not in the docs.\n\n**Labels used throughout**\n- **FOUNDER**: his words, verbatim, with date.\n- **RULED**: a founder ruling, with his verbatim words.\n- **OPEN / CLAUDE**: a proposal or analysis Claude wrote. It is unruled unless stated.\n- **CODE**: what the code does today, with file:line.\n- **MEASURED**: a number the corpus records.\n- **SWEEP**: an inference this sweep drew from corpus facts. It is *not* in the corpus.\n\n---\n\n## The question as asked\n\n**FOUNDER, 2026-09-28 15:11** (transcript `…/08fc91c9-8ad3-415b-9c22-4de29b15b3f3.jsonl`). He was answering Claude's question from 13:56 in the same session: *\"Weighing answers (3 of 9): right now an answer to a critical question counts the same however well supported it is, so answers barely move a link's strength. Should each answer move the link in proportion to how well supported it is itself?\"* His reply:\n\n> \"About critical questions and their answers. It feels rather obvious that the answers should move the link's strength in proportion to how well supported it is. But here we also - Just like in the case of normal support or attack links from a mother claim, or from subclaims to a main claim, you know the standard case - we need to consider the *relevance* as well... search for everything that has been documented and philosophized and have decided in the past in the corpus please about relevance and how we could determine it and let it affect the strength of a link from a claim/subgraph I guess\"\n\nHis agreement on weighing answers is recorded only in that transcript. Ledger row **Q3** (`docs/research/session26-open-rulings.md` line 339) still reads OPEN.\n\n---\n\n## 0. Bottom line\n\n1. **Relevance exists in the code for one link type only: `DECOMPOSES_INTO`**, the link from a mother claim to its parts. There it is called *requirement weight* or *relevance strength*, and it controls **only the weakest-part cap**: `ceiling = 1 − w·(1 − part strength)`. It was built 2026-09-17 on his word *\"Build the designed completion.\"*\n2. **Ordinary SUPPORTS/ATTACKS links carry no relevance weight anywhere in the code.** His message assumes the standard case already counts relevance; it does not.\n   - A support link's effect on its target is computed only from the counted answers to the critical questions on that link.\n   - The supporting claim's own strength does not flow into the target at all. Strength travels through *\"two channels only: CQ answers on incoming scheme-bearing edges, and decomposition children\"* (`docs/research/what-counts-as-evidence/corpus-map-code.md` lines 860–861; `deliberus/hinge.py` lines 18–22).\n3. **The only founder direction on record** (2026-09-19): relevance should be *\"judged provisionally by the machine/LLM-passes or whatever and then humans can challenge it\"*. The cap as built was accepted *\"for now\"*. Ledger row **O13** is OPEN.\n4. **A machine relevance judgement exists and has run on every decomposition link.**\n   - `deliberus/decomposition_judgement.py` asks for a 0–1 score of *\"how much the whole depends on this part\"*. It ran on all 197 decomposition links: mean 0.33, and 0.17–0.49 depending on who wrote the link.\n   - The switch that would let this score scale the cap (`DELIBERUS_RELEVANCE_PRESUMPTION`) is off by default.\n   - **Turning it on would change nothing either.** No production caller passes the stored score into the calculation (SWEEP, verified with `rg`; see § 2.2).\n5. **The corpus uses \"relevance\" for at least six different quantities** (table in § 0b). The biggest conflation is between two of them:\n   - **bearing**: does the premise move the probability of the conclusion, and by how much;\n   - **dependence or requirement**: how much the whole needs the part.\n   \n   The built score measures dependence. The founder's framing (*\"how much a premise bears on the conclusion\"*) is bearing.\n6. **The best outside frame sits in the 2026-09-26 evidence dossier and was never connected to the design.**\n   - Law treats relevance as a *gate* (\"any tendency\" to change the probability) and probative value as a *magnitude* (FRE 401/403).\n   - Schum names three credentials of evidence: relevance, credibility and force.\n   - Hahn & Hornikx map each critical question to a parameter of a likelihood ratio.\n   - Cartwright & Hardie and GRADE's *indirectness* place relevance on the **edge**, not on either claim.\n7. **Not in the corpus:**\n   - Johnson & Blair's relevance / sufficiency / acceptability (RSA) triad. It appears only indirectly, through Wachsmuth et al.'s \"cogency\" dimensions.\n   - Govier's ARG conditions.\n   - Walton's *Relevance in Argumentation*.\n   - Weighted argument systems and weighted-attack frameworks (Dunne et al.; Coste-Marquis et al.; Martínez, García & Simari).\n   - Edge-weighted QBAF semantics (Potyka 2021).\n   - Relevance logic.\n   - Sperber & Wilson's relevance theory.\n8. **Open decisions that bear directly on this question:**\n   - O13 (a machine relevance proposal replaces the flat 0.5 presumption);\n   - whether unanswered *latent* requirements enter the cap, weighted by relevance (`TODO.md` lines 691–698);\n   - the presumed weights 0.5 / 0.25 / 0, which have never been ruled (`TODO.md` line 661);\n   - Q3, Q27, Q9, Q7 and Q11 in the ledger.\n\n### 0b. The senses of \"relevance\" in the corpus\n\n| # | Sense | Where it lives | Wording |\n|---|---|---|---|\n| 1 | **Relatedness**: a genuine logical relation, as opposed to shared topic. Binary, decided when the link is written. | `deliberus/extraction/auto_connect.py` 66–69, 85–111; `deliberus/extraction/cross_structure.py` 33, 48; `deliberus/keeper.py` 114–115, 129–131 | \"genuine LOGICAL relation … False for merely topical overlap\"; *overlaps* = \"establishing one would partly advance the other\"; *unrelated* = \"no evidential bearing either way\"; \"OVERLAPS is judged by EVIDENCE, not by topic\" |\n| 2 | **Evidential bearing / probative force**: does it move the probability, and how much | law dossier § 1.2 (FRE), Schum; philosophy dossier (Achinstein, Carnap, Cartwright & Hardie); `docs/research/derivability-of-missing-considerations.md` 148–150; `deliberus/evidence_routing.py` 250; glossary \"relevance strength\" | \"a consideration is a dimension that bears on the conclusion; evidence is the ground for it\"; router verdict *irrelevant* = \"you looked, and it does not bear on this sub-claim\" |\n| 3 | **Requirement / dependence**: how much the whole needs the part | `deliberus/support_semantics.py` 112–121, 226–248; `deliberus/decomposition_judgement.py` 139–144; founder 2026-09-19 | \"1 means the whole fails outright without it; 0 means the whole stands untouched without it\"; founder: *\"the RELEVANCE (which I guess all this is about)\"* |\n| 4 | **Topical similarity** (called \"relevant\" once, and rejected as relevance elsewhere) | `docs/research/decomposition-axes.md` 45; cosine retrieval in `deliberus/truth_graph.py` 486–493 | \"highly *relevant* … and transfers to it **not at all**\" |\n| 5 | **Attention / display relevance** | `docs/research/game-feel-and-the-first-screen.md` 112; `CLAUDE.md` 338; `docs/technical-direction.md` 112 | \"Deliberus already computes relevance (hinge sensitivity, `worth_asking`)\"; \"Conservative relevance beats semantic reach\" |\n| 6 | **Value-laden relevance / \"relevance premises\"** (which axis should decide) | `docs/research/heylighen-value-complexity-and-deliberus.md` 9, 28; `docs/research/the-load-bearing-unsaid.md` 148; `docs/research/wild-weighing-dialects-and-the-question-set.md` 13, 31 | Heylighen: *\"Relevance is not something objectively given: it is inherently value-laden.\"*; \"suppressed **relevance premises** ('my axis is what should decide')\" |\n\n---\n\n## 1. DECIDED\n\n### 1.1 Rulings about relevance or requirement directly\n\n**R-1. 2026-09-17: build the requirement-weighted cap. RULED.**\n- **Founder:** *\"Build the designed completion.\"*\n- **Where:** `docs/research/weakest-link-arithmetic-and-the-merge-hunch.md` § 9d, \"BUILT 2026-09-17\" paragraph (line 615); `TODO.md` 863–868; `deliberus/support_semantics.py` 112–121 (quotes the ruling); `deliberus/api.py` 2664–2666.\n- **What he authorised:** building Claude's design (§ 9d, as corrected in `derivability-of-missing-considerations.md` § 4, 2026-09-03). The installed rule reads: *\"a cap counts by the standing of the claim that the whole needs this part — never by mere existence\"* (`support_semantics.py` 116–117). The weakest-link document states it as *\"the cap counts by *relevance strength*, never by mere existence\"* (line 615).\n- **Not ruled:**\n  - the constants 0.5 (presumed part), 0.25 (a scheme's standard question) and 0.0 (an unconfirmed proposal). The code calls them *\"De-baked defaults, changeable by ruling\"* (`support_semantics.py` 121). They are listed as \"Founder calls still waiting: the presumed requirement weights (0.5 / 0.25 / 0)\" (`TODO.md` 661, 868; `docs/research/unweighed-answers-two-months.md` 138).\n\n**R-2. 2026-09-19: the cap accepted for now; a direction for relevance given. Partly RULED, partly direction.**\n- **Founder** (transcript `b56497a7…jsonl`, 11:27; `weakest-link…md` § 9e lines 627–632): *\"Well, ideally the RELEVANCE (which I guess all this is about) is judged provisionally by the machine/LLM-passes or whatever and then humans can challenge it but I'm wary of saboteurs/spammers adding bogus parts that aren't actually relevant. I'm open to making the relevance claims explicit like you say, but I wonder how foolproof / attack-proof this way of dealing with this issue is, we'll have to explore that going forward I guess. But we will make do with what we've settled now on this issue.\"*\n- **Settled:** the cap stays as built (§ 9e, 634–637).\n- **Direction, not a ruling:** the machine judges relevance first and people challenge it.\n- **Open:** whether the design can resist attack; and the design step itself, ledger **O13** (line 295): *\"OPEN — his direction, my design step; attack-proofness itself stays an open exploration\"*. The dossier classifies it the same way: \"POSITION (direction), OPEN\" (`docs/research/what-counts-as-evidence/corpus-map-founder-voice.md` 242).\n- **Also recorded in:** `TODO.md` 543 (O13 is one of nine blocking forks, \"cited by 5\"), 660, 869–879; `SESSION-HISTORY.md` 90; `CLAUDE.md` 632.\n\n**R-3. 2026-09-21: parts written by the splitter presume like a person's. RULED.**\n- **Founder:** *\"Yes it should. We should expect good splits, and I have some trouble imagining wrong splits, what would that even look like? I guess in some cases they could lose some words/context that is important to the claim being specific enough? What else could go wrong?\"*\n- **Where:** `docs/research/earning-the-right-to-write.md` § 2b, 158–167; `support_semantics.py` 193–196 and `PRESUMED_PROVENANCES` line 144.\n- **Consequence:** a split part caps its whole at the presumed weight 0.5, whatever its measured relevance. The one exception is a part the separate coverage check found to *invent* material; that part presumes 0 (`support_semantics.py` 146–151, 209–210).\n\n**R-4. 2026-09-22: a machine's \"no\" answer belongs in a gate, never on the menu beside the answers. RULED.**\n- **Founder:** *\"Great, do it, and document that rule\"* (`CLAUDE.md` 387).\n- **Built as:** the required `related` field in `auto_connect.py` 63–77, asked before the relation menu. Pinned by `tests/test_auto_connect.py` `TestTheRelatednessGate` (~466–500).\n- **Why it matters here:** this is the **only ruled mechanism that decides relevance for SUPPORTS/ATTACKS links**, and it is a yes/no gate at write time.\n\n**R-5. The seven-key check and its ordering. RULED.**\n- **2026-08-31, the label set.** Founder: *\"Seven-key set is blessed anyhow!\"* (`deliberus/keeper.py` 49–50; `TODO.md` 826–834).\n- **2026-09-13, the order.** Founder: *\"Confirmed the proposed ordering, thx\"*. Sameness is decided first, and the relationship classifier runs only on pairs found distinct and related (`keeper.py` 6–12; `CLAUDE.md` 386).\n- **The keys carry the corpus's pair-level relevance:** *overlaps* = \"establishing one would partly advance the other, but neither contains the other\"; *unrelated* = \"no evidential bearing either way\" (`keeper.py` 114–115).\n\n**R-6. 2026-09-28 (Q31): a link's strength becomes a reading. RULED.**\n- **Founder:** *\"Yes.\"* (ledger line 367; `docs/research/what-a-link-strength-means.md`; build items in `TODO.md` 218ff).\n- **What it says:** a link's strength is computed on read from its answered critical questions and starts as \"not yet examined\". The stored machine number is renamed, given a rubric, and left blank wherever no machine judged the link.\n- **Bearing on relevance:** the ruled reading has **no relevance term**. The retired number was ambiguous on exactly this point: *\"None of these says what the number measures: the model's certainty that the link exists, how far establishing one claim would advance the other, or something else\"* (`what-a-link-strength-means.md` 48–50).\n\n**R-7. 2026-09-28 (Q32): retire the `confirmed` field. RULED.**\n- **Founder:** *\"Yes.\"*\n- **Build item:** \"the requirement cap (`presumed_requirement_weight`) reads the drop record (`human_action`) and provenance instead\" (`TODO.md` 205–216; `docs/research/what-confirmed-means.md` 45).\n\n### 1.2 Rulings that constrain any relevance design\n\n- **2026-08-31, the padding-defence ruling (option C).** Founder: *\"Go with option C, both.\"* (ledger B10, line 45; `TODO.md` 797–810; `support_semantics.py` 37–46; `deliberus/graph/qbaf.py` 214–222). Untagged parts aggregate by their weakest member in the strength (\"energy\") channel, so splitting a claim cannot raise it.\n- **2026-08-31, provisional blessing of the two felt consequences.** Founder: *\"The crux-pointer concentrating I guess sounded rational. The pebble protection requiring a tag seems to me too nitty-gritty complex for my brain rn … lemme just bless it for now and we can always come back to revisit it in the future\"* (`TODO.md` 818–825).\n- **2026-08-31, the no-ratify end state.** Founder: *\"Anyhow yes I agree, blessing this whole proposal you gave now, go ahead.\"* The resulting rule: *\"The graph has contributions and telemetry, nothing else\"* (`docs/research/the-ratification-record-and-the-triage-feed.md` § 4b, lines 167, 185). **Consequence:** a crowd relevance vote could not move strength today. Relevance must be argued.\n- **D6, RULED:** *\"contributions are added, never overwritten — nothing needs permission to exist\"* (ledger line 78). This is the basis for the advice against an irrelevance mark (§ 3.5).\n- **2026-08-23, the neutral band.** An examined claim reading 0.48–0.52 shows UNSETTLED (`qbaf.py` 45–57). It conflicts with a threshold in the requirement function; see tension T6.\n- **2026-09-15, \"read, never set\"** (horizon kinds). Q31 applied it to link strength. Treating relevance as a computed reading would be consistent with it.\n- **UX directive in `CLAUDE.md` line 338:** *\"Conservative relevance beats semantic reach: tangential matches are worse than honest thinness.\"* This concerns retrieval relevance for first-take answers.\n\n### 1.3 Founder positions, worries and questions on record (not rulings)\n\n- **2026-09-03** (transcript `b56497a7`, 15:33; `docs/research/drowning-in-claims.md` 114–115): *\"Sybil attack? What's that again? What I'm imagining is drowning in irrelevant content/text. Which can definitely destabilize and confuse and derail.\"* This produced drowning § 8, the origin of \"relevance strength\".\n- **2026-09-21** (`earning-the-right-to-write.md` 133–136): *\"If the newly-split-out part is rightfully split-out, then if it's weak, it's weak, if it's strong, it's strong… It should simply be judged on its own merits/evidence/subgraph, right? Even when it's machine-split/minted I'm open to letting energy flow through it. Is that blocked, as the system currently stands?\"* Claude answered that it is not blocked; § 2a shows the measured table.\n- **2026-09-21** (`docs/research/the-tidying-line.md` 10–17): *\"…or perhaps irrelevant spam-claims that could be marked irrelevant by machine…\"* Claude advised against building such a mark (§ 3.5). No ruling is recorded.\n- **2026-08-14/15, the 47-papers correction** (transcript `4beb4561`, 2026-08-14 22:16): *\"Then all relevant papers and relevant subclaims/subtrees of indirectly related papers also - EVERYTHING RELEVANT - needs to be taken into account in the graph.\"* The docs treat it as a ruling on direction: evidence itself must be decomposed (`docs/research/self-similar-decomposition-and-claim-ontology.md` 264–268; `TODO.md` 1725).\n- **2026-08-21, the root question** (`docs/research/evidence-division-and-the-foundation.md` line 3): *\"how to divide up the relevant evidence between different subclaims under a mother-claim, and aggregate the evidence in a way that's epistemologically honest and well-calibrated, while honoring the fuzzy boundaries between some semantic domains…\"*\n- **2026-09-27, on Q8** (ledger line 344): *\"couldn't there be some pragmatic value in having the methodology ladder around, even while being able to argue \"beyond\" it, deeper than it?\"* The methodology ladder is an edge-strength prior, next to this topic rather than about relevance.\n- **April 5–6, P2** (ledger line 310): same evidence should give the same assessment, *\"But of course maybe it is irreducibly subjective\"*. This bears on the idea that relevance is perspectival (T14).\n\n### 1.4 Historical founder designs, 2011–2013 (superseded in practice, never formally retired)\n\n- **Hand-drawn sketch, \"Contention diagram\".** Three scoring axes: **truthiness, relevance, controversiality** (`docs/sketches.md` 14).\n  - `docs/object-model.md` 71–77 places relevance on the **claim**: \"Relevance — does this matter to the debate?\", with vote aggregations \"(truthiness, relevance, etc.)\" (line 17).\n  - `docs/research/scheme-bounded-decomposition-and-evidence-as-subgraph.md` 308–311 re-reads it at bundle level: \"**Relevance**: Does this bundle actually bear on the contention? (inference strength)\".\n  - `docs/technical-direction.md` 11: \"Crowd provides what formal logic can't: relevance judgments, value weights, credibility assessments\". Also 106 and 112.\n- **The 2013 Meteor prototype** had **For / Against / Irrelevant votes on argument links**, with `forIndex = forVotes − againstVotes − irrelevantVotes` and `againstIndex = −(forVotes + irrelevantVotes)`. Substitutions carried `relevanceIndex` and `unrelatedVotes`. The analysis concluded: \"The 'Irrelevant' option was genuinely useful -- 24% of votes used it. This helps separate quality assessment from agreement/disagreement.\" (`docs/research/meteor-prototype-analysis.md` 11, 32, 59, 145–192, 305–311, 425, 533–537, 571–572).\n- **Early gamification design:** an \"Important / Unimportant\" binary vote, \"Is this claim relevant and significant to the parent argument?\", and a low-rating category \"irrelevant to parent claim\" (`docs/research/epistemic-gamification.md` 203–206, 228–230). Later called \"a design generation the project has since moved away from\" (`the-tidying-line.md` 187–188).\n\n---\n\n## 2. BUILT: what the code does with relevance today\n\n### 2.1 The requirement-weighted cap on `DECOMPOSES_INTO`, the only place relevance changes a number\n\n- **`deliberus/support_semantics.py`**\n  - 112–125: `REQUIREMENT_WEIGHT_TAGGED = 1.0`, `…_PRESUMED_PART = 0.5`, `…_STANDARD_QUESTION = 0.25` (defined, **used nowhere**: `rg` finds only its definition), `…_PROPOSAL = 0.0`.\n  - 127–144: `PRESUMED_PROVENANCES = {\"extraction\",\"human\",\"split\"}`. A *missing* provenance keeps the presumption on purpose, because presuming less would make wholes read stronger, the flattering direction.\n  - 186–223, `presumed_requirement_weight(provenance, confirmed, coverage, relevance, relevance_confident)`, applied in order: coverage \"invented\" → 0; `confirmed is False` → 0; a named provenance outside the set that is not confirmed → 0; otherwise 0.5. **Only if** the flag is on, a relevance value is given and it is not marked unconfident, the result becomes 0.5 × relevance clamped to [0, 1] (lines 217–222).\n  - 226–248, `requirement_weight(interpretation, presumed, argued)`: a `necessary` tag → 1.0; `corroborative` / `alternative` → 0.0; no argued value → the presumption; an argued value below 0.5 → **0.0** (the cap closes); otherwise `max(presumed, (argued − 0.5)/0.5)`.\n  - 251–279, `necessary_ceiling`: `min` over parts of `1 − w·(1 − s)`. A weight of 1 or more gives the full weakest-link cap; a weight of 0 or less gives no cap.\n- **`deliberus/graph/qbaf.py`** 304–311 and 338–342: the ceiling is applied as `min(strength, ceiling)`; the badge output carries `\"cap\": {\"ceiling\", \"requirement_weights\"}` (399–403).\n- **`deliberus/graph/badge_inputs.py`**\n  - 78–94: the parts query returns `support_interpretation, requirement_claim, provenance, confirmed, coverage`. It **does not read `relevance_proposal`**.\n  - 115–116: it calls `edge_requirement_weight(…, coverage=coverage)` **without `relevance=`**.\n  - 219–240, `edge_requirement_weight`: the argued value is the requirement claim's own recursive badge strength, used only if that badge is examined (weight > 0).\n- **`deliberus/hinge.py`** 216–239 mirrors the weights, but passes **neither `coverage` nor relevance** (drift from the badge; T15).\n- **`deliberus/api.py`** 2656–2744, `POST /claims/{claim_id}/parts/{part_id}/requirement`:\n  - Mints the claim `'\"<parent>\" requires \"<part>\": <reasoning>'` with `claim_type=\"normative\"`, `epistemic_status=\"normative_assertion\"` and `argument_label=\"requirement\"` (2701–2712).\n  - Links it to the part with `ARGUES_REQUIREMENT` and records the pointer `d.requirement_claim` (2713–2725).\n  - Allows one requirement claim per part; *\"a second person contributes to it rather than replacing it.\"*\n  - **No web UI calls this endpoint** (SWEEP: `rg` over `web/src` finds nothing), so the \"humans can challenge\" half of his direction has no screen today.\n  - `ARGUES_REQUIREMENT` is named as non-propagating in `badge_inputs.py` 45–56, so a requirement claim never moves the part's own strength.\n- **The strength (energy) channel ignores the requirement weight.**\n  - `interpreted_energy` (`support_semantics.py` 294–332) groups parts only by their interpretation tag.\n  - `subclaim_energy` passes `undecided_as=\"necessary\"` (`qbaf.py` 224–231).\n  - So a part with weight 0 still joins the weakest-member (`min`) group. The corpus states this itself: *\"The **requirement weight is not applied to energy**\"* (`what-counts-as-evidence/corpus-map-code.md` 469–473), with the measured table in `earning-the-right-to-write.md` § 2a, 138–152.\n- **A part's own strength**, if its badge is unexamined, comes from a count: `qem_strength(0.5, (supports − attacks)·0.3 + (agrees − disagrees)·0.15)` (`badge_inputs.py` 30–32, 102–107; `hinge.py` 44–52).\n\n### 2.2 The machine relevance judgement (propose-only)\n\n- **`deliberus/decomposition_judgement.py`**\n  - 1–39 (module docstring): two readings of one link in one call, the kind of combination and a magnitude. *\"It never writes `support_semantics`, which is what the strength computation reads\"* (27–31). This premise is wrong; see T11.\n  - 54–56: the kinds `necessary / corroborative / alternative / miscast_as_evidence / does_not_fit`.\n  - 63–67: stored as `support_semantics_proposal`, `relevance_proposal` and `deterministic_kind_signal`.\n  - 117–145, `EdgeJudgement`: `relevance_reason` is asked **before** `relevance` (field order is generation order). `relevance: float 0–1` = *\"How much the whole depends on this part, 0 to 1. 1 means the whole fails outright without it; 0 means the whole stands untouched without it. Answer this even when the kind is miscast_as_evidence — there it is how much the parent's case rests on this evidence.\"* A single `confident` flag covers both answers: *\"False if you are guessing — a guess here is worse than an abstention\"*.\n  - 171–177, prompt part TWO: *\"Judge what the whole would lose, not whether the statement is true and not whether you agree with it. An irrelevant thing filed under a claim scores near 0 even when it is perfectly true.\"*\n  - 184–204: runs on `DEFAULT_MODEL`, the same model family as extraction.\n  - 237–259: writes `r.relevance_proposal`, `r.proposal_confident`, `r.proposal_reason` and `r.proposal_agreement`.\n  - A separate detector that uses no model (94–114: shared subject versus evidence wording) reads part versus evidence only, never magnitude.\n- **Runner:** `scripts/propose_decomposition_kinds.py` prints the mean relevance (line 125).\n- **The switch:** `support_semantics.py` 154–183, `DELIBERUS_RELEVANCE_PRESUMPTION`, off by default. The docstring names three bounds:\n  1. it can only **lower** a cap;\n  2. an unconfident reading changes nothing;\n  3. the argued channel is untouched and only raises.\n  \n  It also names the direction of the risk: *\"⚠ It moves strengths in the FLATTERING direction.\"*\n- **Inert in production (SWEEP, verified).** No caller passes `relevance=` or `relevance_confident=`: see `badge_inputs.py` 116, `hinge.py` 233–237 and `api.py` 2692 and 2730. The stored names (`relevance_proposal`, `proposal_confident`) do not match the parameter names and are never read by the strength path. Turning the switch on would therefore re-score nothing. The flag's own comment says otherwise: *\"switching it on re-scores every capped claim in the graph\"*, lines 155–156.\n- **What reads `relevance_proposal`:** only `deliberus/parts_review.py` 95 and 110, which shows it to a reviewer and withholds it on blind items (156–159).\n\n### 2.3 SUPPORTS/ATTACKS: where relevance enters today\n\n1. **The write-time relatedness gate** (yes/no).\n   - `auto_connect.py` 66–69: *\"THE GATE, answered before anything else: is there a genuine LOGICAL relation between these two claims at all? False for merely topical overlap — same subject, same debate, no relation.\"*\n   - Prompt, 85–111: \"…Two claims can sit in the same debate, share vocabulary and be about the same subject while standing in no relation whatever…\"\n   - A link is written only if `related` and the model's `strength > 0.3` (403–404).\n   - Extraction's relationship pass asks the same thing: *\"3. Is this a genuine logical connection or just topical proximity?\"* and *\"Only include clear logical connections, not topical proximity.\"* (`cross_structure.py` 33, 48).\n2. **The model's own 0–1 number**, which has no definition: `cross_structure.py` 40 (*\"strength: 0.0-1.0\"*), `auto_connect.py` 74 (*\"Strength of the relationship (0 if unrelated)\"*), `keeper.py` 283–284 (*\"How strong the relation is, 0 to 1\"*).\n   - It is stored as `r.strength` and **discarded by the badge** (`badge_inputs.py` 150, `_strength`).\n   - It is used for display, for choosing what the map shows, for ranking four feeds, and for the linker's write gate (`what-a-link-strength-means.md` § 3).\n   - Q31 (ruled) retires it as a reading.\n3. **The link's strength in the badge.**\n   - `compute_edge_strength` (`qbaf.py` 136–167) applies QEM to Σ(pos − neg) over the link's critical questions.\n   - The link's contribution to its target is `edge_strength − 0.5` (`qbaf.py` 285–300).\n   - **There is no relevance factor, and no factor for the supporting claim's own strength** (`hinge.py` 18–22: *\"SUPPORTS/ATTACKS enter as local energy on each node, not as strength flow\"*).\n4. **Critical-question answers are counted, not weighed.** Each piece of evidence on an answer adds 0.15, capped at 0.45 per side (`badge_inputs.py` 16–19, 169–197). See Q27.\n5. **Critical questions in `deliberus/extraction/schemes.py` that ask about relevance.** These are the only way relevance can lower a link's strength today, and only through counted answers:\n   - `expert_field_match` (226)\n   - `practice_normative`, *\"The prevalence of {action} is relevant to whether it should be adopted\"* (261)\n   - `relevant_differences` (324)\n   - `precedent_similar` \"regarding {relevant_dimension}\" (340)\n   - `rule_applicable` (355)\n   - `character_relevant` and `character_bearing` (371–372)\n   - `inconsistency_bearing` (379)\n   - `claim_independent` (388)\n   - `value_scope` (482)\n   - `distress_relevant` (538)\n   \n   Also relevant:\n   - The generic meta-questions from Yu & Zenker 2020 (199–204): `premise_acceptable` (acceptability) and `warrant_acceptable`, *\"IF {premise} holds, {conclusion} genuinely follows\"* (the connection question).\n   - The character cluster's badge terms are **\"RELEVANT\" / \"FALLACIOUS\"** (576).\n   - Slot-free fallback wordings: `deliberus/cq_fallbacks.py` 91, 112–115, 174.\n6. **A methodology prior exists but is never used.** `compute_edge_strength` accepts a methodology tier as its base weight (`qbaf.py` 125–133, 158–159), but `edges_for_badge` never passes it (`badge_inputs.py` 315–324; ledger P4, line 312).\n\n### 2.4 Pair relevance: the keeper of the seven keys (propose-only)\n\n- `keeper.py` 101–137 (prompt), 65–73 (routing), 154–207 (`judge_pair`, optional swap check), 258–360 (`read_pair`, merged mode).\n- *overlaps* and *contains* are recorded on `SIMILAR_TO` and the pair then goes on to be classified (`auto_connect.py` 332–361, 464–495).\n\n### 2.5 Evidence routing (built, tested, **not adopted**)\n\n- `deliberus/evidence_routing.py` 17–19: *\"evidence that Smith published forty-seven papers is highly *similar* to 'labor economics is the relevant domain for this claim' and bears on it not at all.\"*\n- 54–60: verdicts `supports / attacks / irrelevant / undecided`, where *irrelevant* (\"looked, found no bearing\") is kept apart from *undecided*.\n- 248–256, prompt: *\"Judge SCOPE, not topic similarity.\"*\n- Also `decomposition-axes.md` § 2b; `CLAUDE.md` 639.\n\n### 2.6 Human review of relevance (built, not deployed)\n\n- `deliberus/parts_review.py` 61–71 adds a key the schema lacks: key 5, **\"neither — these barely relate\"**. The reason given: *\"A reviewer needs a way to say these two barely relate, or that defect is invisible here.\"*\n- One item in five is shown blind.\n- `docs/research/the-parts-review.md` line 3: \"built and tested, **not deployed**\".\n\n### 2.7 Tests that pin relevance behaviour\n\n- **`tests/test_decomposition_judgement.py`**\n  - 39–52: the pass never writes the field the strength layer reads. It checks the name `support_semantics`, which is the wrong field; see T11.\n  - 150–183, `TestTheRelevancePresumption`: off by default; a low relevance lowers the cap; it can never exceed the flat presumption; an unconfident reading changes nothing; it never rescues an `auto_connect` or refused link; an explicit refusal outranks everything. These are unit tests of the function only, with no wiring test.\n- **`tests/test_requirement_cap.py`**\n  - 21–95: tag = 1.0; arguing only tightens the cap (argued 0.6 → 0.5; 0.9 → 0.8); a rebuttal closes it (argued 0.3 → 0); presumptions by provenance; cap examples (part 0.074 → 0.537 at w = 0.5).\n  - A spurious 0.1 part under a strong whole: the whole reads 0.55.\n  - A fresh decomposition's ceiling is 0.75.\n  - Also 119–167: wiring through the requirement claim's own badge, hinge mirroring, and the endpoint minting only once.\n- **`tests/test_auto_connect.py`**: `TestTheRelatednessGate` (~466–500), and line 557 asserts that \"topical overlap\" appears in the prompt.\n- **`tests/test_keeper.py`** 136: the sentence \"OVERLAPS is judged by EVIDENCE, not by topic\" must survive the merged prompt word for word.\n- **`tests/test_parts_review.py`** 43–51: blind items carry neither the proposal nor the relevance.\n\n---\n\n## 3. PROPOSED / PHILOSOPHIZED (unruled unless stated)\n\n### 3.1 Ledger rows (`docs/research/session26-open-rulings.md`)\n\n| Row (line) | Content | Status |\n|---|---|---|\n| **O13** (295) | *\"The presumed requirement weight on a person-added part should come from a machine relevance proposal, never a flat 0.5\"*. As shipped, one irrelevant part caps any claim at 0.75 (0.5 once refuted). With a relevance pass, a bogus part starts near 0 and the attacker must argue the requirement (\"payoff removal before detection\"). | OPEN: his direction, Claude's design step |\n| **Q3** (339) | *\"Weigh critical-question answers, never count them\"*. An answer moves its link through its own standing; each answer carries a direction and a proposed, attackable strength tier on a log-odds scale (1/2/4/8, the ACMG/Tavtigian shape), lowest tier by default; a kind of answer earns a higher default only when its **diagnosticity** is measured; counting survives, labelled, as *coverage*. | OPEN: \"changes shipped strength semantics\". His agreement of 2026-09-28 is not yet recorded here. |\n| **Q27** (363) | Under the counting rule one answer moves a lone link's claim by under 0.0005; a one-question link fully answered reaches 0.504 and stays UNSETTLED; two questions answered in full reach 0.524. | OPEN: \"Rec: take it with Q3, which dissolves it\" |\n| **Q9** (345) | Typed attacks: rebut / **undercut (caps the edge, pushes toward *uninformed*)** / undermine. Typed questions: *assumption* (an open one withholds weight) versus *exception* (an open one costs nothing until substantiated). | OPEN: decision |\n| **Q7** (343) | Studies become three claims: study result → body of evidence → target, with **indirectness on the link from body to target**. | OPEN |\n| **Q11** (347) | A *generalises* inference carrying external-validity questions, including whether the population is relevantly similar. | OPEN |\n| **Q5** (341) | Keynesian weight counts only independent inputs, saturates, and gains a resilience readout. | OPEN |\n| **Q22** (358) | Typed evidence combinations after Schum (corroborative, convergent, cumulative, contradictory, divergent), proposed by a machine and contestable. | OPEN |\n| **Q21** (357) | A machine pass's measured error rate discounts all its unexamined outputs. This would apply to a relevance pass. | OPEN |\n| **Q28** (364) | A register of every tunable setting. The presumed weights 0.5/0.25/0 and the 0.3 would be entries. | OPEN |\n| **P10** (318) | A GRADE-like reading assembled from existing fields, including \"indirectness → relevance CQs\". | OPEN; overstated, since no such question weighs anything today |\n| **P16** (324) | Weight question energy by sample size, `log(N)/log(N_ref)`. | OPEN; its replication half is superseded |\n| **P4 / Q8** (312 / 344) | The methodology ladder as a prior on link strength; retire it or keep it as a labelled starting point. | OPEN |\n| **D8 / D9** (80–81) | *\"Existence is protected; weight is not — the strength layer IS an aggregate and IS brigadeable\"*; the `necessary` ceiling is among the defences never tested against a motivated stakeholder. | OPEN |\n| **R7 / R12** (418 / 428) | Independence as structure. And \"high confidence\" in the housekeeping ruling means *measured calibration*, never the pass's own confidence; this applies to any machine relevance proposal. | OPEN |\n\n### 3.2 Design documents\n\n- **`weakest-link-arithmetic-and-the-merge-hunch.md` § 9d** (555–623, 2026-09-02), the \"deflation mirror\".\n  - Min removed the payoff for padding a claim with parts, but *\"by the same arithmetic it created a payoff on asserting requirements to deflate\"*.\n  - Its answer: *\"a necessity assertion is itself a claim, carries its own strength, and the cap applies through that strength.\"*\n  - Its sorting rule: a requirement inside the parent's *derivable requirement space* is pre-populated uniformly, so asserting it selectively earns nothing. Outside that space it is a *proposed requirement* that caps nothing until argued.\n  - 617–623: *\"the lift and the cap share one gate.\"*\n- **§ 9e** (625–704, 2026-09-19): the exposure table (0.75 / 0.55 / 0.50) and three more ways to attack the cap:\n  1. requirement claims propped up by many accounts;\n  2. closing a cap that should stay, since a rebutted requirement drops to weight 0, below the 0.5 presumption;\n  3. unanswered drive-by links move nothing.\n  \n  It then proposes the next step (a machine relevance proposal with its reasoning stored beside it) and names the cautions: *\"the judge and the extractor share a model family (same-hand bias), so a second family is the better judge; the pass needs an *undecided* answer that falls back to the modest presumption, never a forced guess\"*. It ends: *\"That is not attack-proof. It needs a defender to show up.\"*\n- **`drowning-in-claims.md` § 8** (112–153, 2026-09-03). This is where \"relevance strength\" was coined: *\"**Relevance is a graded, contestable property of the edge, and the cap weight is the relevance strength**: presumed-but-rebuttable and modest for a scheme's standard question, argued for anything else, and answerable by *not applicable* with a reason — a first-class answer, attackable like any other, which a skeptical second-family judge can propose at scale. Irrelevant content has no lever on the arithmetic because relevance *is* the lever, and it is never free.\"* Also: *\"An earnest, argued, connected tangent is indistinguishable from a real consideration until someone judges its relevance… every such judgment spends attention.\"*\n- **`derivability-of-missing-considerations.md`**\n  - § 1 (21–37): a six-rung ladder of how derivable a consideration is.\n  - § 3(b) (143–150): *\"a consideration is a dimension that bears on the conclusion; evidence is the ground for it.\"*\n  - § 4 correction (179–185): *\"The cap weight is the edge's *relevance strength* … they count by relevance strength, never by mere existence.\"*\n  - § 5 fork (202–207): should unanswered *latent* requirements cap the whole, or only feed the coverage measure? *\"Founder call.\"*\n  - § 9 table (401–407): a requirement *\"inside the derivable space: pre-populated for everyone, so asserting it adds nothing; outside: caps only through its own argued strength.\"*\n- **`TODO.md` band A item 2** (691–698): the candidate resolution that a requirement counts in the cap by its relevance strength, never by existence, *\"Awaiting your word alongside item 1\"*.\n  - Item 1 (676–690): *the lift*, meaning coverage over the derivable requirement space, raised but never total, *\"awaiting one word\"*.\n  - Band C (747–748): pre-populating derivable requirements, with a per-part coverage verdict minted as an attackable claim, is unbuilt.\n- **`cheap-to-add-slow-to-matter.md`** (2026-09-03, unruled).\n  - Division-of-distrust matrix (27–31): the machine may *\"cap by presumed-modest relevance; **never lift**\"*, and after a check *\"cap at full relevance weight\"*.\n  - *\"Relevance weighted, never presumed\"* (93–94).\n  - *\"Relevance judging regresses to attention\"* (151–153).\n- **`session29-the-derivability-arc-and-the-conservative-design.md`**, Part III (critical examination, 2026-09-05). It ranks among the weak assumptions: *\"4. **'Relevance strength can be computed and gates the cap.'** A second-family judge helps and is unmeasured for this task; the literature says the generator's own judge is biased toward *useful*. Assumed, not shown.\"* (223–225). Also: *\"a **judge** who rules on relevance is a role, not a model, and courts fund it\"* (259–261).\n- **`what-counts-as-evidence.md`** (2026-09-26, Claude's research; all rows in Arc Q).\n  - Line 186: Keynes's weight is the amount of *relevant* evidence.\n  - 211–212: *\"relevance is a property of study + target + argument, i.e. of the **edge**\"* (Cartwright & Hardie).\n  - 276: GRADE-CERQual grades relevance.\n  - 282: across GRADE, IPCC, EFSA, IARC and OHAT, lines of evidence are appraised on \"bias/reliability, **relevance/indirectness**, precision/quantity, consistency, reporting bias\" and integrated \"often weakest-link\".\n  - § 8b (719–740), § 8d (754–760), § 8e (770–778): indirectness lives on the link from body to target.\n- **Evidence dossier, `docs/research/what-counts-as-evidence/`**\n  - `philosophy-of-evidence.md` 66: *\"the platform needs either a relevance threshold or a measure (likelihood ratio) that displays *how much*\"* (Achinstein's lottery case); 252–254 and 467: an explicit **external-validity scheme**; *\"relevance is an edge property: the same RCT claim can be strong evidence for one target and weak for another.\"*\n  - `grading-evidence-in-science-and-policy.md` 36–40: *\"a third axis — *applicability/indirectness to the question asked* — that belongs on the **edge**, not the node\"*; indirectness questions in the table at 853; 825–828.\n  - `law-intelligence-history-journalism-forensics.md` 96–100: *\"**probative value and weight are separate from relevance**: relevance is a gate (does it move probability at all?), probative value is a magnitude.\"*\n  - `testimony-experience-and-normative-evidence.md` 413: Hahn & Hornikx, CQ answers set parameters of a likelihood ratio; source and content combine multiplicatively.\n  - `formal-and-computational-models-of-evidence.md` 291–315: Quality Precedence, Cardinality Precedence and Compensation are incompatible, *\"choose, and state the choice\"*.\n- **`prediction-markets-argumentation.md`** (2026-03-27, Claude's research) 400–403 and 424–433:\n  - *\"'Premise P supports Conclusion C with strength S' where S reflects both P's probability and the conditional relevance P(C|P)\"*.\n  - Conditional pair markets P(C|P) and P(C|¬P): *\"The difference reveals the **evidential relevance** of P to C. If both conditional probabilities are similar, P is irrelevant to C regardless of its truth value\"*.\n  - *\"Conclusion confidence = f(premise probabilities, conditional relevances, attack strengths)\"*.\n  - This is the corpus's earliest statement of the founder's current intuition: premise strength and relevance as separate factors.\n- **`bridging-arguments.md` § 6.1** (312, March 2026): *\"attack and support relations can themselves have group-specific weights, modeling that an objection considered decisive by one group may be irrelevant to another.\"*\n- **`scheme-bounded-decomposition-and-evidence-as-subgraph.md`**\n  - 126: *\"critical questions map to **undercutting attacks** … 'has the expert's domain relevance been established?'\"*.\n  - 216–221: ad hominem decomposes into *\"relevance to claim → bearing on truth\"*; *\"ad hominem can be valid (bias is relevant) or fallacious (character is irrelevant to truth).\"*\n- **`the-irit-harvest.md`** 61–76 (and `the-analogy-daemon.md` 123): analogy strength rests on four considerations, **Relevance, Number, Diversity, Disanalogy** (Amgoud, ECAI 2020), aggregated with a Choquet integral. It suggests *\"Relevance≈Mechanism identity\"* and a per-scheme aggregation layer (`TODO.md` 981–984). The Shapley/RAE per-link attribution explainer is also proposed (`TODO.md` 976–980).\n- **`linked-convergent-and-what-we-are-actually-asking.md` § 5** (67–77): is Freeman's *coordinatively compound* structure a fourth cell? *\"Unruled; not a proposal yet.\"*\n- **`jev-and-the-judgement-layer.md`** 333–335: score each retrieved claim for *\"does this claim bear on the question asked?\"* (\"Trial\").\n- **`weakest-link…md` § 9b** (469–478): the *overlaps* labels from the seven-key sitting are to calibrate the novelty dial. That is about dependence, not relevance, but it uses the same key.\n\n### 3.3 How relevance could be determined: every method the corpus names\n\n| Method | Kind | Home | State |\n|---|---|---|---|\n| Machine 0–1 score with reason first and an abstention flag | dependence magnitude | `decomposition_judgement.py` | built, propose-only, run on 197 links |\n| Model-free structural signal (shared subject versus evidence wording) | part versus evidence only | `decomposition_judgement.py` 94–114 | built, silent on 77% |\n| Seven-key pair verdict (*overlaps* / *unrelated*) | categorical bearing | `keeper.py` | built, runs by default in auto_connect |\n| Relatedness gate | yes/no | `auto_connect.py` 66–69 | built, ruled |\n| Argued requirement claim, its strength computed from its own supports and attacks | argued standing | `api.py` 2660ff | built, API only |\n| Derivability ladder (rungs 0–5) | is the consideration within what could be derived | derivability doc § 1, § 4 | design; the pre-population is unbuilt |\n| Second-family judge | machine, other model family | § 9e; drowning § 8; N9 | proposed |\n| Human sitting (parts review key 5; seven-key sitting) | human | `parts_review.py`; `TODO.md` 826–834 | built, not deployed or scheduled |\n| Relevance critical questions answered (character_relevant, and indirectness / external validity as proposed) | argued | `schemes.py`; Q7, Q11 | partly built (counted) |\n| Likelihood ratio, or P(C\\|P) versus P(C\\|¬P) | quantitative | prediction-markets doc; FRE 401; Hahn & Hornikx | literature and design only |\n| Crowd votes (\"Irrelevant\") | votes | Meteor 2013; technical-direction | historical; votes are telemetry since 2026-08-31 |\n| Hinge sensitivity / Shapley attribution | structural importance | `hinge.py`; `TODO.md` 976 | built (hinge) / proposed (Shapley) |\n| Embedding similarity | topical | retrieval | explicitly **rejected** as a relevance measure (`evidence_routing.py` 253; `keeper.py` 129; `decomposition-axes.md` 45) |\n\n### 3.4 How relevance could act on strength: every mechanism the corpus holds\n\n1. Scale the weakest-part cap: `1 − w(1 − s)`. Built, decomposition links only.\n2. Scale the presumption: `w = 0.5 × relevance`. Built behind the switch, not wired.\n3. Argued standing: `w = max(presumed, (a − 0.5)/0.5)`, or 0 if a < 0.5. Built.\n4. Relevance questions as undercutters that cap or zero a link (Q9), weighed by their answers' standing (Q3). Proposed.\n5. A relevance threshold, or a displayed likelihood ratio (Achinstein; philosophy dossier line 66). Proposed.\n6. Likelihood-ratio parameters per question, with source and content multiplied (Hahn & Hornikx; Hahn, Harris & Corner). Literature only.\n7. `f(premise probabilities, conditional relevances, attack strengths)` (prediction-markets doc). Early design.\n8. Group-specific relation weights (bridging § 6.1). Early design.\n9. Coverage weighted by centrality for the lift (derivability § 5). Proposed.\n\n### 3.5 Advice against, and residual problems named\n\n- **Do not build an irrelevance mark** (`the-tidying-line.md` § 5, 179–199, and § 6 item 5, line 216; `README.md` 297). *\"An irrelevance mark that hides a claim is deletion-by-judgment wearing a filter's clothes\"*. It is strategy-class: *\"someone will argue their opponent's premise is off-topic.\"* This is advice; no ruling is recorded.\n- **Residuals named:**\n  - many accounts acting as one remain undefended at every layer (§ 9e door 1; D8, D9);\n  - relevance judging costs attention, and the triage feed that would ration it is unbuilt (cheap-to-add 151–153; session29 297–300);\n  - LLM classifiers over-rate their own candidates: 75–85% labelled \"useful\" against 44% actually useful (derivability § 7, 252–260).\n\n---\n\n## 4. MEASURED\n\n| What | Number | Source |\n|---|---|---|\n| Relevance by who wrote the decomposition link (2026-09-22, 197 links, 53 minutes) | auto_connect n=84, mean **0.17**, 0 genuine parts · split n=44, **0.42**, 30 parts · human n=39, **0.32**, 9 parts · extraction n=30, **0.49**, 6 parts and **20 miscast** | `docs/research/session35-the-verification-night.md` 115–120; `linked-convergent…md` 30–35 |\n| Overall mean relevance, re-run after the reason-before-verdict repair | **0.33** (197 judged, 0 failures, 0 unconfident, 59.6 minutes) | `docs/research/the-parts-review.md` 90 |\n| Sample of 16 auto_connect decomposition links (2026-09-22) | 0 genuine parts; mean relevance **0.14** against **0.56** for extraction-written links (⚠ corrected 2026-10-07: these links were stored premise first, so the judge was asked whether a conclusion is a piece of its premise; the zero records that, and says little about the pairs, of which 16% held no relation when read again: `auto-connect-upgrade.md` § 2c) | `CLAUDE.md` 387; `tests/test_auto_connect.py` ~470–475 |\n| Decomposition census, run twice | 76% not part-of (⚠ corrected 2026-10-07: 84 of those 197 were the automatic linker's premise links, stored backwards, which could not have been judged parts; among the other 113, 59% are not parts: `auto-connect-upgrade.md` § 2c); run 2: 81 `does_not_fit`, 70 miscast, 35 necessary, 11 corroborative (run 1: 45/78/74 parts/miscast/no-fit) | `CLAUDE.md` 387; `the-parts-review.md` 95–101 |\n| The two detectors | 27 agree, 18 disagree (9%), 152 no signal (77%) | `linked-convergent…md` 51–55 |\n| The 70 miscast, read by hand (the 31 machine-written ones) | about 13 support child → parent; 3 the other way; 2 reported speech; 5 referent mismatch; 8 not support; 29 retired | `the-parts-review.md` 110–118 |\n| Cap exposure to one bogus part added by a person (w = 0.5) | ceiling 0.75 left alone; 0.55 argued down to 0.1; 0.50 refuted | `weakest-link…md` § 9e 658–662 |\n| On the build day | 10 of 87 decomposed mothers carry a cap; **0 change strength**; the cap bites only above about 0.54 | § 9d line 615; `TODO.md` 866–868 |\n| Stack item 6 (applying the cap to untagged parts) | a lone untagged part at 0.074 leaves its parent at 0.492; 7 of 87 mothers would change | `TODO.md` 843–853 |\n| Parts at 0.30 / 0.80 / 0.80 | parent 0.498 (w=0), 0.498 (w=0.5), **0.300** (w=1.0) | `earning-the-right-to-write.md` 146–152 |\n| Worked example, parts 0.9 / 0.9 / 0.3 untagged | 0.498; ceiling 0.65, which does not bind | `corpus-map-code.md` 465–467 |\n| Test-pinned cap numbers | part 0.074 → ceiling 0.537 at w=0.5; a strong whole with a spurious 0.1 part → 0.55; a fresh split → ceiling 0.75 | `tests/test_requirement_cap.py` 58–95 |\n| Counting rule | one answer moves a claim by less than 0.0005; one-question link fully answered = 0.504; two questions 0.524; six questions (18 answers) 0.581; four such links 0.813 | ledger Q27; `corpus-map-code.md` 395–399 |\n| Stored link numbers (Q31) | 4,639 live links; 174 at a flat 0.7 from hand-made maps; round-number clustering | `what-a-link-strength-means.md` 54–67 |\n| Keeper, first live run | 64 of 75 pairs came back *overlaps*; 1 link written before the routing fix; 128 of 140 had the classifier restating the keeper | `auto_connect.py` 341–346; `keeper.py` 220–226 |\n| Auto-connect precision by hand | cosine about 4.5–5 of 6 genuine logical connections; concept route about 6 of 6; structural about 3.5 of 6 | `auto-connect-upgrade.md` § 2e (99) |\n| Meteor 2013 | 54 argument votes: For 21 (39%), Against 20 (37%), **Irrelevant 13 (24%)** | `meteor-prototype-analysis.md` 305–311 |\n| Machine-generated critical questions | about 44% useful; LLM self-rating 75–85% useful | derivability § 7 252–260 |\n| Choosing which premise to attack | GPT-4 agrees with experts about 80% of the time | derivability § 7 300–305 |\n\n---\n\n## 5. OUTSIDE LITERATURE\n\n### 5.1 Cited in the corpus (with read depth where it is marked)\n\n- **FRE 401** (relevance as \"any tendency\"; *[recalled text]*) and **FRE 403** (probative value outweighed by prejudice; *[verified text]*): law dossier § 1.2, 81–100.\n- **Schum.** Directly relevant versus ancillary evidence (1999, *[verified]*, 383–388). The three credentials, relevance / credibility / inferential force (*[recalled]*, 459–462). Wigmore and Tillers & Schum on catenated inference (67–76).\n- **Achinstein**, *The Book of Evidence*: the lottery case and the explanatory connection (*[verified in outline via SEP; examples from memory]*). Philosophy dossier 52–67.\n- **Carnap**, firmness versus increase (\"incremental = relevance\") (*[from memory]*). Philosophy dossier 93–96.\n- **Cartwright & Hardie**, evidence for use; relevance belongs to study, target and argument (*[from memory — verify]*). Philosophy dossier 243–254.\n- **Keynes**, weight as the amount of relevant evidence (*[from memory — chapter]*). Philosophy dossier 162; `deliberus/evidential_weight.py` 14–17.\n- **Haack**, foundherentism, including comprehensiveness of relevant evidence (*[verified]*). Philosophy dossier 354.\n- **GRADE** indirectness (Guyatt 2011, GRADE 8), GRADE-CERQual relevance, **EFSA** \"reliability, relevance, consistency\", **QUADAS-2** bias versus applicability, OCEBM. Grading dossier 20–40, 238–240, 296–299, 364–366, 727–729. The OCEBM footnote is marked *[verified]*.\n- **Hahn & Hornikx 2016** (critical questions as likelihood-ratio parameters), **Hahn, Harris & Corner 2009** (multiplicative), **Hahn & Oaksford 2007**. Testimony dossier 407–413 (no inline flag).\n- **ArgRAG** (Zhu, Potyka et al., NeSy 2025, *[verified]*): base scores come from a model's relevance and stance confidence. Formal dossier 278–287. *(⚠ Corrected 2026-09-28, both here and in the dossier: the best configuration uses uninformed base scores, and retriever scores did worse; `strength-calculus-literature/computational-argumentation.md` § 2 item 33.)*\n- **Amgoud & Ben-Naim** (Cardinality Precedence, Quality Precedence, Compensation; weighted bipolar graphs, IJCAI 2018, *[verified]*); **Mossakowski & Neuhaus**; **Potyka KR 2018** (QEM); **Munro, Bloch & Lesot** (aggregative semantics); **Amgoud et al. KR 2018** and **Amgoud & David AAAI 2021** (similarity). Formal dossier 262–315; weakest-link § 1e and § 9b.\n- **Nouioua & Risch** (necessary support); **Freeman / Thomas / Beardsley / Walton 1996** (linked and convergent); **Yu & Zenker 2022** (circularity critique) and **Freeman 2023** reply; **Pollock 2001** (weakest link). Weakest-link § 1b and § 1d; `support_semantics.py` 1–35.\n- **Yu & Zenker 2020**: meta-level critical questions, *\"complete evaluation … means asking *all* relevant CQs\"* (`scheme-set-exhaustiveness.md` 66; `schemes.py` 196–204).\n- **Amgoud, ECAI 2020** (analogy: Relevance, Number, Diversity, Disanalogy). IRIT harvest 61–76.\n- **Wachsmuth et al., EACL 2017**: cogency = premise acceptability, relevance and sufficiency (`ranking-reasoning-quality-without-bedrock.md` 43). This is the only trace of the RSA triad.\n- **Heylighen**, via Vervaeke's *relevance realization*. Founder-brought; read as two structured extractions, not line by line (heylighen doc line 3).\n- **CQs-Gen 2025** (Calvo Figueras & Agerri), **Ozaki et al. 2025**, **Alshomary et al. 2021**. Derivability § 7, *\"Read-depth: abstracts and key sections.\"*\n- **Kim et al., NAACL 2025**: LLMs *\"handle the gradient of relevance/irrelevance poorly\"* (`docs/inductive-reasoning-research.md` 21).\n- **Katzav & Reed**, relations of conveyance (`scheme-set-exhaustiveness.md` 54); **Toulmin**, warrants and backing (`science-lineage-philosophy.md` 297ff).\n\n### 5.2 Standard for this question, and **not in the corpus** (confirmed by `rg`)\n\n- **Johnson & Blair**, *Logical Self-Defense* (1977): the relevance / sufficiency / acceptability triad. \"Blair\" appears only as Blair et al. 2025 on bridging.\n- **Govier**, the ARG conditions (Acceptability, Relevance, Good Grounds).\n- **Walton**, *Relevance in Argumentation* (2004) and dialectical relevance.\n- **Tindale; Hitchcock's \"Relevance\" (1992)**. \"Hitchcock\" appears only as a co-author of Easwaran et al.\n- **Dunne, Hunter, McBurney, Parsons & Wooldridge, \"Weighted argument systems\"** (AIJ 2011): attack weights and inconsistency budgets.\n- **Weighted-attack and varied-strength-attack frameworks** (Coste-Marquis et al.; Martínez, García & Simari).\n- **Edge-weighted QBAF / MLP semantics** (Potyka, AAAI 2021, \"Interpreting neural networks as quantitative argumentation frameworks\").\n- **Relevance logic** (Anderson & Belnap).\n- **Sperber & Wilson**, relevance theory.\n\n### 5.3 How the RSA triad maps onto what the corpus already has (SWEEP; this mapping is not in the corpus)\n\n| RSA leg | Corpus analogue |\n|---|---|\n| **Acceptability** | a part's strength (its recursive badge or its count), and the `premise_acceptable` question. **Not propagated at all for SUPPORTS/ATTACKS.** |\n| **Relevance** | the requirement weight (the cap only, on decomposition links only); the relatedness gate; the relevance questions (counted) |\n| **Sufficiency** | the lift / coverage question (the \"up-transmission whisper\", `weakest-link…md` § 7); the `warrant_acceptable`, `exception_absent` and `rebuttal_absent` questions; the completeness of the derivable requirement space |\n\n---\n\n## 6. TENSIONS, CONTRADICTIONS AND GAPS\n\n**T1. One word, several quantities. Bearing and dependence are conflated.**\n- The built score is *dependence*: \"how much the whole depends on this part\" (`decomposition_judgement.py` 139–144).\n- The glossary defines *relevance strength* as *bearing*: \"How much a requirement or consideration actually bears on its claim\" (`the project glossary` 171, status not-yet).\n- The founder equated requirement with relevance on 2026-09-19 (\"the RELEVANCE (which I guess all this is about)\").\n- For an evidence item, or a corroborating or alternative part, bearing can be high while dependence is low; one of three independent studies is an example.\n- Measured sign of the mix: extraction's links score the *highest* relevance (0.49) while 20 of 30 are miscast, and session35 says *\"the child genuinely bears on the parent, it simply is not a piece of it\"* (126–128).\n- **SWEEP:** if this dependence score were reused as relevance on SUPPORTS links, corroborating evidence would be discounted for having siblings. That penalises redundancy a second time, on top of the novelty dial proposed for exactly that (weakest-link § 9b).\n\n**T2. The same example is worded two ways.**\n- `decomposition-axes.md` 45 (2026-08-14): the 47 papers are *\"highly *relevant*\"* to domain match and *\"transfer to it **not at all**\"*. Here \"relevant\" means topical.\n- `evidence_routing.py` 17–19 re-words it: *\"highly *similar* … and bears on it not at all\"*.\n- `corpus-map-research-docs.md` 608–609 re-quotes the older wording.\n- Under the ruled collision test (J13, ledger line 196), this is a collision.\n\n**T3. The founder's premise versus the code.**\n- For ordinary SUPPORTS/ATTACKS links there is no relevance weight and no flow of the supporter's own strength.\n- Relevance there exists only as:\n  - the yes/no write gate;\n  - counted relevance questions;\n  - the undefined stored number, which the badge discards and which Q31 retires without giving relevance a new home.\n- `what-a-link-strength-means.md` 48–50 names the ambiguity (\"how far establishing one claim would advance the other\"), yet § 5 splits the number into a reading, a machine rating and an ordering, with no slot for relevance.\n\n**T4. The relevance switch does nothing, and the docs say it would.**\n- No caller passes `relevance` or `relevance_confident`.\n- The stored names (`relevance_proposal`, `proposal_confident`) differ from the parameter names, and one `confident` flag covers both the kind and the relevance.\n- These texts describe it as working or ready to adopt: `support_semantics.py` 155–156; `scripts/propose_decomposition_kinds.py` 14–15; `session35…md` § 5; `corpus-map-code.md` 461–463.\n\n**T5. Relevance can remove a cap but not a drag.**\n- A weight of 0 still leaves the part in the weakest-member energy group (`corpus-map-code.md` 469–473; `earning-the-right-to-write.md` § 2a).\n- A part's count-based strength also counts unconfirmed proposal links (`corpus-map-code.md` 435–440).\n\n**T6. SWEEP arithmetic: the argued channel is lopsided, and its threshold ignores the ruled neutral band.**\n- `requirement_weight` closes the cap as soon as the requirement claim reads below 0.5 (`support_semantics.py` 245–246).\n- Under the counting rule, one piece of evidence on one question of an *attacking* link leaves the requirement claim at about 0.49994. That is examined, so the argued value is 0.49994 and the weight becomes 0: the cap closes entirely. The display band would call that same claim UNSETTLED (ruled 2026-08-23, `qbaf.py` 45–57, 72–75).\n- Tightening beyond the presumption needs the requirement claim above 0.75. By `corpus-map-code.md` 395–397, that takes about four supporting links with six questions each fully answered (0.813).\n- § 9e door 2 names the closing asymmetry but not how it combines with the counting rule (Q27).\n\n**T7. SWEEP: requirement claims are always typed normative.**\n- They are hard-coded `claim_type=\"normative\"` and `epistemic_status=\"normative_assertion\"` (`api.py` 2705–2706).\n- Relevance claims are often empirical (population similarity, indirectness) or definitional (what \"credible expert\" requires; compare the Dr Smith part \"Labor economics is the relevant domain\", `self-similar…md` 28). Horizon-kind readings and any treatment that depends on claim type would misfile them.\n\n**T8. Where relevance lives has never been settled.**\n- On the claim (`object-model.md` 76).\n- On the bundle or inference (`scheme-bounded…md` 310).\n- On the link (Meteor; `what-counts-as-evidence.md` 211–212; drowning § 8; glossary).\n- As a link weight relative to a group (bridging § 6.1).\n- As a derivable requirement space (derivability).\n- No document reconciles these.\n\n**T9. Who judges relevance points in five directions.**\n- The founder: machine first, then people challenge (2026-09-19).\n- session29 Part III: \"Assumed, not shown\"; *\"a judge who rules on relevance is a role, not a model\"*.\n- the-tidying-line: relevance is strategy-class, so build no mark.\n- Meteor and technical-direction: the crowd judges relevance, but votes have been telemetry since 2026-08-31.\n- R12: confidence must be *measured calibration*.\n- Meanwhile the judgement pass runs on the extraction model family (`decomposition_judgement.py` 186–192), against § 9e's \"second family\" caution, and it has no calibration sample yet because the parts review is not deployed.\n\n**T10. SWEEP: turning on O13's switch as built would work against the 2026-09-21 split ruling.**\n- With the measured means, a split part's presumed weight would fall from 0.5 to about 0.21 (0.5 × 0.42), and a person's part to about 0.16 (0.5 × 0.32).\n- That loosens caps the founder ruled should presume like a person's (*\"We should expect good splits\"*).\n- session35 § 5 already names the cost in general terms: *\"until somebody argues, that good part's cap is suppressed.\"*\n\n**T11. The strength layer reads a different property from the one the docs name.**\n- The docs and code comments say the strength computation reads **`support_semantics`**: `decomposition_judgement.py` 27–31 and the filter at 226; `parts_review.py` 6; `linked-convergent…md` 59; `tests/test_decomposition_judgement.py` 47, 51, 142.\n- The code actually reads **`support_interpretation`**: `badge_inputs.py` 93, `hinge.py` 223, `api.py` 2681. The seed scripts write it (`scripts/seed_synthetic_stress_suite.py` 191; `scripts/seed_stress_suite_wave2.py` 189), and `scripts/graph_facts.py` 26 counts it.\n- So the measurement \"nothing has ever written `support_semantics`; 197 of 197 untagged\" queried a property the strength layer never reads. Ledger B10 (line 45) records 17 stress-suite tags written as `support_interpretation`.\n- The pass is still safe, since its proposal property is not read either. But \"adopting a proposal\" would have to write `support_interpretation`.\n\n**T12. SWEEP: critical questions mix two jobs under one count.**\n- Some questions test whether the premise is acceptable (undermining: `expert_credibility`, `premise_acceptable`). Others test whether the connection holds (undercutting: `warrant_acceptable`, `character_bearing`, `expert_field_match`).\n- Both are untyped and counted by one rule (Q9 would type them; `scheme-bounded…md` 126 says CQs map to undercutters).\n- So a link's number today blends acceptability and relevance. That is the very conflation his message targets.\n- Q3's proposed tier per answer also bundles two things: the answer's own standing, and how diagnostic that kind of answer is (likelihood-ratio magnitude). His 2026-09-28 message separates exactly these.\n\n**T13. The relevance of the questions themselves is unhandled.**\n- About half of machine-generated questions are junk (CQs-Gen 2025).\n- `REQUIREMENT_WEIGHT_STANDARD_QUESTION = 0.25` is defined and used nowhere.\n- There is no first-class \"not applicable\" answer to a question in the code. It exists only as an attack on a requirement claim (`support_semantics.py` 235; `api.py` 2671, 2711). drowning § 8 describes one as if designed.\n- If answers are weighed by their standing (Q3) with no term for question relevance, a strongly answered irrelevant question would still move a link.\n\n**T14. Relevance that depends on perspective versus one right answer.**\n- Bridging § 6.1 (link weights per group) and Heylighen (\"inherently value-laden\") on one side.\n- P2 (same evidence, same assessment; OPEN) and Q15 (named slots for divergence) on the other.\n- Unreconciled.\n\n**T15. hinge.py and the badge disagree.**\n- The hinge omits `coverage`, so a part whose split invented material caps its whole in the hinge but not in the badge. Neither passes relevance.\n- This is the drift class that R6's conformance suite (ledger line 412) targets.\n\n**T16. Candidate text is sometimes cited as if it were a rule.**\n- `cheap-to-add-slow-to-matter.md` line 7 lists \"relevance-weighted caps\" among \"the week's rulings and findings\".\n- The latent-requirement case is still an unruled fork (`TODO.md` 691–698), and the 0.25 weight for standard questions is unbuilt.\n\n**T17. Requirement claims can be brigaded.**\n- § 9e door 1: several accounts supporting a spurious requirement push its weight toward 1.\n- D8 and D9 remain undefended.\n\n**T18. The presumption still depends on a field the founder has ruled to retire.**\n- `presumed_requirement_weight` reads `confirmed`, which Q32 retires. The rewrite is a build item (`TODO.md` 213–214); until it lands, the presumption rests on that field.\n\n**T19. Next to relevance, on the acceptability side (SWEEP).**\n- Agree and disagree votes still move a part's count-based strength (`badge_inputs.py` 31, 105), despite the 2026-08-31 end state that bare judgments are telemetry.\n- A part's strength is the other factor in the cap formula.\n\n**T20. The argued-relevance channel has no screen.**\n- It is reachable only through `POST …/requirement`; nothing in `web/src` calls it.\n\n**T21. The lift's relevance weighting is design only.**\n- \"Weighted by centrality (the hinge already ranks it)\" appears in derivability § 5 (197–200) and is unbuilt.\n- The whisper's 0.3 weight is *\"an accident of inherited constants, not a decision\"* (`weakest-link…md` § 7, 360–361; `TODO.md` 885–891).\n\n---\n\n## 7. File index (absolute paths)\n\n**Code**\n- `deliberus/support_semantics.py`\n- `deliberus/graph/qbaf.py`\n- `deliberus/graph/badge_inputs.py`\n- `deliberus/hinge.py`\n- `deliberus/decomposition_judgement.py`\n- `deliberus/keeper.py`\n- `deliberus/extraction/auto_connect.py`\n- `deliberus/extraction/cross_structure.py`\n- `deliberus/extraction/schemes.py`\n- `deliberus/cq_fallbacks.py`\n- `deliberus/evidence_routing.py`\n- `deliberus/parts_review.py`\n- `deliberus/api.py` (lines 2656–2744)\n- `deliberus/evidential_weight.py`\n- `scripts/propose_decomposition_kinds.py`\n- `scripts/graph_facts.py`\n\n**Tests**\n- `tests/test_decomposition_judgement.py`\n- `tests/test_requirement_cap.py`\n- `tests/test_auto_connect.py`\n- `tests/test_keeper.py`\n- `tests/test_parts_review.py`\n\n**Ledger, register and overview files**\n- `docs/research/session26-open-rulings.md`\n- `TODO.md`\n- `CLAUDE.md`\n- `SESSION-HISTORY.md`\n- `README.md`\n- `the project glossary`\n\n**Core research documents** (all in `docs/research/`)\n- `weakest-link-arithmetic-and-the-merge-hunch.md`\n- `derivability-of-missing-considerations.md`\n- `drowning-in-claims.md`\n- `cheap-to-add-slow-to-matter.md`\n- `session29-the-derivability-arc-and-the-conservative-design.md`\n- `session35-the-verification-night.md`\n- `linked-convergent-and-what-we-are-actually-asking.md`\n- `the-parts-review.md`\n- `earning-the-right-to-write.md`\n- `the-tidying-line.md`\n- `what-a-link-strength-means.md`\n- `what-confirmed-means.md`\n- `what-counts-as-evidence.md`\n- `decomposition-axes.md`\n- `evidence-division-and-the-foundation.md`\n- `scheme-bounded-decomposition-and-evidence-as-subgraph.md`\n- `self-similar-decomposition-and-claim-ontology.md`\n- `support-semantics-and-the-conjunction-problem.md`\n- `the-irit-harvest.md`\n- `prediction-markets-argumentation.md`\n- `bridging-arguments.md`\n- `heylighen-value-complexity-and-deliberus.md`\n- `meteor-prototype-analysis.md`\n- `epistemic-gamification.md`\n- `ranking-reasoning-quality-without-bedrock.md`\n- `the-ratification-record-and-the-triage-feed.md`\n- `unweighed-answers-two-months.md`\n- `auto-connect-upgrade.md`\n- `game-feel-and-the-first-screen.md`\n- `jev-and-the-judgement-layer.md`\n- `the-load-bearing-unsaid.md`\n- `wild-weighing-dialects-and-the-question-set.md`\n- `scheme-set-exhaustiveness.md`\n\n**Evidence dossier** (`docs/research/what-counts-as-evidence/`)\n- `philosophy-of-evidence.md`\n- `grading-evidence-in-science-and-policy.md`\n- `law-intelligence-history-journalism-forensics.md`\n- `testimony-experience-and-normative-evidence.md`\n- `formal-and-computational-models-of-evidence.md`\n- `corpus-map-code.md`\n- `corpus-map-research-docs.md`\n- `corpus-map-founder-voice.md`\n\n**Other docs**\n- `docs/object-model.md`\n- `docs/sketches.md`\n- `docs/technical-direction.md`\n- `docs/open-problems.md`\n\n**Session transcripts** (founder's verbatim words; all in `the session-transcript folder/`)\n- `08fc91c9-8ad3-415b-9c22-4de29b15b3f3.jsonl` — 2026-09-28, 13:56 and 15:11\n- `b56497a7-4d23-4ced-a33d-60c222c1593b.jsonl` — 2026-09-03 15:33; 2026-09-19 11:27\n- `dc4eae5b-0ab0-42f7-a8bf-c44c0da8840f.jsonl` — 2026-09-21 11:18\n- `4beb4561-6b6d-42f7-8466-e7193cc7391b.jsonl` — 2026-08-14 22:16"}