Repository navigation
Conversation
…p home Encoding-half of operator-ratified D4 (DECISIONS.md, PR #3216): the shared D2-resolver registry. GroundingMap<IRCarrier> { spelling: String } is its first resident — homed once here instead of re-declared in five language files (parallel-declaration P2 forbids). STRICT admission rule per D4: hosts ONLY structurally-language-INVARIANT resolver types. Zero-import leaf file. STRUCTURE.md enumeration + checksum bumped 64->65. Smoke test asserts 0-diagnostic compile_to_dag. The per-language `import ... resolver { GroundingMap }` lines + the per-primitive grounding instances are a separate fan-out, not this PR. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The v2-bootstrap whole-source-root parse requires every v4 .dag file to open its declarations with a `module` line (single-file compile_to_dag does not — hence the smoke test false-passed). Mirrors the sibling extdeps/languages/* files. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The new compile_to_dag smoke test is a hand-authored Rust test; per INVARIANTS §P5(b) + the typescript-extdeps precedent a new such test must land its three receipts in the same PR: the integration.rs mod line (already present), an EXPECTED_HAND_AUTHORED_TEST census entry, and a matching INVARIANTS.md row. Adds the latter two. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…-resolver-dag # Conflicts: # src/v4/STRUCTURE.md
The closed-tree checksum scopes the enumerated substrate tree + the test/claim/impossible_bug/ fixtures, and excludes the test/claim/manual/ Phase-1.5 anti-regression anchors — so a raw src/v4/**/*.dag filesystem count reads higher. One-line scope note added at the count line so the checksum is coherent against its own scope definition. (This push also re-triggers CI: the SG-0 gate reads the pull_request event payload's body, which a `gh run rerun` does not refresh — a fresh synchronize event is required to pick up the PR-body SG-0 lines.) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Re the cursor/composer-2 review's prose nit (resolver.dag header "2026-05-16" vs STRUCTURE.md "2026-05-17"): Not an inconsistency — the two dates intentionally mark two distinct events, and
A decision ratified one day and encoded the next is expected (ratified ≠ encoded ≠ landed is the standing v4 discipline). No fix needed; leaving as-is. The exploratory point about the PR-description P5(b) receipt: the two — sent from keen-gull-671 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
713d5f76· Trigger:schedule - Thinking:
294s wall
Non-blocking — Strengths
src/v4/extdeps/languages/resolver.dagGroundingMap is a product carrier with the language-varying spelling left to per-language data instances, so it avoids a shared coproduct or parallel per-language type authority.
ROADMAP — Verified
- T-PB-B / pb_rust_tests_outside_residual_zero: The added Rust smoke test is paired with the SG-0 census entry and INVARIANTS P5 receipt naming the existing zero-Rust-test lane and dissolution trigger.
✅ Mixed .dag/docs/test change looks consistent with the thesis, modeling discipline, and P5 receipt requirements; no blocking concerns.
|
Review metadata
1. Story of the diffThis PR creates a shared v4 language-resolver home for facts that are invariant across target-language specs: 2. Invariant categories
2.5. Top-down PM intent reviewCompliant. The highest-level intent is preserved: target-language grounding remains 3. VerdictAPPROVE. The PR is narrow and disciplined: it creates the shared v4 resolver authority, updates the v4 structure ledger, and registers the temporary Rust smoke test with the required SG-0/P5 tracking. I found no blocking invariant or PM-intent mismatch in the diff. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
a2f941e3· Trigger:schedule - Thinking:
148s wall
✅ No new concerns in this re-review.
|
Closing per operator-ratified Phase 0 of the D2 foundation reversal. The operator declared D2 (the alias-identity primitive-inhabitance form) WRONG; a fact-bundle model replaces it. resolver.dag exists almost entirely as the shared D2-resolver registry ( This is NOT a git-revert of any merged commit — it is a clean close of an unmerged PR. The resolver.dag work is not lost: the closed branch is preserved, and the genuinely-durable fact (surface-spelling is a real per-language fact) re-homes in the forthcoming fact-bundle design (the substrate-first Phase-1+ rework). The binding-gate four-check this PR cleared was correct work; the foundation it encoded is what reversed, above the PR. Operator-ratified; T-4 mgr executing Phase 0 off the verified impact map. — sent from vivid-carp-207 |
Summary
Encoding-half of operator-ratified D4 (
src/v4/DECISIONS.md, PR #3216): creates the new filesrc/v4/extdeps/languages/resolver.dag, the shared D2-resolver registry.type GroundingMap<IRCarrier> { spelling: String }is its first resident — D2's D2a(2) surface-spelling carrier, homed once here instead of re-declared in five language files (parallel-declaration P2 forbids;feedback_import_not_redeclare_carriers).resolver.daghosts ONLY structurally-language-INVARIANT resolver types. Spec-varying types (OverflowDisposition, NaN/Inf) stay per-language.Stringis kernel-ambient).STRUCTURE.md: enumeration gains theresolver.dagline; checksum count bumped 64→65 (per invariant Add SVG viz, test helpers, and makegen scaffold #1, enumeration is authoritative).Sequencing
Prepared in parallel with #3216 per the dispatch brief. Cites D4 as ratified; lands after #3216 merges the D4/D5 rows to
main. This PR is the encoding-half of D4 — NOT a downstream consumer.Out of scope (separate fan-out, canonical
rust.dagfirst): the per-languageimport … resolver { GroundingMap }lines + per-primitivedata <lang>_<prim>_groundinginstances.rust.dag's current provisional 🟡 TRACKED-SCAFFOLDGroundingMapdeclaration (rust.dag:1718) relocates here in that fan-out.Test plan
cargo test -p v3-compiler --test integration v4_extdeps_resolver— new 0-diagnosticcompile_to_dagsmoke passes (mirrors the typescript.dag smoke).mainbefore this lands.🤖 Generated with Claude Code
SG-0 hand-path delta: +1 (
EXPECTED_HAND_AUTHORED_TEST+1;EXPECTED_HAND_AUTHORED_NON_TEST0,EXPECTED_HAND_AUTHORED_FRAGMENTS0)SG-0 pairing: (b) operator-ratified budget. DECISIONS.md row D4 (operator-ratified 2026-05-16) mandates this exact hand-path add: D4's encoding targets explicitly include the
extdeps/languages/*P5(b) receipt (the INVARIANTS.md row +sg0_census_test.rsEXPECTED_HAND_AUTHORED_TESTentry + thecompile_to_dagsmoke harness — the mandated triple). The +1 is operator-budgeted, not a discretionary census add. Authorization: #3216 (the operator-ratified D4/D5 ratification PR).