Repository navigation
get rid of "Undecideable because" strings and rationale - #5943
Merged
Merged
Conversation
…uction-justification
These free-text String payloads on ConstructionJustification (rationale) and
ConstructionClass::RatchetForever (undecidable_because) were a §6 parallel-ledger:
unverifiable prose that no consumer ever reads (the only matches discard the value
with `_`). The judgment now lives entirely in the typed ConstructionClass; the
structured `dissolves_to: ConstructionMechanism` on WallAfterGrounding stays.
- construction_justification.dag: drop both String fields (RatchetForever → nullary)
- all 44 v2.lens.* decls: strip rationale + collapse RatchetForever { ... } → RatchetForever
- intent_linearity match arm: RatchetForever { undecidable_because: _ } → RatchetForever
- cli_run.rs hygiene-test fixture updated to the new shape
- construction_justification_rule plan: refresh §1/§3/§4 prose (the vacuity residual
the rationale field embodied is now resolved by removal) + regenerated its md
Verified: construction_justification hygiene tests (3/3, incl. live-corpus
floor_corpus_every_lens_is_justified) green; modified .dag modules resolve/typecheck
(nullary RatchetForever construction); generated-artifact drift gate ExitSuccess.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…tion-justification diagnostic The unjustified-lens error message still named the removed `rationale` field; the decl no longer carries it. Addresses claude-opus-4-7 review finding on #5943. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jun 29, 2026
…rriers) (#5952) * Design: reference-grounding migration plan (stringly-typed refs → typed carriers) Adds dsl/gunbc/plans/reference_grounding_migration.dag (a Plan, rendered to docs/plans/reference-grounding-migration.md via the generated-artifact registry) and registers it in plan_registry_batch_g. The carrier half of a two-part groundedness effort (detector half = neat-fox-279's v2.lens.grounding EXTRACT). Captures the holistic audit finding: ~80+ stringly-typed references across lens/std/extdeps/gunbc are ONE problem — a symbol/module/fn/path/URL written as free text where a typed edge belongs — and almost every target carrier already exists (DeclarationRef, QualifiedName, Uri, UriScheme). Lays out the §2/§3/§5/§6 framing, the reference/enum/derivable/prose partition, the explicit anti-goal (no fresh branded-NonEmptyStr per field), the EXTRACT-driven worklist (no hand-ledger), the sequencing (#5933→#5943 → construction→DeclarationRef proof → bulk → quick wins → path-literal lane), and a dissolution trigger (EXTRACT returns empty). Verified: plan typechecks + renders (main_wet ExitSuccess); md is byte-stable across a fresh in-tree main-built gunbc. NOTE: the drift gate currently reds on a PRE-EXISTING main drift in .githooks/pre-push (regenerates differently from committed on origin/main, independent of this PR — this change touches only the 3 plan files). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Register reference_grounding_migration in plan registry + regenerate pre-push roster Fixes the prior commit which dropped the plan_registry_batch_g edit (the plan was unregistered, so its md was an orphan and it never entered all_plans). Adds the registration and the one-line .githooks/pre-push regeneration that follows from a new generated plan artifact (fresh_artifact_path roster). Drift gate now green (ExitSuccess). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Fold role-vs-reference distinction + earn-don't-guess into the migration plan Incorporates neat-fox-279's substrate-scout finding: the "reference" bucket was itself a conflation. Split it into REFERENCE (names an independent entity → DeclarationRef/Uri) vs ROLE (a genitive/ownership word about the enclosing concept → a tag on EdgeLabel/FieldRef, an upstream substrate gap the carrier models nowhere today). The role carrier is EARNED from an accumulated adjudication ledger (§1 convention→necessity), never guessed by a hand-coded stop-list of generic names or a threshold. Adds §3.1, the Role row, the ledger discipline, the EARNED role-carrier sequencing step, and notes the layer-exclusion (Job A) as neat-fox's half that runs before these candidates. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Make the reference-grounding plan reachable: add ROADMAP §0 node (fixes orphan-doc gate) CI failure was doc_graph_has_no_orphan_docs() = false — a new docs/plans/*.md is an orphan unless ROADMAP links to it. Added a §0 authored_pp node (0-reference-grounding) in roadmap_authority.dag referencing the plan + its construction-rule sibling, and regenerated ROADMAP.md (the generated artifact — never hand-edited). Orphan witness now true; drift gate green. 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 29, 2026
…#5943 carrier shape (#5964) #5933 (model-grounding lens) merged carrying the PRE-#5943 ConstructionJustification shape — `RatchetForever { undecidable_because: ... }` + `rationale: ...` — because its CI was green against an older merge-base. Against current main (where #5943 removed both fields and #5960 reshaped WallNow) grounding.dag fails to typecheck: `field 'rationale' not found in type 'ConstructionJustification'`, reddening the lens, its witness, and the floor. Classic merge-skew (CI-green-on-stale-base). Fix = the #5943 migration applied to the one site #5933 re-introduced: drop the unread free-text payloads, `class: RatchetForever` (nullary). Same treatment every other RatchetForever site already carries; the judgment lives in the typed variant. Verified in-tree on current main: grounding_lens_witnesses green; candidates() runs; construction_justification_hygiene_tests 6/6 (incl. wall_now_authority_graph_is_total). (The dropped undecidable_because prose — the cursor~Cursor / necessary-not-sufficient reasoning — is real and belongs in the EXTRACT/grounding DESIGN doc, not the carrier; flagged to neat-fox-279.) 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 29, 2026
…-green by construction + repo-standard drift gate [SKETCH] (#5965) * WIP: get rid of "Undecideable because" strings and rationale * Remove unstructured rationale / undecidable_because prose from construction-justification These free-text String payloads on ConstructionJustification (rationale) and ConstructionClass::RatchetForever (undecidable_because) were a §6 parallel-ledger: unverifiable prose that no consumer ever reads (the only matches discard the value with `_`). The judgment now lives entirely in the typed ConstructionClass; the structured `dissolves_to: ConstructionMechanism` on WallAfterGrounding stays. - construction_justification.dag: drop both String fields (RatchetForever → nullary) - all 44 v2.lens.* decls: strip rationale + collapse RatchetForever { ... } → RatchetForever - intent_linearity match arm: RatchetForever { undecidable_because: _ } → RatchetForever - cli_run.rs hygiene-test fixture updated to the new shape - construction_justification_rule plan: refresh §1/§3/§4 prose (the vacuity residual the rationale field embodied is now resolved by removal) + regenerated its md Verified: construction_justification hygiene tests (3/3, incl. live-corpus floor_corpus_every_lens_is_justified) green; modified .dag modules resolve/typecheck (nullary RatchetForever construction); generated-artifact drift gate ExitSuccess. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Fix stale error-message string: drop "with a rationale" from construction-justification diagnostic The unjustified-lens error message still named the removed `rationale` field; the decl no longer carries it. Addresses claude-opus-4-7 review finding on #5943. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: Idempotency Manager * WIP: Idempotency Manager --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
8 of 9 tasks
briansrls
added a commit
that referenced
this pull request
Jun 30, 2026
…nce residue (retire undecidable_because/rationale) (#5997) * WIP: get rid of "Undecideable because" strings and rationale * Remove unstructured rationale / undecidable_because prose from construction-justification These free-text String payloads on ConstructionJustification (rationale) and ConstructionClass::RatchetForever (undecidable_because) were a §6 parallel-ledger: unverifiable prose that no consumer ever reads (the only matches discard the value with `_`). The judgment now lives entirely in the typed ConstructionClass; the structured `dissolves_to: ConstructionMechanism` on WallAfterGrounding stays. - construction_justification.dag: drop both String fields (RatchetForever → nullary) - all 44 v2.lens.* decls: strip rationale + collapse RatchetForever { ... } → RatchetForever - intent_linearity match arm: RatchetForever { undecidable_because: _ } → RatchetForever - cli_run.rs hygiene-test fixture updated to the new shape - construction_justification_rule plan: refresh §1/§3/§4 prose (the vacuity residual the rationale field embodied is now resolved by removal) + regenerated its md Verified: construction_justification hygiene tests (3/3, incl. live-corpus floor_corpus_every_lens_is_justified) green; modified .dag modules resolve/typecheck (nullary RatchetForever construction); generated-artifact drift gate ExitSuccess. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * Fix stale error-message string: drop "with a rationale" from construction-justification diagnostic The unjustified-lens error message still named the removed `rationale` field; the decl no longer carries it. Addresses claude-opus-4-7 review finding on #5943. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> * WIP: Idempotency Manager * WIP: Idempotency Manager * WIP: Idempotency Manager * WIP: Idempotency Manager --------- 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.
Auto-opened by session-dashboard for session
tidy-badger-45.Pushing to
session/tidy-badger-45advances this PR.Worker attestation
Before flipping this PR to ready for review, confirm each item:
npm test,cargo test) and the result.Closes #Ndirective.Summary
TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.
Test plan