Skip to content

Delete the orphan probe-doc binds and their stranded exemptions; bind the one consumed receipt, delete the one unconsumed transcription - #9186

Merged
briansrls merged 13 commits into
mainfrom
session/clever-bear-323-probe-evidence-bind
Aug 26, 2026
Merged

briansrls merged 13 commits into
mainfrom
session/clever-bear-323-probe-evidence-bind

Conversation

@briansrls

@briansrls briansrls commented Aug 25, 2026 •

Copy link
Copy Markdown
Contributor

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: ProbeDoc row in gunbc.doc_graph_roots named a file under docs/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_report admits an extra root only when it is present in the doc universe and counts what it admitted, and doc_graph_registered_plan_roots_all_admitted pins admitted == passed. So these rows made that witness red on main, 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 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 153 PlanDoc binds 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 OutsideIndexWork exemptions deleted with them. Found by execution, not by reading: deleting the claude_paired_entitlement_probe/README bind 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/probes files survived the bankruptcy unbound. Their dispositions are opposite, and the rule is not "everything under docs/probes disappears":

unconsumed transcription disappears; 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: exactly one consumer, dag/extdeps/cpu_attachment/lotes_azifa072.dag, citing it as "Receipt and reduced cases" for a real parser defect (100 \n - 1 evaluating to -1 while + and * continue correctly). The bind names the function that tripped over it, azifa072_depopulation_is_arithmetically_consistent.
  • DELETED — 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.dag is a // source annotation, and per §4c no Accepted program 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_batch against dag/test/claim/doc_reachability_witness_test.dag, which reaches the witness regardless of its ReadsLiveTree decline. 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.

witness main f84c91b774 this branch 7dedba3a35
doc_graph_registered_plan_roots_all_admitted FAIL PASS
hand_authored_doc_binds_all_carry_a_retirement PASS PASS
doc_graph_works_refs_carry_symbols PASS PASS
doc_graph_bind_identities_unique PASS PASS
doc_graph_hand_authored_slugs_not_registered PASS PASS
cited_symbol_production_population_loses_nothing PASS PASS
doc_graph_has_no_orphan_docs FAIL FAIL (33 documents, not this PR's — see below)

Compile, on the merged head:

entry blocking advisory
dag/gunbc/doc_graph_roots.dag 0 133
src/v2/lens/cited_symbol_resolution.dag 0 172
dag/gunbc/witness_deferral_freeze.dag 0 22

The variation is the evidence. An earlier revision of this body reported 0 blocking for a compile that never ran: it passed --output-dir /tmp/o, which failed with Not a directory (os error 20), so my grep for a blocking line 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_docs is 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 under docs/briefs/, 24 under docs/plans/ (incl. measurements/ and receipts/), 1 under docs/extdeps/. I had measured the docs/probes subdirectory and let it stand as the cause of a witness whose subject is the whole docs/ tree. This PR takes the orphan population 35 → 33; closing the rest is a program across many lanes.

doc_graph_has_no_dangling_links is likewise pre-existing (18 dangling .md links, ~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 deleted claude_paired_entitlement bind against its replacement in the same slot, and three prose rows where main still held pre-deletion counts.

Brian Searls and others added 5 commits August 25, 2026 07:12
…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>
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review August 25, 2026 09:46
Brian Searls and others added 7 commits August 25, 2026 09:58
…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>
@gunbai-bot

gunbai-bot Bot commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

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 (git merge-base --is-ancestor, including the transitive relation):

#9181 (1e3278656f)  ->  #9183 (cc2c8dd649)  ->  #9186 (80ee2728c7)

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 (f84c91b774): #9181 = 7 files +162/−97 · #9183 = 2 files +3/−126 · #9186 = 2 files +8/−187. None squashes to empty — the smallest member is #9183's 126 deletions — so the chain should not be collapsed into fewer PRs. Each carries a separately measured claim with a different denominator (#9183 the red→green pair on all_admitted; #9186 the 35→33 orphan reduction, with its explicit statement that it does not green the wall), and one combined body would blur them.

Expect this between merges, as mechanics rather than a defect: squash-merging #9181 rewrites its content under a new sha, so #9183 may flip MERGEABLE → CONFLICTING the moment the parent lands, carrying duplicate-but-identical content. Re-check the mergeable flag between merges rather than assuming it survives; @clever-bear-323 resolves any child that flips with a merge from main, and it should not be force-resolved.

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
@gunbai-bot gunbai-bot Bot changed the title Rehome the three g1-cited-symbol discriminating controls out of the bankrupted doc carrier, then delete the orphan binds atomically Delete the orphan probe-doc binds and their stranded exemptions; bind the one consumed receipt, delete the one unconsumed transcription Aug 25, 2026
@briansrls
briansrls merged commit 4fadbed into main Aug 26, 2026
1 check passed
@briansrls
briansrls deleted the session/clever-bear-323-probe-evidence-bind branch August 26, 2026 01:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant