Skip to content

ITEM 2: construction → DeclarationRef carrier + graph-property witness - #5960

Merged
briansrls merged 1 commit into
mainfrom
session/tidy-badger-45-item2
Jun 29, 2026
Merged

briansrls merged 1 commit into
mainfrom
session/tidy-badger-45-item2

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Keystone of the reference-grounding migration (#5952). WallNow { construction: String } → WallNow { mechanism: ConstructionMechanism, authority: DeclarationRef } — 'this lens chains to a real construction' becomes a walkable graph property.

Carrier (no mint, no widen)

  • ConstructionMechanism reused (std.disposition); the 3 live sites map 1:1 onto its 3 variants (§2 evidence the HOW-axis is right):
    • intent_linearity → SingleAuthority + v2.lens.module_graph.import_closure_live
    • application_serializer → RealizationDispatch + v2.compiler.translate.target_serialize_source_from_model
    • cost → SubstrateMandatoryTag + v2.std.node.NodeKind (the closed Connective×Behavior kernel that mandates total cost — not SymbolicCost, which is the codomain with an UnknownCost escape)
  • authority is std.decl_ref.DeclarationRef verbatim — the one authority the disposition/determinism markers (Determinism §3 fast-follow: §6 activation/dissolution markers on core axis and refinements #5954) bind through.

Witness (gate by execution)

  • wall_now_authority_graph_is_total: every WallNow authority resolves to a real top-level decl → green over the 3 sites; perturb-to-RED by planting a dangling decl_name.
  • Resolves on identity, kind-agnostically, via the reused extract_top_level_decls (made pub — no second decl scanner forked). NOT a fn∪type index union.
  • SCAFFOLD (§6): host-side resolution stands in for a not-yet-exposed unified kind-agnostic .dag decl-resolution primitive (item (ii), resolver lane); marked to dissolve onto it. Discriminating control + parse-unit tests included.

Plan-doc vacuity residual now CLOSED (no free string survives in ConstructionClass); md regenerated; drift gate green. Verified in-tree: 6/6 construction hygiene tests pass incl. the witness; clippy clean.

@jolly-cat-29 gates the witness by execution.

🤖 Generated with Claude Code

The keystone of the reference-grounding migration (#5952). WallNow's free-text
`construction: String` becomes `WallNow { mechanism: ConstructionMechanism, authority:
DeclarationRef }`, so "this lens chains to a real construction" stops being prose and
becomes a WALKABLE graph property.

Carrier (no mint, no widen):
- ConstructionMechanism reused (std.disposition) — the 3 live sites map 1:1 onto its 3
  variants, real §2 evidence the HOW-axis is right, not a guess:
  - intent_linearity → SingleAuthority + v2.lens.module_graph.import_closure_live
  - application_serializer → RealizationDispatch + v2.compiler.translate.target_serialize_source_from_model
  - cost → SubstrateMandatoryTag + v2.std.node.NodeKind (the closed Connective×Behavior
    kernel that MANDATES total cost — NOT SymbolicCost, which is the codomain and carries
    an UnknownCost escape; the totality prose dissolves into the tag + a ref)
- authority is std.decl_ref.DeclarationRef VERBATIM — the one authority the
  disposition/determinism scaffold markers (#5954) bind through, byte-identical idiom.

Witness (jolly-cat gates by execution):
- wall_now_authority_graph_is_total: every WallNow authority resolves to a real top-level
  decl in the corpus → green over the 3 sites; perturb-to-RED by planting a dangling
  decl_name.
- Resolution keys on identity (module_path + decl_name) kind-agnostically via the reused
  extract_top_level_decls (made pub — no second decl scanner forked). NOT a fn-index ∪
  type-index union.
- SCAFFOLD (DESIGN §6): host-side resolution stands in for a not-yet-exposed unified
  kind-agnostic .dag decl-resolution primitive (item (ii), coordinator-tracked resolver
  lane); marked to dissolve onto it. Discriminating control + parse-unit tests included.

Plan doc: construction-justification-rule vacuity-residual now CLOSED (no free string
survives in ConstructionClass); regenerated md. Drift gate green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@briansrls
briansrls merged commit 4bb5d70 into main Jun 29, 2026
2 checks passed
@briansrls
briansrls deleted the session/tidy-badger-45-item2 branch June 29, 2026 18:17
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>
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