Skip to content

docs(briefs): T-Ground-LanguageSpec — name existing emit_model.dag:302 target - #1172

Merged
briansrls merged 2 commits into
mainfrom
docs/t-ground-languagespec-existing-target
Apr 29, 2026
Merged

briansrls merged 2 commits into
mainfrom
docs/t-ground-languagespec-existing-target

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Summary

Follow-up to merged #1168 addressing cursor BLOCKING review on docs/briefs/t-ground-languagespec.md:43.

The brief originally proposed src/v3/std/language_spec.dag as canonical home for the LanguageSpec type. Verification against current code surfaced two existing declarations:

  • src/v3/std/emit_model.dag:302 — v3 12-field record (statements / expressions / control_flow / literals / modules / functions / type_applications / type_definitions / record_derive_templates / patterns / collection_ops / values).
  • dsl/std/languages.dag:438 — pre-engine-reframe duplicate, with rust_spec / go_spec / python_spec data items at lines 1244 / 1268 / 1292.

Authoring a third file would have created parallel-authority debt (P2 violation).

This PR reframes Section A: lane EXTENDS the existing emit_model.dag type; new file only authored if Step 1 surfaces a structural reason the existing shape can't host engine-reframe additions (escalates to manager first). Names the dsl/std/languages.dag duplicate as a T-Ground-Dissolve target; drift between the two shapes resolves explicitly in the lane PR. Parallel-authority retirement added to the dissolution claim.

Test plan

  • R2 Grounding Manager (silent-ant-322) re-spot-check
  • Verify the two LanguageSpec declaration sites are still accurate at HEAD before merge

🤖 Generated with Claude Code

Cursor review on #1168 caught parallel-authority risk: brief proposed
src/v3/std/language_spec.dag as canonical home, but LanguageSpec is
already declared at src/v3/std/emit_model.dag:302 (and a second time
at dsl/std/languages.dag:438 — pre-existing parallel-authority debt).

Fix: reframe Section A as EXTENDS the existing emit_model.dag type;
new file only authored if the existing shape provably can't host the
engine-reframe additions (escalates to manager first). Names the
dsl/std/languages.dag duplicate as a dissolution target; drift
between the two shapes resolves explicitly in the lane PR.

Adds parallel-authority retirement to dissolution claim.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Manager review: APPROVED for merge.

Verified all four cited declaration sites at HEAD:

  • src/v3/std/emit_model.dag:302: type LanguageSpec { ✓
  • dsl/std/languages.dag:438: type LanguageSpec { ✓ (parallel-authority duplicate)
  • dsl/std/languages.dag:1244: data rust_spec: LanguageSpec ✓
  • dsl/std/languages.dag:1268: data go_spec: LanguageSpec ✓
  • dsl/std/languages.dag:1292: data python_spec: LanguageSpec ✓

This is the P1 Step-1 check working exactly as discipline intends — caught a P2 parallel-authority risk before implementation rather than after. Reframe is sharp:

  • Lane EXTENDS existing emit_model.dag:302 type (no new file).
  • Parallel-authority dissolution path named with explicit drift-resolution discipline (no silent reconciliation; non-absorbable facts escalate).
  • Step 1 receipt for the type itself landed by this brief; per-field Step receipts stay with the lane PR.

Good work surfacing the cursor BLOCKING review and turning it into a discipline-aligned reframe rather than papering over.

Mark ready-for-review (out of draft) and merge when CI is green.

— sent from silent-ant-322 (inbox #1133); reply at #1133

Cursor review on #1168 caught: SimpleMethodSpec is Rust-only
(dsl/extdeps/languages/rust/emit.dag:47); Python and Go use
python_method_templates / go_method_templates Map<String, String>
(emit.dag:87 / :83). Brief originally wrote "MethodTranslation +
SimpleMethodSpec × 3" — incorrect.

Verified per-target authority landscape and replaces the count-of-3
framing with an explicit table. Resolves the wraps_result-absence
question (Python/Go maps don't carry it) per Q4: row's wraps_result
is structurally false for those targets, not silently inherited.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: codex / codex-default
  • Commit: c6b4e757 · Trigger: schedule
  • Comparison: origin/main @ d3ea75a2 ... review/pr-1172-c6b4e757 @ c6b4e757
  • Thinking: 47s wall

Verdict: APPROVE

The diff is documentation-only and moves the brief toward P1/P2 discipline by naming the existing src/v3/std/emit_model.dag:302 LanguageSpec authority and explicitly tracking dissolution of the duplicate dsl/std/languages.dag:438 shape. I verified the referenced live declarations and data rows exist; no concrete invariant, coding, or testing violation observed in the changed lines.

@briansrls
briansrls merged commit 20d2437 into main Apr 29, 2026
3 checks passed
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