Repository navigation
Thirteen identities DeclinedLiveTree hides: all thirteen reproduce on main, eleven are real defects and one pair is a wall that never held - #9171
Merged
Conversation
… main, eleven are real defects and one pair is a wall that never held Classifies the thirteen witness identities routed from royal-cat-509's run 32794539384 -- the only tree where the required floor's DeclinedLiveTree arm is deleted, so the only tree where these have ever executed. Re-measured on main with claim_batch (--hermetic and --wet) rather than read: ALL THIRTEEN REPRODUCE. None is branch content of the cut; every one is a main-side fact that the decline arm is hiding today. Eleven real defects, four subjects: - six doc-graph rows, one root cause: the 2026-08-24 measurement bankruptcy deleted docs/probes/ whole and left gunbc.doc_graph_roots naming 19 of the deleted files (228 declared roots, 209 admitted), 16 dangling links, 35 orphans - two extdeps modules with no external-authority anchor - 21 unrostered non-fold residue sites and 4 stale roster rows - two compiler-behaviour refusals, staged by execution: parse_tree_to_emitted_node_no_matching_row, and infer_grounding_not_derived - one undeclared v1 test module added by #9089 that reds the v1-test-migration closing contract One wrong witness (two identities): lens_module_gate's redundancy leg refuses 42 of 58 enrolled lenses because it keys on two coarse enums; its first refusal is v2.lens.complexity against itself. unenrolled and unjustified both measure 0. Nothing here is enrolled as an expected red: the floor does not run these rows at all, and asserting otherwise is the authority substitution #8865 made. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…, exemption rows are forbidden, and the permanent-evidence deletion is a landed 4b(4) violation rather than a neutral choice Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…nd bare top-level Disposition dropped std.disposition's binding pool-wide, taking its Scaffold variant with it Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The headline, first, because it is worth more than the other twelve combined
test_migration_debt_test.retained_rust_kernel_wall_holds_against_live_treeis bound bygunbc.roadmap_authorityas the closing contract for roadmap nodev1-test-migration. Its own note calls the identity join "a construction wall (an undeclared module or a stale row is unwritable-and-green)".src/v1/tests/src/anonymous_record_struct_resolution_test.rswas added to the v1 kernel by #9089, eight days later, with no floor-witness stem covering it and no row intest.retirement.model.every_discovered_module_is_retained()refuses. The wall did not fire, because the wall does not run.That is the entire thesis of #9106 — that
DeclinedLiveTreehides live guarantees — demonstrated on a specimen where the guarantee was load-bearing enough to be a roadmap node's closing contract.And the same shape recurs across three separate cuts. The 2026-08-15 floor cut left two stale
non_fold_residueroster rows namingsrc/v2/workflow/ci_floor_plan.dag. The 2026-08-24 measurement bankruptcy left 19 doc roots and 12 links naming deleteddocs/probes/files. Three cuts, each leaving rows pointing at what it removed, none detected — because the thing that would detect them does not run.What was asked
Classify the thirteen witness identities routed from royal-cat-509's run
32794539384(the branch that deletesDeclinedLiveTreeat the floor root — the only tree in which these have ever executed), establish which are real, and repair or route each.Method
Re-measured on main, not read.
claim_batch --hermetic(the floor's own mode) per identity, then each failing assertion decomposed into sub-claims run the same way, plus--wetA/B where a mode difference was plausible.All thirteen reproduce. No row is not reproducible, which is the load-bearing result: every one is a main-side fact, none is branch content of the cut.
Verdicts
test.claim.doc_reachability_witnessorphan / dangling / roots-all-admitteddocs/probes/files the 2026-08-24 measurement bankruptcy deletedv2.test.lens_doc_reachability.doc_reachability_testorphan / dangling / is-cleandocs/plans/ci-selection-vs-scheduling.mdthat does not exist, one of those fromROADMAP.mditself), 35 orphansmandatory_tag.corpus_scan_witness_test.corpus_live_clean_tree_wall_holdsAbsent—extdeps.cpu_attachment.lotes_azifa072,extdeps.languages.rust.capabilitiesnon_fold_residue_test.non_fold_residue_no_unrostered_or_staleunrostered=21 stale=4 live=186; two stale rows namesrc/v2/workflow/ci_floor_plan.dag, deleted by the 2026-08-15 floor cutlens_module_gate_witnesslens_module_gate_holds_live/question_zero_verdict_live_holdsunenrolled == 0passes,unjustified == 0passes,redundant_blocking == 0fails at 42 of 58emit_ingest_grammar_relation_round_trip.same_grammar_parse_ingest_bridge_holdsparse_tree_to_emitted_noderefusesparse_tree_to_emitted_node_no_matching_rowself_host_candidate_generation.candidate_generation_translate_self_emit_dag_add_slice_holdsinferaccepts;translaterefusesinfer_grounding_not_derived— identical hermetic and wettest_migration_debt_test.retained_rust_kernel_wall_holds_against_live_treeThe one wrong witness, and why adding exemption rows is forbidden
lens_module_gatekeys redundancy on the pair(verdict_authority, remedy)— two coarse closed enums — over 58 enrolled lenses. Two lenses sharing "reports a LensVerdict" and "the remedy is a report" is the common case, not evidence that one re-coined the other. The exemption roster carries two rows against a population of 42, and its first refusal isv2.lens.complexityagainst itself — two lens ids bound to one module path, which no exemption row could ever cover.That self-refusal is the proof, not the illustration: a check whose first refusal is structurally uncoverable by its own escape mechanism is not under-exempted, it is wrong. Growing the residue roster toward 42 would be the one-sided ratchet over hand-authored rows DESIGN §5's oracle ruling rules out, and it would silence a criterion nobody has established is right. The repair is at the criterion, and the carrier already names it:
lens_module_gate_surface_table_dissolve_onsays the central table dissolves when each lens declares its invariant surface on its own module. Routed there.A §4b(4) violation that already landed
Three of the 19 dead binds are the
g1-cited-symbol-control-*rows, whichgunbc.doc_graph_rootsdeclaresPlanHasNoRetirement— permanent discriminating evidence, kept precisely so a climb could not delete it. §4b(4) is explicit that a climb dissolves the redundant lower-rung production machinery and never the evidence, because deleting the evidence recreates specification-without-execution one rung up. The bankruptcy sweep deleted it anyway.The two available closures are not peers: deleting the three binds finishes a deletion §4b(4) forbids and makes it invisible, while restoring the three files from history reverses part of an operator cut. Only the second is reversible by anyone other than the operator, which is why the question is theirs. Carried as
NeedsOperatorRulingand escalated; not acted on here in either direction.What this change contains
A typed carrier (
gunbc.declined_live_tree_defect_classification) with one row per identity — verdict, the evidence that was executed to reach it, and the route — and a witness that guards the carrier's structure.The witness declares
SubstrateInputsOnly, truthfully, so it runs on the floor — unlike the thirteen rows it classifies. That asymmetry is deliberate and is the sharpest available statement of the gap: a classification carrier that executes while its subjects do not.Nothing is enrolled as an expected red. The floor does not run these rows at all, so an enrolment would assert an observed red nobody observed — the authority substitution #8865 made. The rows are unguarded by construction, and the only thing that changes that is the
DeclinedLiveTreedeletion. #9106 is untouched.Repairs are deliberately routed rather than taken: eleven of the thirteen are owned by lanes that are not this one, and repairing another lane's authority from inside a classification pass mints a second authority for one fact that collides the moment the owner touches it.
🤖 Generated with Claude Code