Repository navigation
Delete the orphan probe-doc binds and their stranded exemptions; bind the one consumed receipt, delete the one unconsumed transcription - #9186
Conversation
…arrier The three g1-cited-symbol discriminating controls were modelled as DOCUMENTS. They lived in gunbc.doc_graph_roots as HandAuthoredDocBind rows homed at docs/probes/g1-cited-symbol-control-*.md with PlanHasNoRetirement, and document production carried a slug-matched predicate to subtract them again. The 2026-08-24 measurement bankruptcy (d3bebd0) deleted docs/probes wholesale, so from that day three rows declared a home that does not exist, kept alive by the exemption written to work around them. They are machine discriminators for v2.lens.cited_symbol_resolution, so that is where they now live, as a typed control carrier with one variant per refusal arm (operator ruling 2026-08-25). The new carrier lands before the old rows leave, in one change: no dual-authority interval, and the evidence executes through the new home before the old one disappears. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… the only inhabitant of Every remaining `home: ProbeDoc` bind in gunbc.doc_graph_roots named a file under docs/probes that the 2026-08-24 measurement bankruptcy (d3bebd0) deleted. Not most of them -- all sixteen, with no survivor. A bind whose document does not exist is not a root. build_doc_graph_report admits an extra root only if it is present in the doc universe and counts what it admitted; doc_graph_registered_plan_roots_all_admitted pins admitted == passed. So these rows made that witness RED, and it was invisible only because doc_reachability_witness_test declares ReadsLiveTree and the floor declines it before the fold -- a live red held out of view by the decline mechanism. The rows are deleted, and the DocHome axis is deleted with them: with ProbeDoc uninhabitable, the variant is dead scaffolding that would let the next author bind a document into a bankrupted directory. Keeping it as the sole surviving variant was not the alternative, since a single-variant coproduct is a type alias whose variant name is never exported. No document is restored. No cited .dag work is deleted. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…leted probe bind The outside-index roster is a literal list beside the bind population rather than a projection of it, so deleting the claude paired-entitlement probe bind left two exemption rows naming references no bind carries -- and the partition identity that proves no authored work falls out of every bucket went red by exactly two. The red is the mechanism working; the repair is to delete the exemptions with the population they exempted. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…nsumed evidence The earlier commits on this branch deleted the DocHome coproduct along with the sixteen orphan ProbeDoc binds, on the argument that a variant nothing can inhabit is dead scaffolding. That argument was sound about the population as it stood and wrong about the population as it is: the bankruptcy principle is that UNCONSUMED TRANSCRIPTION disappears while CONSUMED EVIDENCE stays attached to its consumer, and the directory a document sits in is not the authority on which of the two it is -- the exact consumer relation is. docs/probes/leading_minus_continuation_silently_truncates_2026-08-23.md is cited by extdeps.cpu_attachment.lotes_azifa072 as its parser-defect receipt (measured: exactly one consumer, tree-wide). It is being re-bound in a follow-up. Deleting the axis here and restoring it one change later is work authored to be thrown away, and it would have put a permanence claim in the carrier note that was false before the week ended. The sixteen bind deletions and the two orphaned exemptions are unchanged; the red this PR closes is closed by those, not by the axis. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two documents survived the bankruptcy unbound, and their dispositions are opposite because the bankruptcy principle is not 'everything under docs/probes disappears' -- it is that unconsumed transcription disappears while consumed evidence stays attached to its consumer. The directory is not the authority on which one a file is; the exact consumer relation is. BOUND: leading_minus_continuation_silently_truncates_2026-08-23.md. Measured tree-wide, it has exactly one consumer -- extdeps.cpu_attachment.lotes_azifa072 cites it as 'Receipt and reduced cases' for the leading-minus continuation truncation its arithmetic-consistency function tripped over. The bind names that function, and carries a real retirement condition rather than PlanHasNoRetirement: a Markdown file is not the permanent terminal form of a parser guarantee. DELETED: heads_reading_of_the_grammar_2026-08-24.md. No citation, no bind, no executing consumer, authored after the cut. Minting a bind for it purely to green the orphan wall would fabricate a consumer -- the same fabrication as deleting the cited one, pointed the other way. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…grows by review 55729 caught the half of the rename that stops at the file boundary: the FrozenPathDeferral roster for the long cited-symbol witness file still named cited_symbol_planted_doc_graph_controls_all_refuse and cited_symbol_enrolled_population_refusal_proves_gate_not_vacuous, neither of which exists after this PR -- a StaleFrozenPathDeferral, which is the DESIGN section 3 stale-citation class living inside the very roster whose identity join exists to catch it. The prose in ci_layer_roots naming the old function in its --functions CSV is fixed with it. DECLARED RATHER THAN SLIPPED IN: this grows the frozen roster from 16 rows to 18. The module's own note says the population is frozen as-is and that a new witness under an offline home should not be authored there at all. These two are not new coverage arriving in the long lane -- they are the identity join and the arm agreement that together replace the discriminating power of the row being renamed, in the file that already owns it. Splitting them across homes would put the cheap structural half behind the lens's whole decl_facts import closure. If the operator would rather see the identity join in the fast lane, it moves without touching the arm check. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
review 55732: the WitnessExclusionRow reason in gunbc.ci_layer_roots prints a claim_batch recipe whose --functions CSV still named both renamed witnesses, so an operator copy-pasting it hit unknown-function refusals on two rows. The freeze roster was updated in lockstep and this recipe was not -- one carrier of the same fact repaired, another left stale, which is the DESIGN section 3 class this PR is otherwise about. The recipe now lists all eighteen enrolled witnesses, matching the freeze roster exactly, and the prose count moves from sixteen to eighteen with it. My earlier commit touched only the timing parenthetical in this same string and missed the CSV a few hundred characters later in the same line -- a reminder that a long single-line prose row hides its own contents from the person editing it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
review 55731: this PR takes the outside-index roster from four rows to two, and three sentences in gunbc.doc_graph_roots plus one in the lens still asserted four -- the lens whose subject is stale citations landing with a stale numeric citation in its own prose. The doc_graph_roots sentences are corrected to two. The lens note is reworded to name the ROSTER as the authority on the count rather than transcribing a number at all, because the number is exactly the thing that just rotted. The one surviving 'four' is the deliberate historical clause recording what the population was until today. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Merge-order constraint — this PR is ready but is NOT the next merge. It is the third member of an open chain, ancestry-verified against current remote heads ( Land bottom-up: #9181, then #9183, then this one. Each is independently landable in that order and no pair must go together. Incremental deltas against current main ( Expect this between merges, as mechanics rather than a defect: squash-merging #9181 rewrites its content under a new sha, so #9183 may flip Recorded on the PR rather than only in chat, since this is where someone about to merge will look. — sent from swift-badger-524 |
…23-probe-evidence-bind # Conflicts: # dag/gunbc/doc_graph_roots.dag # src/v2/lens/cited_symbol_resolution.dag
Consolidated PR (operator request). #9183 is closed into this one; #9181 has merged. This is the whole remaining lane in a single change, based on current main — there is no merge order left to get wrong.
What this does
1 — Sixteen orphan probe-doc binds deleted. Every remaining
home: ProbeDocrow ingunbc.doc_graph_rootsnamed a file underdocs/probes/that the 2026-08-24 measurement bankruptcy (d3bebd0072) deleted. Not most of them — all sixteen, with no survivor, each path checked individually against the tree rather than sampled.A bind whose document does not exist is not a root:
build_doc_graph_reportadmits an extra root only when it is present in the doc universe and counts what it admitted, anddoc_graph_registered_plan_roots_all_admittedpinsadmitted == passed. So these rows made that witness red on main, invisible only becausedoc_reachability_witness_testdeclaresReadsLiveTreeand the floor declines it before the fold — a live red held out of view by the decline mechanism.The population is closed, by identity: of 172 hand-authored binds on main, 19 named a missing file and all 19 were
ProbeDoc— zero of the 153PlanDocbinds are broken. #9181 took three (the g1 controls, rehomed to a typed carrier); this takes the other sixteen. That is the whole bind-side population, not the visible part of it.2 — Two
OutsideIndexWorkexemptions deleted with them. Found by execution, not by reading: deleting theclaude_paired_entitlement_probe/READMEbind orphaned two of the four exemption rows — both named that probe's witnesses and that bind was their only carrier — and the partition witness went red by exactly two. The roster is a literal list beside the bind population rather than a projection of it, so the two can drift; the exact-sum identity is what refuses to let them drift silently. A count check would not have caught it.3 — One document bound, one deleted. Two
docs/probesfiles survived the bankruptcy unbound. Their dispositions are opposite, and the rule is not "everything underdocs/probesdisappears":The directory is not the authority on which one a file is — the exact consumer relation is.
leading_minus_continuation_silently_truncates_2026-08-23.md. Measured tree-wide: exactly one consumer,dag/extdeps/cpu_attachment/lotes_azifa072.dag, citing it as "Receipt and reduced cases" for a real parser defect (100 \n - 1evaluating to-1while+and*continue correctly). The bind names the function that tripped over it,azifa072_depopulation_is_arithmetically_consistent.heads_reading_of_the_grammar_2026-08-24.md. No citation, no bind, no executing consumer, authored after the cut. Minting a bind purely to green the orphan wall would fabricate a consumer — the same fabrication as deleting the cited one, pointed the other way.The bind ESTABLISHES the relation; it does not record an existing one. The citation in
lotes_azifa072.dagis a//source annotation, and per §4c noAcceptedprogram can read one. So there is no machine-visible consumer relation today — there is prose. That argues for the bind; but calling it "recording an existing dependency" would invite the reader to assume something already checked it, which is the authority-substitution shape.Not
PlanHasNoRetirement. The bind retires when the reduced parser cases are held by an executing regression carrier, the production citation is repointed to it, and no other evidence consumer names the document. Evidence being load-bearing today is not grounds for making a Markdown file the permanent terminal form of a parser guarantee — the shape #9181 just finished removing from the g1 controls.Verified
Both arms run directly — single-entry
claim_batchagainstdag/test/claim/doc_reachability_witness_test.dag, which reaches the witness regardless of itsReadsLiveTreedecline. This witness had been declined so long that nobody had watched it fail, and a green from an instrument never seen red on its subject proves nothing.f84c91b7747dedba3a35doc_graph_registered_plan_roots_all_admittedhand_authored_doc_binds_all_carry_a_retirementdoc_graph_works_refs_carry_symbolsdoc_graph_bind_identities_uniquedoc_graph_hand_authored_slugs_not_registeredcited_symbol_production_population_loses_nothingdoc_graph_has_no_orphan_docsCompile, on the merged head:
dag/gunbc/doc_graph_roots.dagsrc/v2/lens/cited_symbol_resolution.dagdag/gunbc/witness_deferral_freeze.dagThe variation is the evidence. An earlier revision of this body reported
0 blockingfor a compile that never ran: it passed--output-dir /tmp/o, which failed withNot a directory (os error 20), so my grep for ablockingline matched nothing and I read the silence as clean — an absent measurement and a clean one rendering identically. Three entries with different closures produced byte-identical nothing, and that is the tell. If you re-run this, check that the advisory numbers differ before you read the blocking column.The red arm was re-taken on current main after main advanced 20 commits, and is identical line-for-line to the original — because the population it discriminates against is unchanged (172/19/19/0). The merge resolution was verified by execution too, not by reading the file: main's 20 commits include another lane's edit to
witness_deferral_freeze.dag, the same roster this lane touched.What this does NOT fix
doc_graph_has_no_orphan_docsis red before and after. I predicted it would go green and that prediction was wrong: the cause is not the two probe files but 33 unbound documents — 8 underdocs/briefs/, 24 underdocs/plans/(incl.measurements/andreceipts/), 1 underdocs/extdeps/. I had measured thedocs/probessubdirectory and let it stand as the cause of a witness whose subject is the wholedocs/tree. This PR takes the orphan population 35 → 33; closing the rest is a program across many lanes.doc_graph_has_no_dangling_linksis likewise pre-existing (18 dangling.mdlinks, ~14 into deleted probe files) — the prose half of the same residue, not widened in here.Conflict resolution
Resolved hunk-by-hunk, not with
git checkout --ours: main carried non-conflicting edits to both files that a wholesale side-take would have silently discarded. All four hunks were ours-correct — the deletedclaude_paired_entitlementbind against its replacement in the same slot, and three prose rows where main still held pre-deletion counts.