{"path":"research/machine-work-as-a-standing-property.md","content":"# Machine work as a standing property of the graph, not an event in a pipeline\n\n**Date**: 2026-09-22 · **Status**: **proposal, unruled** · **Origin**: the founder, shown three\nreasons the contested-concept detector misses things: *\"Think deeply and think big. What would be\nthe best and most robust solution to this for Deliberus? So humans ideally don't have to do\nreviews/housekeeping/microtasks that AI could be tasked with confidently with high accuracy?\"*\n\n**Enriched 2026-09-24** with Codex's analysis of dependencies, discovery, calibration and reversal,\nat the founder's request. These additions are **design proposals, not newly ratified policy**.\nThe measurements below retain their original dates; the implementation check in § 6 is newer.\n\n**Builds on, does not restate**: [graph-daemons-design-space.md](graph-daemons-design-space.md)\n(tiers, the enzyme constraint, the daemon catalogue) ·\n[earning-the-right-to-write.md](earning-the-right-to-write.md) (the trust ladder and the\naddressability discriminator) ·\n[core-periphery-and-the-concept-layer.md](core-periphery-and-the-concept-layer.md) § 5b (downstream\ndivergence as the primary trigger — the founder's own sharpening) ·\n[the-ratification-record-and-the-triage-feed.md](the-ratification-record-and-the-triage-feed.md).\n\n---\n\n## 1. The exhibit: what fraction of the graph each pass has ever touched\n\nMeasured 2026-09-22 over the **1,982 substantive claims** (excluding the 3,142 critical-question\nscaffolding claims, which were never eligible for most of these):\n\n| Pass | Claims it has touched | Coverage |\n|---|---|---|\n| short title | 1,982 | 100.0% |\n| attribution | 1,971 | 99.4% |\n| content date | 1,911 | 96.4% |\n| embedding | 1,724 | 87.0% |\n| any propositional edge | 1,262 | 63.7% |\n| **concept tagging** | **482** | **24.3%** |\n| **resemblance link** (`SIMILAR_TO`) | **28** | **1.4%** |\n\nAnd the number that says what kind of defect this is, embedding broken out by how the claim was\ncreated:\n\n| How the claim was made | Claims | Embedded |\n|---|---|---|\n| extracted by the pipeline | 1,851 | 1,670 |\n| written by a person | 44 | 38 |\n| implicit premise, found by a pass | 34 | 16 |\n| **minted report** (always-mint's own output) | **53** | **0** |\n\n**Not one of the fifty-three claims that always-mint exists to create has ever been embedded.** The\ndecision of 2026-08-15 was made so that *straw-manning becomes detectable* — one side's rendering of\nthe other's position made comparable against what that side actually asserts. Comparison runs through\nsimilarity. Those claims are invisible to every similarity path in the system, so the capability the\ndecision was for has never been able to work.\n\n**The mechanism is checkable and was checked**: `embed_and_store_claim` has exactly **seven call\nsites, all of them inside `deliberus/api.py`**. Embedding is not a property of a claim. It is a\nfavour seven endpoints happen to do. Anything that mints a claim anywhere else — the durable\nworkflow's storage path, the hand-extraction script, reported speech, a decomposition split — makes\na claim no later pass will ever see, and nothing anywhere says so.\n\n---\n\n## 2. The defect has one shape and three faces\n\nThe three reasons the contested-concept detector misses things look like three bugs. They are one.\n\n| Face | The detector's version | The general form |\n|---|---|---|\n| **Never ran** | hand-stored sources get no pass at all | the pass is attached to **a door**, so material arriving by another door is never seen |\n| **Scoped to the batch** | one source at a time, so a word contested *between* two authors is invisible | the pass's scope is **an ingestion event**, not the region of the graph the question lives in |\n| **Net fixed at write time** | the prompt lists *fair, just, deserving, adequate, responsible*, so `possibility` and `correlated` were never candidates | the pass's recall was **set once, by an author who had not yet seen the corpus**, and re-running changes nothing |\n\n**A pass fires once, at one door, over one batch, with one net — and whatever it missed stays missed\nfor ever, because nothing ever asks again.** Coverage is not merely low; it is *unknowable*, because\nnothing records what was attempted. The 24.3% above had to be reconstructed by counting edges.\n\nThis is the corpus's own repeated finding seen as one thing. It has been measured separately at\nleast five times and filed as five gaps: implicit premises run on the durable path only · the\nresemblance linker's three unwired call sites · concept tags written at extraction time with no\nbackfill and human claims untagged · auto-connect never running on claims the correction interface\nmints · attribution computed and never written to the graph. Each was recorded as a wiring\noversight. **None of them is an oversight. They are the architecture behaving as built.**\n\n---\n\n**Another instance of the same shape, found 2026-09-29: a re-store erases work already done.**\nStoring the AI-governance map again deleted and recreated its claims, and with them a written split\nof seven parts; nothing asked the splitter again, and the documents said seven written splits for a\nweek while the graph held six. A re-store now keeps the split of a claim whose words are unchanged.\nIts links to other sources and its question scaffolding are still erased\n([microtasks-in-broad-daylight.md](microtasks-in-broad-daylight.md) § 3d).\n\n**And one more, measured 2026-10-05: whatever is built on a pass inherits its reach.** The parts\njudge last ran on 22 September, over every part-of link then in the graph. Thirteen days later 45\nof the 206 standing links had no reading: 14 parts the splitter had cut since, and 31 links the\nlinker had written. Nothing had gone wrong in the judge. But a review page had been built on its\nreadings a week before, to let a person judge the splitter, and it took only links that had one.\nSo the page left out every part cut after the judge's last run, among them every part cut by the\nsplitter's current version, and its own description said *every machine-cut part*. A second pass\nthat reads the first is a dependency with a date on it, and nothing showed the date\n([pass-quality-and-the-choice-of-model.md](pass-quality-and-the-choice-of-model.md) § 6b).\n\n## 2b. The sibling defect: a judgment produced and then dropped\n\n§ 2 is about work never *done*. There is a second class, found by auditing the code on 2026-09-22\nafter the keeper's first live run, where the work IS done, correctly, and then **discarded by the\ncode that receives it**.\n\n**Instance one — the keeper's separability short-circuit** (fixed the same day,\n[session36](session36-the-keeper-and-the-order-of-asking.md) § 1b). `judge_pair` returns two\nindependent flags, `may_classify` and `separability_signal`. `auto_connect` read the second and\nreturned; **it never read the first at all**, so three of the four keys that set `may_classify`\ncould not reach the scheme classifier. On one source that cost **64 of 75 correctly-identified\nevidential relations**, each recorded as a proposal with no edge. Nothing failed, no test broke, and\nthe verdicts in the graph were right — they were simply in the wrong bucket.\n\n**Instance two — `self_eval`'s per-item findings, and the reason it is NOT simply a bug.** The\nself-evaluation pass is asked, for every issue it finds, *\"How to fix the issue\"*. Measured: **the\nfield name `suggested_fix` occurs exactly once in the entire repository — its own declaration.**\n\n⚠ **A first version of this section said the output was discarded. It is not.** The whole result is\n`model_dump`ed and stored on the extraction record (`api.py:978`), so every per-item finding and\nevery suggested fix is **on disk and has never been read by anything** — no route serves it, no\ncomponent renders it. What reaches a human is `claims_with_issues + relationships_with_issues`, a\ncount. Stored-and-unread is a different condition from discarded, and the distinction matters,\nbecause it means the fix is a read path rather than a re-run.\n\n**And the obvious remedy is blocked by a principle, which is why this is a founder question rather\nthan a chore.** `self_eval` is the machine grading its own homework, and the 2026-08-18 cleanup\nremoved its quality *score* on exactly those grounds. Rendering the per-item findings would\nreintroduce that in a more detailed form; and `suggested_fix` is specifically a **proposal to change\na claim**, so by propose-never-assert it would have to arrive as a proposal a person can accept or\nreject, never as a displayed verdict about somebody's extraction.\n\nSo the live question is not *surface it or delete it*. It is: **does a machine's critique of its own\nextraction belong in front of a reader at all, and if so, as what kind of object?** Until that is\nanswered, the pass is spending a model call per issue on a remedy nobody has decided how to use.\n\n**The mechanical tell, which is cheap to re-run**: a judgment returns N decision fields and a caller\nreads fewer than N. Two audits found these — every `Literal` value against the branches that read it\n(**clean: no orphan values**, so the enums are fine), and every model-filled field against any read\nanywhere. The second is worth keeping as a standing check; four of its seven hits were regex false\npositives (`getattr`, field names in tuples, keyword arguments), so it needs a human pass, which is\nexactly the size of check § 3d says a human should be spending attention on.\n\n**Why it belongs in this doc rather than being two bugs.** Both are the same economics as § 1: the\nexpensive part — reading the material and forming a judgment — was paid for, and the cheap part —\nstoring or routing the answer — threw it away. A watermark (§ 3b) does not catch this class, because\nthe pass genuinely ran. What catches it is asking, for every field a model is asked to fill, **who\nacts on this** — and treating *nobody* as a finding rather than as a default.\n\n---\n\n## 2c. Tested against a live proposal: does merging two passes into one call fit these swaps?\n\nAsked 2026-09-22, before building the keeper/classifier merge. Running the proposal past all four\nswaps changed its design rather than its verdict, which is what the swaps are for.\n\n**Swap 3a, the door trigger — neutral.** Collapsing two calls into one changes nothing about what\nstarts the pass.\n\n**Swap 3c, detectors that start from an observed effect — FAVOURABLE, and this is the unlooked-for\ngain.** § 3c proposes that the contested-concept detector should begin from a disagreement the graph\ncan already see and ask *what term is this turning on*. A merged call is the natural home for that\nquestion: the model has just read both claims and concluded they oppose, so the term can be asked for\n**in the same generation, at nearly zero marginal cost**. The merge is what makes the concept-layer\nrecall fix cheap.\n\n**Swap 3b, the watermark — favourable on bookkeeping, and it carries one real cost.** One pass\nproducing one judgment gives one watermark, one version, and a clean answer to *was this pair ever\nasked*. But **the version bump becomes coarser**: today the keeper's prompt could be improved and\nonly the sameness judgments re-swept, leaving scheme classifications untouched. Merged, any prompt\nchange invalidates both halves, and § 5 already says re-sweeping is the expensive part. That cost is\nreal and is accepted rather than dissolved.\n\n**Swap 3d, the human calibrates the pass — AGAINST, and this is the load-bearing objection.** Two\npasses are two independently calibratable things, and **the two halves have different trust\nprofiles**: sameness routes to a merge candidate that a person must action, while relationship\nclassification *writes edges*. Under the trust ladder you would plausibly promote one to autonomous\nwriting while holding the other propose-only. **A merged pass cannot be promoted by halves** — which\nwould trade a measured 46% cost saving for lost granularity in precisely the mechanism this doc\noffers as the answer to *how humans stop doing microtasks*.\n\n**The resolution, which is the design change the question produced: calibrate per FIELD, version per\nPROMPT.** Accuracy is a property of an output field, not of a call. One merged prompt at one version\ncan still yield *the key field is right 94% of the time, the relationship field 78%*, and the trust\nladder promotes the second and not the first. The generation is shared; the measurement need not be.\nGranularity survives the merge; only the re-sweep granularity does not.\n\n**So: merge, with per-field calibration, and accept coarser re-sweeping as the priced cost.** The\nguard that rides along is unrelated to the swaps and comes from the same day's evidence: the keeper's\ninstruction block goes into the merged prompt **verbatim**, because one sentence in it (*\"OVERLAPS is\njudged by EVIDENCE, not by topic\"*) carried the entire meaning of a key.\n\n---\n\n## 3. The fix, in four parts\n\n### 3a. Detach the pass from the door\n\nA pass's obligation becomes **a condition on the graph**, independent of its ingestion event.\n*This claim has no concept judgment at the current version.* *This argument has an unexamined premise gap.* *This claim\nhas never been offered to the candidate net.* Material that arrives by an unusual door — a hand\nextraction, a blob, a person typing — stops being a special case, because no door is privileged.\n\nAn ingestion event can still wake a worker promptly. The distinction is between **what creates the\nobligation** and **what wakes the worker**: a periodic reconciliation of graph state catches missed\nevents and material arriving through an unexpected door. Neither a lost notification nor a worker\nrestart should erase work the graph still owes.\n\nThe corpus already has the word for what the machine may do here: **confident housekeeping is the\nmachine's job** (ruled 2026-09-13). This is that ruling applied to the passes themselves rather than\nto cleanup of their output.\n\n### 3b. Give every judgment a coverage watermark\n\n*Built in its first step on 2026-10-06, under the name the record of machine judgments: one row\nfor every model call, written by the shared call function, write-once in the database. It records\ncalls; the row per examined subject and pass described below is read from those once each call\nsite names what it is judging\n([storing-the-record-of-machine-judgments.md](storing-the-record-of-machine-judgments.md) § 7a).*\n\nOne record per examined subject and pass: **which pass, which version, when, what it examined, and\nwhat it concluded — including when it concluded nothing.** A subject may be a claim, a pair, an\nedge or a region; forcing pair judgments into per-claim stamps would conceal what was compared.\n\nThree things fall out of that single mechanism, and each one is currently a manual chore:\n\n1. ***Was this ever asked?*** becomes a query rather than a reconstruction. The table in § 1 becomes\n   a dashboard rather than an archaeology session.\n2. **Improving a prompt bumps its version, which invalidates every watermark written under the old\n   one, which queues the corpus for re-sweep.** The third face of the defect — a net fixed at write\n   time — stops being permanent. Today, fixing the contested-concept prompt would improve only\n   sources ingested afterwards.\n3. **A pass that has looked and found nothing is distinguishable from a pass that never looked.**\n   That is *a guard that never fires looks exactly like a guard that works*, solved by bookkeeping\n   rather than by vigilance, and it is why the confession value must be **stored**, not merely\n   allowed.\n\n**The missing dependency, added 2026-09-24:** a prompt version alone cannot establish freshness.\nA claim can be reworded, its source context corrected, an opposing claim added or a concept's\ninterpretations expanded without the prompt changing. *Already examined* must not silently mean\n*examined an earlier situation*.\n\nThe proposed record therefore identifies the input revisions and relevant context examined,\nalongside the prompt, model and retrieval configuration. It keeps distinct outcomes for **found\nsomething**, **examined and found nothing**, **could not decide**, and **failed to complete**.\nFreshness is a separate question: any completed judgment can later become outdated. A skipped\ncandidate is recorded as skipped, never counted as an examination with a negative finding.\n\nThere are two kinds of dependency. An embedding depends on a claim's text and the embedding model;\na comparison also depends on both claims and the context supplied. A search for possible opponents\ndepends on the search space itself: a newly added claim can make an earlier negative result\nincomplete. Recording only the IDs returned by retrieval misses that last dependency. The candidate\ngenerator needs its own version and a record of the corpus region or revision it searched.\n\nThis is also the strongest deterministic answer to the cost question in § 5b: **reuse a judgment\nwhen its declared dependencies are unchanged**. That does not prove the old judgment correct; it\nestablishes that its recorded basis has not changed. Conservative invalidation is appropriate where\nthe dependency boundary is not yet known. Whole-graph invalidation on every edit would be honest\nbut unaffordable, so finding useful dependency boundaries is part of the design, not bookkeeping\nthat can be postponed until after it works.\n\n### 3c. Trigger from structure, not from a word list\n\nThe third face does not yield to re-running: a net told to look for evaluative words will never\ncatch `correlated`, whatever version it is on.\n\n**Invert the question.** Instead of *scan these claims for contested words*, ask: *here is an\nobserved disagreement — two claims the keeper called `opposes`, or an attack edge, or a group whose\nhalves lead to opposite conclusions — what term is the disagreement turning on?* Recall is then\nbounded by the disagreements the graph holds rather than by a prompt's vocabulary.\n\nThis is the founder's own sharpening, already recorded and unbuilt:\n[core-periphery-and-the-concept-layer.md](core-periphery-and-the-concept-layer.md) § 5b names\n**downstream divergence as the primary trigger**, and § 5b's deeper form says the layer should record\n*deltas* — somebody's stated difference from a shown reference — rather than descriptions. Both\nrequire starting from a disagreement rather than from a word.\n\n**The generalisation worth keeping: starting from an observed effect can escape a detector's\npreselected vocabulary.** The same inversion is available to more than the concept layer — the\nstraw-man daemon, the implicit-premise pass and the reuse daemon. But the effect is observed through\nthe graph's existing extraction and linking machinery, not from an unmediated view of reality.\n\n**Primary trigger, not exclusive discovery route.** If extraction omitted a position or linking\nmissed an opposition, a detector awakened only by represented disagreements would inherit that\nblindness. The proposal therefore retains a small, separately budgeted exploration of apparently\nquiet regions and cross-source material, independent of the disagreement trigger. Human additions\nremain another route. The distinction is between investigating a known disagreement and discovering\none the graph has not yet represented; neither substitutes for the other.\n\nThe question itself also needs an escape: *does this disagreement turn on a difference of meaning,\nand if so, which?* Different evidence, factual beliefs or interests may explain it without a\ncontested concept. Requiring a term would manufacture conceptual disputes to satisfy the schema.\n\n### 3d. The human calibrates the pass; the human never performs it\n\nThis is the direct answer to the question, and it is a claim about **arithmetic**, not about trust.\n\nToday a machine judgment reaches a person as **work**: eighty-four candidate pairs to review is\neighty-four units of attention, and it buys a verdict on those eighty-four. Tomorrow the same\njudgments arrive and it buys nothing towards them.\n\nInstead, the sitting stops being review and becomes the **promotion test**. A stratified sample with\nseeded wrongs — the protocol the founder already revised on 2026-08-31 — measures a pass's accuracy\non a task class. Above the bar the pass **writes**, marked and reversible and automatically\ndemotable; below it, it **proposes**. The sample informs authority over subsequent work in the\ntested task class, subject to continuing audit; it cannot license every pair the pass will ever see.\n\nHuman attention goes from *one unit per judgment* to *one sample per pass per drift period*. On the\nparts review, a sitting of roughly twenty pairs can begin that calibration, not establish high\nreliability across an unbounded stream. And it is the trust ladder of [earning-the-right-to-write.md](earning-the-right-to-write.md) with the missing half\nsupplied: that doc has the discriminator for *which* passes may write; this supplies **the\nmeasurement that says when**, and the bookkeeping that says **on what**.\n\n**It also answers the ratification tether rather than ignoring it.** The standing worry is that a\nhuman gate degrades into rubber-stamping while the audit trail stays healthy. A calibration sample\nwith seeded wrongs is a check the human can **fail**, and the catch rate is recorded — so the gate's\nown health is measured instead of assumed. That is the one thing ordinary ratification never had.\n\n**Authority has a scope.** The proposed promotion record names the output field, operation, material\non which it was evaluated, consequential error types and evidence supporting the grant. Per-field\ncalibration (§ 2c) remains useful, but a correct key and a correct relationship in isolation do not\nestablish that their joint routing and write effect are correct. Calibration includes the resulting\ngraph change, not just agreement with individual labels.\n\n**An audit needs a denominator independent of who happened to complain.** Corrections found during\nordinary use are valuable signals, but a low correction rate can mean little inspection. Continuing\nrandom audits, with counts of eligible, sampled and actually examined cases, give demotion evidence\non quiet material too. Targeted hard cases and seeded wrongs complement that sample; their rates\nare reported separately rather than treated as representative corpus accuracy. Seeded wrongs test\nthe reviewer's attention to known mistakes, not whether reviewer and model share an unknown blind\nspot. A new register begins outside the existing grant until evidence warrants extending it.\n\nThis qualifies the heading's *never*: humans still judge sampled cases, contest their own\nrepresentation and contribute what the system missed. The intended saving is from compulsory\nitem-by-item housekeeping. It is not the elimination of human judgment or of the right to object.\n\n**The operational form** (2026-09-29): sample sizes for a stated bound, the three kinds of truth a\nmicrotask can have (checkable, consensus, contested), twelve ways a proof misleads, and abstention as\nwhat makes a guarantee possible, in [proving-a-pass-reliable.md](proving-a-pass-reliable.md).\n\n---\n\n## 4. What keeps it honest\n\n**Confession has to pay.** A pass scored only on how often it writes something will write something.\nThe candidate rule from [reflection-and-the-graph.md](reflection-and-the-graph.md) § 4 — a confessed\n*does not fit* must strictly beat a wrong nearest fit — is a precondition here rather than a nicety,\nbecause an autonomous tier rewards throughput by construction. The measured precedent is exact: the\nscheme classifier's confession value fired **0 of 3,666 times** beside a costless shrug, and fired\nthe moment the shrug was removed.\n\n**Demotion must be as automatic as promotion**, and must trigger on drift rather than on someone\nnoticing. Every taxonomy breaks on the next register, so a pass calibrated on one register is not\ncalibrated on the next — which means the drift period is set by *corpus change*, not by the calendar.\n\n**Nothing here loosens propose-never-assert on contested ground.** The passes eligible for the\nautonomous tier are the ones whose output gives a reader **more** places to disagree, not fewer —\nthe discriminator already proposed. A terminus reading, a merge of two value claims, a synthesis:\nstill proposals, however well they calibrate.\n\n**And a watermark is not a verdict.** Recording that a pass looked and found nothing says nothing\nabout whether there was anything to find. Coverage measures attention, never correctness. High\ncoverage with near-zero confessions is the ossification signal, not the completion signal.\n\n**Reversal reaches dependent work.** Suppose a machine-created support edge informs a later split\nand a synthesis. Superseding the edge corrects the graph locally; it does not establish that those\nlater outputs remain justified. A write therefore needs lineage connecting its judgment, graph\neffect and downstream uses. Reversal marks dependent machine judgments outdated and queues their\nreconsideration. Human-authored or human-confirmed work remains intact, with the changed basis\nvisible rather than silently rewritten. Demoting a pass limits future writes; it also identifies\nthe affected historical cohort for audit, without assuming every earlier output was wrong.\n\n**Completion and application are separate facts.** A successful model call is not yet a successful\ngraph update, and a saved output is not yet an output any consumer uses (§ 2b). Record the result\nbefore applying it, make application idempotent, and record which effects were applied, held as\nproposals or deliberately unused. If the input changes while the model is reasoning, preserve the\nanswer against its original inputs rather than stamping the new state as examined. Retries can\nthen resume delivery without minting duplicates or paying for the same judgment again.\n\nThe philosophical boundary remains the one in [earning-the-right-to-write.md](earning-the-right-to-write.md):\naddressability is an eligibility gate, not a quantity to maximize. Autonomous work earns its place\nby making distinctions easier to inspect while preserving context and attribution. A graph can be\nfully processed under its current machinery and still omit a position, misread an author or fail\nto help a reader inhabit another perspective. Operational completion cannot stand in for epistemic\nclosure or for the attunement pole's work.\n\n---\n\n## 5. What it costs, honestly\n\n**Re-sweeping is not free.** Invalidating a watermark version across 1,982 substantive claims means\n1,982 model calls for a per-claim pass. At the Claude backend's measured pace that is hours and real\nmoney, and the Gemini key has been on free tier since 2026-08-08. So the version bump must **queue**\nrather than run, drain under a spend gate, and be interruptible — which is the daemon design space's\nexisting spend-gate precondition, arriving with a concrete bill attached.\n\n**It adds a schema commitment**, and by the ontology sorting test that commitment belongs in the\nontology rather than the graph: two users cannot coherently disagree about whether a pass ran.\n\n**The failure mode to watch is coverage as a target.** Once coverage is visible it will be tempting\nto drive it to 100%, and a pass that must touch everything will touch things it should have skipped.\nCoverage is a diagnostic; the dials proposed in [drowning-in-claims.md](drowning-in-claims.md) belong\nbeside it, not under it.\n\n---\n\n## 5b. Can you know WHERE a re-sweep would change something, before paying for it?\n\nFounder question, 2026-09-22: *\"is there not a way to reliably accurately avoid having to spend\nthousands of model calls in cases where it is in actuality unneeded/wasted money since it would not\nresult in any change? Can one know where there would be a change before re-sweeping?\"*\n\n**Short answer: unchanged dependencies can justify reuse; predicting whether a changed basis would\nproduce a different judgment remains uncertain.** Large savings are plausible but unmeasured here.\nThe earlier assertion of *one to two orders of magnitude* was not supported by a Deliberus trial.\nEven *would this change?* is only useful as a cheaper question if its cost and missed-change rate\nbeat the judgment it screens for. Five candidate levers follow, not an established ranking;\n**none of this selective re-sweep machinery is built.**\n\n**1. Dependency-gating — bookkeeping, not prediction.** The proposed watermark (§ 3b) stops a pass\nre-asking what it has answered under the current version and unchanged inputs. Prompt version alone\nis insufficient. This saves repeated work without claiming that the stored answer is correct.\n\n**2. Deterministic preconditions, distinguished from retrieval heuristics.** An existing-edge audit\nneeds an edge to audit; checking that costs no model call. But a similarity floor is not a necessary\ncondition for conceptual relevance, and requiring an indexed term would reinstate the vocabulary\nblindness § 3c is meant to remove. Such screens may prioritize work, but their exclusions remain\nunaudited candidates rather than proven no-ops. The current candidate net already combines cosine,\nconcept and structural routes (`deliberus/extraction/auto_connect.py`). **For a prompt change, ask whether it\nchanges eligibility or only the judgment.** Reuse the candidate set only where its own dependencies\nremain valid; measure its size rather than presuming it is a small fraction of the corpus.\n\n**3. Sample first, then decide — the cheapest real answer, and it needs nothing new.** Run the new\nprompt against a sample and compare it with the stored verdict. For forty independent,\nrepresentative random cases, zero disagreements gives a one-sided 95% binomial upper bound of\nabout 7.2% (`1 - 0.05**(1/40)`). That can still permit consequential errors; it is not by itself a\nreason to decline a sweep. Stratified or source-clustered sampling needs uncertainty estimates\nappropriate to that design. And a changed answer is not automatically a better answer: estimate\nimprovement, harm and cost as well as the flip rate.\n\n**Stratum differences guide the next allocation of work; they do not prove other strata unchanged.**\nIf observed flips cluster in one claim kind, investigate that region first while retaining a random\naudit outside it. The parts review and sameness sitting supply a starting format for this experiment,\nnot an already validated decision rule for when to stop.\n\n**4. Ask the cheap question instead of the expensive one.** *Would a better prompt plausibly change\nyour answer here?* is a binary about stability, not a classification, so a small fast model can ask\nit across the whole corpus for a fraction of what the judgment costs, and the large model judges\nonly what it flags. **Proposed, unmeasured** — the screen's own precision is exactly the thing\nnobody here has tested. Its recall matters as much as its precision: a screen that misses changed\ncases makes the gap invisible if screened-out material is counted as examined.\n\n**5. The connection the corpus already owns and has never used.** From the judge-fragility read\n([fragile-checkers-and-the-verification-bottleneck.md](fragile-checkers-and-the-verification-bottleneck.md)):\nthe reviewed study reports jury majority strength as a useful predictor of **changes under\nconversational pressure**. That motivates testing cross-family disagreement as a prioritization\nsignal here. It does not establish that a two-family jury predicts the effects of a deliberate\nprompt revision, nor that agreement licenses skipping a case. Models can share a mistaken frame.\nStore disagreement with the models, inputs and versions that produced it; it is not an immutable\ninstability index. Test whether it predicts useful corrections on this corpus, alongside the\nunscreened audit, before allowing it to govern re-sweep spending.\n\n**Two limits that must ride with any of this.**\n\n- **You cannot screen for what you did not think to stratify on.** The change that lands in a region\n  no sample covered is coherent absence wearing cost control as a disguise. The sample bounds what\n  it measured and says nothing about the rest.\n- **⚠ Goodhart moves up a level.** Re-sweep only where change is predicted and the coverage figures\n  start describing the predictor rather than the corpus — a pass looks well-covered precisely\n  because the screen decided it was fine. The defence is the same as everywhere else here: an\n  occasional unscreened random sweep, small, whose only job is to measure the screen.\n\n**So the shape to build, when this is ruled**: a version bump **queues** rather than runs (§ 5),\ndraining a sample first; the sample reports an estimated yield with a per-stratum breakdown; and the\nfull sweep is then an explicit decision against a stated bill rather than an automatic consequence\nof editing a prompt. Never automatic in either direction — automatic sweeping burns money, and\nautomatic skipping hides the gap.\n\n\n## 6. What to build first, if this is ruled\n\n*Filed for ruling 2026-09-26 as ledger row R8 (§ Arc R, bundle IV of\n[session26-open-rulings.md](session26-open-rulings.md)), together with the rows on what\n\"high confidence\" must mean before a pass is automated (R12) and on pairing automation with the\ntriage feed (R13).*\n\nOrdered by ratio of measured gap to cost, and all of it sequenced **after the open reviews**.\n\n**Implementation check, 2026-09-24:** `deliberus/embedding_debt.py` defines which substantive claims\nlack embeddings, and `scripts/backfill_embeddings.py` drains that debt in resumable batches.\nCommit `35666f7` records the September 22 backfill reaching 100% at that time. The implementation\nuses a sweeper deliberately, to keep the shared embedder off the claim-creation critical path.\nNo automatic reconciliation loop is wired to this debt module in the repository. Its predicate\nchecks for a missing vector, not a stale vector after text or model changes. **The debt definition\nand operator tool exist; continuous enforcement and dependency-aware freshness remain proposed.**\n\n**A second debt defined the same way, 2026-10-05:** `deliberus/title_debt.py`. A short title is\nwhat a map shows for a claim, and only extraction asked a model for one. Every other step that\nmakes a claim (a split, added evidence, an answer, a definition, a reported claim) wrote a slice\nof the claim's opening words, or the name of who is reported, in its place, and the title job\nlooked only for claims with no title at all. On the live graph 59 claims had kept such a slice,\n53 reported claims were titled with a party's name and 3 definitions with a label cut mid-word;\nthe parts of one split claim share their opening, so sibling boxes on a map read the same. Now a\nstep without a headline writes whole opening words and marks them as a fragment, a marked\nfragment on a claim that is not scaffolding is a headline owed, the title job\n(`POST /claims/generate-titles`) pays what is owed and records which model wrote it, and\n`scripts/graph_facts.py` prints the count. As with embeddings, nothing runs the job by itself.\n\n1. **Complete the smallest standing-work loop around embedding debt.** A bounded reconciler finds\n   obligations regardless of entry path; a durable queue survives restarts; workers respect the\n   shared embedder's capacity; failed work stays visible and retryable. Text/model revisions make\n   an existing vector outdated. This establishes the operating machinery on a task with a clear\n   input dependency before entrusting it with interpretive writes.\n2. **The judgment ledger and the coverage view it makes possible.** Record dependencies, outcomes\n   and application status (§§ 3b and 4). Report eligible work, examined work, outdated work, failures\n   and exclusions separately. The bookkeeping itself needs no model calls; choosing useful\n   dependency boundaries still requires design.\n3. **One interpretive pass re-expressed as standing work.** The concept layer is the natural\n   candidate, because its 24.3% is the worst real coverage number and because its recall fix (§ 3c)\n   is already designed and unbuilt.\n4. **The calibration protocol generalised** from the parts review and the sameness sitting into\n   scoped grants with continuing audits. Introduce the interpretive pass under the authority it\n   has actually earned; its reconciliation machinery is not permission to write autonomously.\n\n**Proposed 2026-10-06 (ledger Z1, unruled): item 2 before item 1.** A lost embedding can be worked\nout again. A model's judgment cannot, so each one written without its record has lost its origin\nfor good. Item 1 goes first for a reason about machinery, and the record is bookkeeping with no\nmodel call in it, so the two reasons do not conflict. The smallest version, and what it is owed\nbefore: [what-a-record-linkage-project-teaches-deliberus.md](what-a-record-linkage-project-teaches-deliberus.md) § 3.\nHow it is stored without weighing on the graph: [storing-the-record-of-machine-judgments.md](storing-the-record-of-machine-judgments.md) (ledger Z11 to Z13).\n\nThe proof of the first loop is concrete: a claim created through an unusual path is found; a restart\nloses no obligation; a retry creates no duplicate effect; an edited input cannot receive a freshness\nstamp from an older in-flight result; an unavailable service leaves visible debt. For interpretive\nwork, add a reversal that marks dependent machine judgments for reconsideration while preserving\nhuman work. These are proposed acceptance checks, not claims that those capabilities already exist.\n\n---\n\n## Cross-references\n\n`deliberus/extraction/contested_concepts.py` (the pass that prompted this) · `deliberus/keeper.py` ·\n[what-a-record-linkage-project-teaches-deliberus.md](what-a-record-linkage-project-teaches-deliberus.md) § 3 (2026-10-06: why the record of § 3b should be built first) ·\n`deliberus/graph/linker.py` (`embed_and_store_claim`, seven callers) ·\n[graph-daemons-design-space.md](graph-daemons-design-space.md) ·\n[earning-the-right-to-write.md](earning-the-right-to-write.md) ·\n[core-periphery-and-the-concept-layer.md](core-periphery-and-the-concept-layer.md) § 5b ·\n[the-residual-error-taxonomy.md](the-residual-error-taxonomy.md) (class 5, dead instruments believed\nalive — § 3b is its bookkeeping answer) ·\n[soft-canonical-clustering-and-reversible-merge-semantics.md](soft-canonical-clustering-and-reversible-merge-semantics.md)\n(the sitting protocol § 3d generalises) ·\n[pass-quality-and-the-choice-of-model.md](pass-quality-and-the-choice-of-model.md) (2026-10-05: 3 of\nthe 25 places that ask a model record which model answered, and the live site's free-tier route\nchanges model silently, so § 3b's record has a measured gap to close; § 5e there is a proposed form\nfor § 3d's calibration that survives a change of model) ·\n[what-a-link-rests-on.md](what-a-link-rests-on.md) (2026-10-07: a third debt proposed in this pattern, a statement of what each machine-drawn link between texts would rest on; and the record of § 3b used to rebuild a trial that its own time limit had stopped) ·\n[the-evals-loop-and-our-machine-passes.md](the-evals-loop-and-our-machine-passes.md) (2026-10-05: how practitioners check machine output, read against every pass here.\nIt supplies the rhythm § 3d leaves open, a short recurring sitting with some items always drawn at\nrandom, and finds that the reading of real output which their method starts from was never done here\nby a person)\n"}