Repository navigation
§3 de-fork: rename dsl std.verification record TestClaim -> AssertionClaim (dissolves A1 EqualsClaim closure-poison) - #5640
Merged
Conversation
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Jun 23, 2026
Refresh dsl-v2-defork-audit.md (sole owner) with the by-execution Q2 classification for the #2 resolver-wall ruling: structural_inequality run across the 9 std basename pairs + floor-closure reachability BFS (351 entries). Confirms parent's derived distribution: verification RESOLVED by #5640 (a name-collision rename-apart, not a grounding-merge); cant-unify-yet == {node, coercion} exactly; no third stuck mirror => flag-ANY + {node,coercion} HOLDS. Two scope refinements: the {node,coercion} exemption is vacuous for the type-name guard (0 shared type names — Route-C basename surface), and the guard's real lands-green gate is the grounding de-fork fronted by the LIVE pair {algebra (75 floor entries), nat (4)}. Read-only; no de-fork executed. No resolver edit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jun 23, 2026
… guard (#5652) * WIP: DIAGNOSE (read-only, NO resolver edit) the A1-induced discovery-corpus c * WIP: DIAGNOSE (read-only, NO resolver edit) the A1-induced discovery-corpus c * de-fork audit: 2026-06-23 executed Q2 confirmation (post-#5640) Refresh dsl-v2-defork-audit.md (sole owner) with the by-execution Q2 classification for the #2 resolver-wall ruling: structural_inequality run across the 9 std basename pairs + floor-closure reachability BFS (351 entries). Confirms parent's derived distribution: verification RESOLVED by #5640 (a name-collision rename-apart, not a grounding-merge); cant-unify-yet == {node, coercion} exactly; no third stuck mirror => flag-ANY + {node,coercion} HOLDS. Two scope refinements: the {node,coercion} exemption is vacuous for the type-name guard (0 shared type names — Route-C basename surface), and the guard's real lands-green gate is the grounding de-fork fronted by the LIVE pair {algebra (75 floor entries), nat (4)}. Read-only; no de-fork executed. No resolver edit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * #5652: fold the SIGNED final Q2 ruling (parent bright-stag, 2026-06-23) flag-ANY (require_structural_divergence=FALSE), signed against the executed distribution (dsl-v2-defork-audit.md §2A). Records the three confirmed points: 1. POLICY flag-ANY — fires on byte-identical mirror shared type-names too (intended: a mirror is two homes for one type = §3 violation; de-fork merges even mirrors; flag-DIVERGENT would tolerate them = §3 hole). 2. ROSTER deliberately EMPTY — {node,coercion} dropped as vacuous (zero shared type-names; guard never fires; their basename de-fork is Route-C/v1-delete, a different surface, still tracked in the audit category-(c)). 3. ACTIVATION — lands-already-green after the grounding de-fork of the shared-type-name set {algebra,nat,effects,float,integer}, fronted by LIVE {algebra=75 floor entries, nat=4}; self-certifying capstone. Model signed; resolver guard remains a separate operator-gated future PR on the de-forked tree. No resolver edit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * WIP: DIAGNOSE (read-only, NO resolver edit) the A1-induced discovery-corpus c * docs: link resolver-type-name-collision-wall.md from the de-fork audit (de-orphan) The new wall design doc was an orphan (no inbound link) → the floor doc_graph_has_no_orphan_docs gate would red it. Add the root-reachable edge audit→wall (audit's Q2 distribution feeds the wall): ROADMAP.md → v2-self-hosting.md → dsl-v2-defork-audit.md → resolver-type-name-collision-wall.md. Link resolves (both docs in docs/plans/). Docs-only. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jun 23, 2026
…ion drift) The auto-merge of origin/main into this branch collided on dsl_v2_defork_audit.dag: main added the '2A. 2026-06-23 executed Q2 confirmation' section (#5652/#5640) to both the model and the committed .md, but the conflict resolution kept this branch's dedup'd model (pre-2A), dropping 39 lines of model content while the .md kept them — so generated_artifact_drift_gate went red (regen deleted 2A from the .md). Fix: take main's self-consistent model+\.md for this doc and re-apply the md_helpers dedup to it. Now the model reproduces the committed .md byte-exact (2A intact). Verified: run_generated_artifact_drift_gate=ExitSuccess, generated_artifact_drift_witnesses=true, §6 lenses=true. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jun 24, 2026
* Dedup plan-doc markdown helpers into gunbc.plans.md_helpers The 29 plan modules each defined byte-identical copies of the markdown construction helpers (h2/h3/p/li/li_blocks/ul/ol/cell/row/quote/tasks/todo/ task/hr) — a §2-horizontal redundancy flagged by the api-review on #5655. Extract one authority `gunbc.plans.md_helpers` and repoint every module to import the helpers it uses, removing the per-module duplicates. Also consolidates the `quote`/`bq` nickname fork (§3) onto the single name `quote`. Each module's `std.markdown` import is pruned to only the types its body still references directly. Pure refactor — zero output change. Verified by execution: generated_artifact_drift_witnesses=true (all 29 docs byte-identical) and both §6 lenses (every_registered_plan_has_dissolution_trigger / _is_titled)=true. Net -316 lines. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: get design docs into .dag * Re-dedup dsl_v2_defork_audit onto main's 2A section (fix merge-collision drift) The auto-merge of origin/main into this branch collided on dsl_v2_defork_audit.dag: main added the '2A. 2026-06-23 executed Q2 confirmation' section (#5652/#5640) to both the model and the committed .md, but the conflict resolution kept this branch's dedup'd model (pre-2A), dropping 39 lines of model content while the .md kept them — so generated_artifact_drift_gate went red (regen deleted 2A from the .md). Fix: take main's self-consistent model+\.md for this doc and re-apply the md_helpers dedup to it. Now the model reproduces the committed .md byte-exact (2A intact). Verified: run_generated_artifact_drift_gate=ExitSuccess, generated_artifact_drift_witnesses=true, §6 lenses=true. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jun 24, 2026
…measurement-loop, resolver-type-name-collision-wall) (#5727) * Dedup plan-doc markdown helpers into gunbc.plans.md_helpers The 29 plan modules each defined byte-identical copies of the markdown construction helpers (h2/h3/p/li/li_blocks/ul/ol/cell/row/quote/tasks/todo/ task/hr) — a §2-horizontal redundancy flagged by the api-review on #5655. Extract one authority `gunbc.plans.md_helpers` and repoint every module to import the helpers it uses, removing the per-module duplicates. Also consolidates the `quote`/`bq` nickname fork (§3) onto the single name `quote`. Each module's `std.markdown` import is pruned to only the types its body still references directly. Pure refactor — zero output change. Verified by execution: generated_artifact_drift_witnesses=true (all 29 docs byte-identical) and both §6 lenses (every_registered_plan_has_dissolution_trigger / _is_titled)=true. Net -316 lines. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: get design docs into .dag * Re-dedup dsl_v2_defork_audit onto main's 2A section (fix merge-collision drift) The auto-merge of origin/main into this branch collided on dsl_v2_defork_audit.dag: main added the '2A. 2026-06-23 executed Q2 confirmation' section (#5652/#5640) to both the model and the committed .md, but the conflict resolution kept this branch's dedup'd model (pre-2A), dropping 39 lines of model content while the .md kept them — so generated_artifact_drift_gate went red (regen deleted 2A from the .md). Fix: take main's self-consistent model+\.md for this doc and re-apply the md_helpers dedup to it. Now the model reproduces the committed .md byte-exact (2A intact). Verified: run_generated_artifact_drift_gate=ExitSuccess, generated_artifact_drift_witnesses=true, §6 lenses=true. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: get design docs into .dag * WIP: get design docs into .dag * Model T6 (cpu.weight axis) into ci_humming plan after main merge main #5688-era hand-added a T6 bullet to docs/plans/ci-humming.md while this branch was modeling ci-humming as a .dag Plan; the merge combined both but left the model without T6 (drift). Add the T6 li to ci_humming.dag so the regenerated .md reproduces it byte-exact. Verified: run_generated_artifact_drift_gate=ExitSuccess, all plan witnesses PASS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Opus 4.8 <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.
Summary
§3 single-authority de-conflation: rename the record type
TestClaim→AssertionClaimindsl/std/verification.dag. Two genuinely-different concepts were wrongly sharing one unqualified name:std.verification(dsl)type TestClaim { kind: AssertKind, label: String }— a test assertion model. → renamedAssertionClaim(thekindfield is anAssertKind, so the new name is truthful).v2.std.verification(src/v2)type TestClaim = … | EqualsClaim | …— the v2 claim coproduct. Stays canonical, untouched.This is a rename only — not a unify, and it deliberately does not touch the
module std.verificationname-fork or any dsl↔v2 std de-fork (separate operator-strategic lane); it stays compatible with whatever that lane later decides.Why
This was the root cause of the A1 (#5615)
type 'EqualsClaim' not found in scopefloor failure (reverted by #5627). The resolver's per-module scope (env.bindings) is keyed by unqualified type name. When a PR expands a test's transitive import-closure to include bothverificationmodules, theTestClaimslot silently resolves to one binding — the dsl record won, and since variant-constructor registration only fires for coproducts (Disj),EqualsClaim/StructuralEqualsClaimwere never registered → "not found in scope". A1 was an innocent trigger: it draggedstd.verification(dsl)into the floor test's closure viagunbc.ci_failure_class → extdeps.cache.sccache → std.cache_interface → std.verification. The unqualified name-clash is the landmine; this rename removes it so the name denotes one concept tree-wide.(The deeper §5 resolver fail-open — silently picking one binding instead of failing closed on a type-name collision — is operator-gated and out of scope here.)
The dsl record had zero external consumers of the
TestClaim/TestCasenames (the 5import std.verificationsites all import only theNanosecondDuration/nanosecond_duration*cost helpers), so the change is the 2 lines indsl/std/verification.dag(the decl + theTestCase.claimsfield).Test plan — proven by execution (instrumented oracle + both source-root orders)
On the merge-result tree = current-main + this PR + A1 (re-applied locally for the test only), via
claim_batchresolvingsrc/v2/workflow/affected_set_floor_runner_test.dag:TestClaimbindingconnective=Disj, children[CompilesClaim, DiagnosticClaim, EqualsClaim, StructuralEqualsClaim, RoundTripClaim],EqualsClaim_in_locals=true,collisions=0→ PASS (before this PR:Conj{kind,label}/EqualsClaim_in_locals=false→ FAIL).--source-root dsl --source-root src/v2): PASS (56 modules, 1601 resolved items).--source-root src/v2 --source-root dsl): PASS (56 modules, 1601 resolved items).Collision dissolved in both orders; the closure still includes
std.verification(dsl)but the renamedAssertionClaimno longer shadows the v2 coproduct.Diagnosis context: dashboard node
adhoc-f83d03b9-69b; parent-signed the std rename (read-only constraint lifted for this edit only; resolver remains off-limits).