{"path":"research/the-yellow-link.md","content":"# The yellow link: what *qualifies* holds, and where each of its cases belongs\n\n*2026-10-24. Claude's reading, unruled. His question, on the legend entry \"adds a condition, says what a word\nmeans, or restates\" and another session's note that the line fits no newer ruling: \"Can we rethink this before\ndeploy? What are your thoughts? Reflect deeply on recent ontology/argumentation rulings and reasoning.\"*\n\n## 1. What the 80 links on the institute map are\n\nEvery live `QUALIFIES` link on the Swedish institute map (80, read whole on 2026-10-24) carries the scheme\n`does_not_fit`. So the yellow line is not a relation anyone chose: it is where a link went when none of the\nothers fitted. That is the confession value doing its job, and it is also the failure the confession principle\nwarns of, given a friendly name and a colour: a menu's *other* box shown as if it were a kind.\n\nRead one by one, the 80 fall into three groups (counts approximate, by hand):\n\n| Group | About | Examples | Where the rulings put it |\n|---|---|---|---|\n| Reasons and objections | 40 | *The AI Office does the tasks at EU level* against *set up an institute*; *the Cyber Security Centre did not reach its results* against *use existing actors*; *FOI monitors new technology*, a counterexample to *an assignment is what the decision says*; *a party may answer low though it wants an institute*, against what the survey count shows; *350 MSEK over ten years* against a new agency | A support or an attack, or an attack on a link's relevance (an undercutter). Counterexamples to a rule are objections until an explanation naming a kind is written (AT3, AT13, AY4). Failure counts only through a contribution that says why (Q34), which these are. Filed as *qualifies* they weigh nothing. |\n| Members of a whole | 18 | *PTS* … *Swedac* each \"one of the five\"; FRA's four tasks; INESIA's four agencies; the appeal's three institution powers | Parts: the whole is a record, cut to the floor, its members its parts (AX8, AL15). Stored today as the part pointing at the whole. |\n| Context that argues nothing | 18 | *Launched by Finland's President*, \"which appeal it is\"; *FRA reports by 13 November*; *the Government and Riksdag decide*, \"where the decision is taken; no reason for or against\" | Neither a reason nor a part. Either part of the claim it describes (if it is what that claim says), or a fact beside it with no link that moves anything. |\n\nA handful more are restatements (*coordinate the cooperation* and *be responsible for the cooperation*, \"the\nsame task\"), which is the keeper's *same* or *overlaps*, a sameness mark and not a link (canon: sameness is\ndecided before any relation).\n\n## 2. What follows\n\nHalf the yellow links are the map's arguments, and today they move no strength and get no relevance reading,\nbecause the strength layer reads supports, attacks and parts only. The other session called mis-filing a part\nof the problem; read whole, it is the largest part.\n\n`DEFINES` and `REFRAMES` share the colour and have the same trouble from another side: a definition is a claim\non the word, entering through the claim like every use (AM7), and a reframe is a contribution about the frame\n(the frame-gap path, 2026-09-09). Neither is on the institute map.\n\n## 3. Proposal (unruled)\n\n1. **Retire *qualifies* as a kind of link for new mapping.** A link that is not a support, an attack, a part or\n   a sameness mark is unfiled, and is drawn and named as unfiled (the confession, visible), never under a\n   name that sounds like a relation.\n2. **Re-file the institute map's 80 by the table above,** in `institute-map/build_map.py`, one group at a time,\n   each re-filing a hand case for its pass, and the map stored again.\n3. **The legend's yellow entry goes when the links are re-filed;** until then its truthful word is *unfiled*.\n\nRejected: keeping a named, non-weighing *context* link. It is the same menu shape that produced the 80: a\ncostless, friendly-sounding option beside the real ones draws the cases that should have been argued (the rule\nthat a no-answer belongs in a gate, never on the menu).\n\n**Ruled 2026-10-24** (founder, to *\"stop using yellow for new links, and draw any unfiled link as unfiled. I'd\nrather not keep a softer 'context' link instead, because a free option sitting beside the real ones is how these\n80 got there\"*): *\"Agreed. Think through what all the microtasks we have would/should do about the existing yellow\nlinks/claims. Read up deeply on this before changing the claims.\"* Ledger BB1. § 4 is that thinking. No claim or\nlink has been changed.\n\n## 4. The whole graph: what every pass does with a yellow link today, and what it should do\n\n### 4.1 What is there (read 2026-10-24)\n\nThe institute map's 80 are a sixth of it. Graph-wide there are **538 `QUALIFIES` links**, plus 27 `DEFINES` and\n8 `REFRAMES`, which share the colour.\n\n| Who wrote them | Links | Re-read by any standing pass? | A person's act on them? |\n|---|---|---|---|\n| The linking step between sources (`auto_connect`), incl. 21 from the backwards-parts re-reading | 299 | **Yes**: each pair also has a resemblance link, so the keeper's queue owes it | none |\n| Extraction's relationship pass (Pass 3a), on its own sources | 36 | **No**: within one source there is no resemblance link, so no queue holds them | none |\n| Hand-made maps stored through the extraction path | 162 institute (81 Swedish, 81 English copy), 29 + 3 AI-governance, 8 seed examples (thermostat, synthetic) | No: their builders are their source of truth | none |\n| Dogfood run 6, hand extraction stored as `human` | 3 | No | Claude's hand, not a person's |\n| The staleness verdict (`store.set_validity`) | 1 | — | a person ratified the lapse |\n\n79 of the extraction links carry stored critical questions from before questions went latent (158 machine\nscaffolding claims answering them); no answer is a person's. None of the 538 has a relevance reading, because the\nrelevance judge reads supports and attacks only, and none weighs anything, because `qbaf.py` reads all three\nyellow kinds as neutral. So **retiring a yellow link moves no badge; re-filing one does**, which is the point.\n\n### 4.2 What *qualifies* turns out to hold, graph-wide\n\nRead by hand on 2026-10-24: 22 sampled from the linking step, all 36 from extraction, the 3 dogfood links and the\n29 AI-governance links. Shares are rough.\n\n| What the link actually says | About | Example from the graph | Where the rulings put it |\n|---|---|---|---|\n| **No bearing on the target's truth**: a compatible addition, a contrast, a concession, a detail | 45% | *LLMs are good at boilerplate* against *some complex tasks they cannot do*; *the computer metaphor is useful* against *it is only a metaphor* | Nothing. The keeper's gate asks whether establishing one would raise or lower the other; here neither, so the gate says no |\n| **A limit on what the target can be evidence FOR** (an undercutter of a link that is not on the map) | 20% | *the experiments do not show subjective experience* against *experiential language depends on the J-space*; *sincere alarm is evidence of belief, not of probability* against *researchers left saying high risk* | An attack on the **relevance claim** of the link from the target to the conclusion it would support (Pollock's undercutter; the relevance claim as the link's reification by id). The link it limits is usually unwritten, so it must be written first (the writing-out of the unwritten step, Arc AD) |\n| **Counter-evidence or an exception** | 15% | *Card and Krueger's later assessment found no effect* against *their initial result found higher employment*; *distilled models lose robustness* against *compression is what lets models generalise* | An attack. An exception to a normic rule is an objection until an explanation naming a kind is written (AT3, AT13, AY4) |\n| **Support**: an instance, the rule under it, or the limit it states | 10% | *Nuremberg defined exigency within limits* toward *permissible force is not unlimited* | A support, read by the relevance judge like any other |\n| **Restatement, entailment or overlap** | 10% | *a 10% chance it happens implies a 90% chance it does not*; two conditions stated for one rule | The keeper's *same*, *contains* or *overlaps*: a sameness mark or a separability note, never a link (canon: sameness first). A narrower rule is a rival claim (AT1; a rephrase is a new claim, AL10) |\n\nTwo shapes classical theory names and the rulings already place: Toulmin's **qualifier** (*probably*) is the\nauthor's stance, never strength (AM6), and Toulmin's **rebuttal** (*unless*) is an exception claim (AT13). Neither\nneeds a third kind of link. Under the reasons channel a link moves its claim only by raising or lowering it\n(Q33, Q46), so a link that bears but neither raises nor lowers has no arithmetic to run: *qualifies* is not\na missing kind, it is a menu slot.\n\n### 4.3 What each pass does today, and should do\n\n**Writers, which keep producing them today**:\n\n- **The linking step (`auto_connect`)** offers *qualifies* as answer 3 and writes it (`WRITABLE_RELATIONSHIPS`).\n- **The keeper's merged reading (`keeper.read_pair`)** offers it on its relational half. Both should drop it in the\n  same commit (the *last asker wins* gotcha): what was a qualification then becomes the gate's no, an attack, a\n  support, or the keeper's key, by the table above.\n- **Extraction's Pass 3a (`cross_structure.RELATIONSHIPS_PROMPT`)** offers *qualifies* and *reframes* with **no\n  definition at all**, which is why 48 of its questioned links are `does_not_fit`. It should drop both.\n- **The backwards-parts re-reading (`backwards_parts.RELATIONS`)** filed 25 of its 231 answers as qualifications on\n  2026-10-07, which is the pass above re-filing into the same slot. Done, not re-run; its 21 surviving links are in\n  the 299.\n- **The hand-map builders** (`institute-map/build_map.py`, the AI-governance and seed scripts) write it by hand.\n\n**Readers, which would change meaning once the links go**: the two honesty instruments count `QUALIFIES` as a\nconflict (`disagreement_preservation.CONFLICT_EDGE_TYPES`, `synthesis_ledger`), so a concession has been counted as\npreserved disagreement; they should count attacks only. The map, the truth graph (*narrows*), the tail, the agent\npage and the claim map list it among argument links, and read only live links, so a retired one drops out by\nitself.\n\n**Passes with nothing to do**: the relevance judge (never read them), the splitter, the reasons splitter, the\nfloor, the independence reading, the whole-as-record rehoming. Until a link is re-filed none of them sees it.\n\n**A gap the inventory found**: no standing pass ever re-reads a link extraction wrote within one source. The keeper's\nqueue is defined by resemblance links, which only join claims of different sources. That holds for all of Pass\n3a's output, not only its yellow links.\n\n### 4.4 What should happen to the existing links, in order (proposed, unruled)\n\n1. **Fix the menus first.** A pass measured as defective is fixed before it runs over fresh data; otherwise its\n   wrong answers land in the graph and must be found again. A test that no writer's menu offers *qualifies* or\n   *reframes* is the check.\n2. **The linking step's 299**: the keeper's standing sweep already owes every pair. With the menu fixed, a reading\n   that says no bearing or *same* retires the link, and one that names a support or an attack replaces it (R12),\n   old link kept and restorable. He reads a handful of these readings one at a time before any run (the rule that a\n   person reads a pass before anyone proves its rate), then a run of three or four calls (R8's brake).\n   The reading runs on the keeper's measured model, never Haiku 5.5: on sixteen flat denials the keeper on\n   Gemini answered *opposes* 16 of 16 and Haiku 5 of 11, calling the rest unrelated, which here would retire real\n   attacks as no bearing (`tests/fixtures/microtask_cases/negation-pairs.json`, `resonance-db-and-negation.md`).\n3. **Extraction's 36**: retire and re-read with the same reading, as `backwards_parts.py` did for its links: a\n   retire step with no model call and a re-read step that stamps what it read.\n4. **The hand maps**: re-filed in their builders by the table above, never in the graph. The institute map first.\n   The AI-governance map needs care: about 20 of its 29 are the author's own limits on how far an inference reaches,\n   and filing them as attacks on his claims would misstate him the way the epistemic-status flattening did; they\n   go on the relevance claim of the link they limit, which mostly has to be written first.\n5. **Undercutters of a link not on the map** cannot be filed by any pass that reads pairs, since their target is a\n   link. Until a pass writes the missing link, they are drawn as unfiled.\n6. **The staleness verdict** gets a link kind of its own. Its job is defined and it acts through the claim's\n   `invalid_at`, never as an argument; it only borrowed the name.\n7. **Stored critical questions** on a retired link are retired with it; a re-filed link gets latent questions from\n   its own scheme.\n\n### 4.5 Two questions this does not settle\n\n- **`DEFINES`** (27, of which 20 come from the clarification feature that has been live since April) is a defined\n  relation, not a menu slot: a definition of a term the claim uses. Whether it keeps a link or becomes the\n  claim's sense (AM7: a dispute about meaning enters through the claim) is its own ruling.\n- **The ledger wheel** (`/ledger`) draws *narrows* and *revises* between ledger rows in the same yellow. That is a\n  link between decisions in our docs, not between claims in the graph, and its meaning is written in the row.\n\n### 4.6 Built 2026-10-24 (BB1, BB2 ruled), and four first readings\n\n**Built**: *qualifies* is off the menus of the linking step (`auto_connect`), the keeper's relational half,\nextraction's relationship pass (which also loses *reframes*; *defines* waits on § 4.5) and the backwards-parts\nre-reader. The linking step can still note and retire an old qualifying link between a pair it reads again\n(`RETIRABLE_RELATIONSHIPS`), which is what BB3's sweep needs. `tests/test_no_qualifying_menu.py` reads every\nwriter's reply types and prompt text, with a positive control on the old menu lines. A pair whose claim only\nlimits what the other can be evidence for is now the gate's no; what the reader said about it stays in the\nrecord of model calls, and nothing draws it yet (BB4's *unfiled* is unbuilt).\n\n**Four readings** of old yellow pairs by the changed linking step, 2026-10-24, nothing written. ⚠ All four\nwere answered by `gemini-3.1-flash-lite`, the last fallback, because the free-tier quota was spent; they say\nnothing about the model the pass is meant to run on.\n\n| Pair | Hand reading (§ 4.2) | The pass |\n|---|---|---|\n| *J-space activates only once generation begins* / *Claude creates a space to think before answering* | attack | attacks |\n| *LLMs are good at boilerplate* / *some complex tasks they cannot do* | no bearing | gate no |\n| *access when it enters a small shared workspace* / *GWT: experiences occur when information is widely available* | same | same |\n| *distilled models may be less robust* / *compression is what lets models generalise* | attack (an exception) | gate no |\n\n**Live 2026-10-24 at 15:35** (image `11ea17c8`): the menus without *qualifies*, and the faster map. Measured on the live site, headless at a fourfold slowdown: a ring turn drops 0 to 3 frames of 59. The 538 old links are untouched until BB3's sweep, which waits on his word on the keeper's prompting (no keeper calls until then, his word to the grants session the same afternoon).\n"}