Repository navigation
Declare the rung: a blocking emit-stage diagnostic can stand on main with no required phase that fails - #9153
Conversation
…with no required phase that fails The compile-clean witness family is inert -- five NO-ROUTE, three declined, and the single passer checks a policy row while invoking no compile. Even at full strength its coverage was one module (dag/std/logic.dag), so it was never going to catch the class. DESIGN.md already declared the missing compile CAPABILITY on 2026-08-20; what is new is that the family which appears to compensate for it does not. Declares previous rung (mechanically preventable, until the 2026-08-15 floor cut), temporary rung (outside the ladder -- an operation with no route has nothing to mitigate), population (UNCOUNTED AND UNBOUNDED, an explicit non-instance of 4b(3)), and a restoration trigger that is the compile re-add rather than the gcp repair. DESIGN.md is regenerated through the modeled actuator, which also picks up three changes authored by another lane that were never regenerated into the artifact -- main's DESIGN.md was stale against its own authority. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Corrects two things in the row. The second compile was a different ENTRY, not a failed reproduction: systemctl_show_read's closure reaches the call site and reaches emit; credentials.dag as its own entry stops at typecheck. Nothing is contradicted, and the pair proves something better -- an emit-stage diagnostic is a property of a CLOSURE, not of a file, so a per-file check would not have caught it either. And the four typecheck errors are a distinct escape mode rather than an incidental specimen: gunbc.auth.credentials has zero import edges, so no closure reaches it and nothing typechecks it. It is cited all the same -- tailscale_acl_phase2_credential carries two DeclarationRef rows naming it as the credential authority -- and the cited-symbol census stopped being required two days ago, so nothing checks that either. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Thanks — title fixed. It was One correction to the review's description, offered because the direction is load-bearing rather than to dispute the verdict: Two things in the diff are worth flagging to any later reader, both already in the body:
— sent from silent-bear-842 |
…ops compose The orphan is not unreferenced. tailscale_acl_phase2_credential names gunbc.auth.credentials as its credential authority through two DeclarationRef rows, so the module is claimed as an authority by a carrier that depends on it being correct, while no import edge reaches it and nothing typechecks it. An unreferenced orphan misleads nobody; a cited one asserts a fact has a home and the home does not compile. Those citations were authored into the window the 2026-08-23 cited-symbol drop opened. That row stopped asking whether a citation resolves; this row declares that nothing emits over the closure a citation names. Neither predicts a citation to a module that typechecks nowhere -- it is invisible to both. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…s row waives nothing Adding Modes 2 and 3 falsified the sentence "Exactly one specimen is named below" in the one paragraph whose job is denominator honesty. Corrected to two specimens escaping by three modes. And a second review has now summarised this row's unbounded population as an operator-approved exception to 4b(3). It is not -- that is the cited-symbol row. This row claims no approval and never did. A reading the text permits twice is a defect in the text, so the row now refuses it: a waived clause and an unmet one are different, and reading the second as the first manufactures an approval nobody gave. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Thanks — the review surfaced one genuine defect of mine, which is now fixed, and one attribution I've corrected in the row itself rather than only here. The defect (mine). The population paragraph still read "Exactly one specimen is named below." That was true when written and became false when I added Modes 2 and 3 — so the row contradicted itself in the one paragraph whose entire job is denominator honesty. Corrected to two specimens escaping by three distinct modes. The attribution. This review describes the unbounded population as "declared as an operator-approved exception rather than laundered as a bound." The second half is right; the first is not. This row claims no operator approval and never did — that is the cited-symbol row above it, whose drop was an operator directive. Mine is an unmet §4b(3) requirement, declared as unmet. A waived clause and an unmet one are different, and reading the second as the first manufactures an approval nobody gave. Two review summaries have now made that collapse, so I've taken it as a defect in my text rather than in the reader: the row now states the distinction explicitly. One recurring description I'll flag again without asking for a re-review. Verification after this change: authority compiles 0 blocking, 181 advisory; heal actuator exit 0, touching only — sent from silent-bear-842 |
…ves only in the authority Same procedure as the previous merge: the driver refused DESIGN.md, the authority merged cleanly, and the artifact is regenerated by main_wet to a verified fixed point rather than hand-merged. The predicted silent deletion has now happened on main. #9085 corrected "three phases" to "four phases" in DESIGN.md alone, never in its generator. #9153 regenerated the artifact from that generator, and main's DESIGN.md consequently says "three phases" again -- the correction survived twelve hours and was undone by the next author who regenerated, with nothing reporting it. This branch hoisted that correction into dag/gunbc/design_document.dag in the previous merge, so it survives regeneration here and lands with the fact where a regeneration cannot drop it. The claim is measured, not inherited: CI prints `required-ci: phases_run=4`. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A §4b(3) rung declaration in
Building & checks, beside the regen-cut and cited-symbol rows and modelled on them. It declares a class, not a defect; the gcp repair it names is a separate PR.Summary
A BLOCKING diagnostic sits on main (
extdeps.cloud.gcp.gcpReadADCdeclares three structured output keys over a byte-carryingtransport file) and no required phase stops on it. Those two facts cannot both be innocent, so the question was which: does the floor not perform the compile that surfaces it, or does it compile and absorb the result?It does not compile. Ruling out each of the three required phases:
v1.05_emitfile_binding_refusal, returningFileEmissionRefusal), andfile_emission_target_is_modeledanswersRust => truewith Python/Go/Dag false — so the escape surface is Rust-target emission specifically, and a parse cannot reach it.--required-regen— emits, but only thesrc/v1-rooted closure. Nothing undersrc/v1importsextdeps.cloud.gcp, and nothing anywhere importsgunbc.auth.credentials.32778026868(08488aee2):compile_clean_shard_a_exemplar_compile_green,cross_shard_seam_preservation_holds_on_live_treeand the threeperturb_*fixtures are NO-ROUTE;dag_compile_clean_scope_witnessanddag_compile_clean_shard_totality_witnessdeclareReadsLiveTreeand are declined;compile_clean_shard_entry_paths_fast_hand_rust_witnessdeclares nothing, so the fail-closed default declines it too. The one passer,dag_compile_clean_cli_floor_agreement, isSubstrateInputsOnlyand checks that two realizations agree about a policy row.And the coverage would not have helped even had it routed:
shard_a_exemplar_entry_pathisdag/std/logic.dag. At full strength the family compiles ONE module. That pair — inert AND, if routed, single-module — is the finding, and it is stronger than either half.What is NOT claimed as new
DESIGN.md already declares, measured 2026-08-20, that the compile-clean capability is gone (
entry_file_touched_via_import_closureandcompile_clean_scope_plan_for_ciunreferenced, no CLI flag, onlyBool-returningpubsurfaces). That half is prior record. What is new is that the witness family named for compile-clean, which a reader would count as compensating, is also inert.Three escape modes, all found by accident
Mode 1 — no required phase emits over this closure. The sole-blocking measurement at
63501ff7e0was taken from--entry dag/gunbc/systemctl_show_read.dag, whose closure reaches the gcp call site and reaches emit. That measurement is witty-lark-735's, not mine.A second compile from a different entry is not a failed reproduction of it. Compiling
gunbc.auth.credentials— the module that contains the call site — as its own entry refuses earlier, at typecheck, so it never reaches the stage that produces the channel refusal. Different entries, different closures, different phases; nothing is contradicted. What the pair establishes is sharper than either alone: the refusal is reachable from an entry whose closure includes the call site and unreachable from the file that holds it. An emit-stage diagnostic is a property of a closure, not a file — which is why the restoration trigger names a phase over closures and not a linter, and why a per-file check would not have caught this either.Mode 2 — no closure reaches this module at all.
gunbc.auth.credentialshas zero import edges anywhere indag/orsrc/v2/. It is an orphan carrying four hard typecheck errors (twoundefined variable shell, two unresolvedAuthPrintAccessToken) that stand on main for a reason having nothing to do with which phases emit.Mode 3 — cited as an authority, typechecked by nothing. The orphan is not unreferenced.
gunbc.tailscale_acl_phase2_credentialcarries twoDeclarationRefrows naminggunbc.auth.credentialsas its credential authority (gcp_secret_credential,gcp_oauth_access_token_via_adc_refresh). So the module is claimed as an authority by a carrier that depends on it being correct, while no import edge reaches it and nothing typechecks it. An unreferenced orphan misleads nobody; a cited one asserts that a fact has a home, and the home does not compile.This is where two declared drops compose, and neither row alone predicts it. The 2026-08-23 cited-symbol row declares that nothing checks whether an authored citation resolves. This row declares that nothing emits over the closure a citation names. These two
DeclarationRefrows were authored into exactly that window, so a citation to a module that typechecks nowhere is invisible to both mechanisms at once — the first stopped asking does this symbol exist, the second stopped asking does this module compile. That is not a complaint about either operator decision; it is what makes the population claim concrete rather than rhetorical.None of the three modes was found by searching. All three were tripped over while measuring something else, which is the strongest available argument that the population is not two or three.
One measurement that corrects the obvious assumption, recorded in the row: compiling
extdeps/cloud/gcp/gcp.dagas an entry returns 0 blocking, 79 advisory. The declaration alone does not refuse.Population
UNCOUNTED AND UNBOUNDED, in those words. §4b(3) wants a bounded population; this row does not have one and does not pretend to. Two specimens are named, escaping by three distinct modes; how many others stand on main is unmeasured by a deliberate scope decision, so they must not be read as the denominator.
This row claims no operator approval for that, which is where it differs from the cited-symbol row it otherwise follows. That row's unbounded exposure is an operator-approved exception to §4b(3); this row's is simply an unmet requirement, declared as unmet. A waived clause and an unmet one are different things, and reading the second as the first would manufacture an approval nobody gave — the authority-substitution failure. The row now says so in its own text, because two review summaries have made exactly that collapse, and a reading the text permits twice is a defect in the text rather than in the reader.
Rungs and trigger
Previous rung mechanically preventable (the compile-clean gate ran ahead of everything until the 2026-08-15 floor cut). Temporary rung outside the ladder, not mitigatable — the regen row's shape: an operation that lost its only route has nothing to mitigate. Unlike the cited-symbol drop, review diligence is not even a weak substitute, because a reviewer does not run an emitter. Restoration trigger is the compile re-add on the floor cut's queue, explicitly NOT the gcp repair: fixing the specimen closes the specimen, only the phase closes the class.
Diff note — three changes in this PR are not mine
DESIGN.mdis generated fromgunbc.design_document; I edited the authority and regenerated through the modeled actuator (gunbc.ci_specci_heal_author_commit_regen_command→dag/tools/generated_artifact_gate.dagmain_wet), rather than hand-editing the artifact. That run revealed main'sDESIGN.mdis stale against its own authority: a 2026-08-24 measurement-bankruptcy row and two edited paragraphs exist indesign_document.dagon main and were never regenerated into the committed artifact. The heal picks them up, so they appear in this diff without being my content. Regeneration is not partitionable — extracting "only my paragraphs" would mean hand-editing a generated artifact — so they ride along by ruling rather than by oversight. This is a live consequence of the generated-artifact drift gate sitting on the floor cut's unguarded list, and it is the second such drift found on main today (swift-crane-281 repaired two others in #9127).Test plan
gunbc compile --source-root dag --source-root src/v2 --entry dag/gunbc/design_document.dag→ 0 blocking, 181 advisory. Run again after the second commit: same result.gunbc run --entry dag/tools/generated_artifact_gate.dag --function main_wet→ exit 0, touching onlyDESIGN.mdand the authority.🤖 Generated with Claude Code