Skip to content

v4 de-prose: bind typescript.dag into strict_deprose_dag.py allowlist (#3290 redo on post-#3338 main) - #3350

Merged
briansrls merged 11 commits into
mainfrom
session/loyal-bear-361
May 19, 2026
Merged

briansrls merged 11 commits into
mainfrom
session/loyal-bear-361

Conversation

@briansrls

@briansrls briansrls commented May 19, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Refresh of #3290 against post-#3338 main (fresh, not a stale rebase). #3338 rewrote the typescript.dag comment surface and already landed the ts_bool_grounding canonical-B decl-ref. This PR is the merge-gate binding step: add src/v4/extdeps/languages/typescript.dag to the strict-de-prose allowlist in scripts/strict_deprose_dag.py, so the file is now covered by python3 scripts/strict_deprose_dag.py --check (CI .github/workflows/ci.yml:104).

  • Normalized header to the script's required form: path / Scope / Owns / Consumes / Status / Anchor / Ledger.
  • Moved each per-coproduct // 🟢 coproduct dissolution — DECISIONS.md Part 6 · CP-3229-GREEN-TERMINAL. tag from between-type-and-= to the script-canonical position above the type line, so inject_coproduct_tags is an idempotent fixed point under --check.
  • Carrier surface byte-identical (comment-only diff vs main): same imports, same two N≥2 sum coproducts (TsEcma262NumericPrimitiveKind, TsEcma262PrimitiveOperationSemantics, both 🟢 CP-3229-GREEN-TERMINAL per merge-base 92cb26402), same data ts_bool_grounding: BooleanAlgebra<Bool> = bool_boolean_algebra row.

Rust-to-0 gate binding: no per-language Rust smoke test added or restored — the pre-existing src/v3/compiler/tests/integration/v4_extdeps_typescript_dag_smoke_test.rs was removed by #3338 and stays removed (no v3-anchored interim ratchet, per the Rust-to-0 standing directive).

Test plan

  • python3 scripts/strict_deprose_dag.py --check → OK: strict_deprose_dag --check (all allowlisted files match). (typescript now in allowlist).
  • diff <(grep -vE '^\s*//|^\s*$' pre) <(grep -vE '^\s*//|^\s*$' post) empty → carrier model unchanged.
  • CI v4 strict-deprose allowlist (--check; merge-base + Part 6 inventory) job green.
  • CI v4 bootstrap-viability job: v2-compiler compile --source-root src/v4 diagnostic count preserved (no carrier mutation).

🤖 Generated with Claude Code

…#3290 redo on post-#3338 main)

Refreshed against post-#3338 main rather than the stale proud-bat-880 branch:
#3338 rewrote the comment surface and already landed ts_bool_grounding canonical-B
decl-ref. This PR is the merge-gate binding step — adds typescript.dag to the strict
de-prose allowlist (scripts/strict_deprose_dag.py specs / CI ci.yml:104 --check),
normalizing the header to the script's required form (path / Scope / Owns / Consumes
/ Status / Anchor / Ledger), and moving the per-coproduct 🟢 tag from
between-`type`-and-`=` to the script-canonical position above the `type` line so
`inject_coproduct_tags` is an idempotent fixed point under --check.

Carrier surface byte-identical (comment-only diff): same imports, same two N≥2 sum
coproducts (TsEcma262NumericPrimitiveKind, TsEcma262PrimitiveOperationSemantics,
both 🟢 CP-3229-GREEN-TERMINAL per merge-base 92cb264), same
`data ts_bool_grounding: BooleanAlgebra<Bool> = bool_boolean_algebra` row.

Rust-to-0 binding: no per-language Rust smoke test added; the pre-existing
v4_extdeps_typescript_dag_smoke_test.rs was removed by #3338 and stays removed.

Test plan:
- `python3 scripts/strict_deprose_dag.py --check` → OK (allowlist incl. typescript).
- `diff <(grep -vE '^\s*//|^\s*$' pre) <(grep -vE '^\s*//|^\s*$' post)` empty → carriers unchanged.
- v2-compiler `compile --source-root src/v4` diagnostic count preserved (no carrier mutation; CI v4 job re-verifies).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls
briansrls force-pushed the session/loyal-bear-361 branch from 7782e1e to e6a256e Compare May 19, 2026 02:33
@briansrls briansrls changed the title [Mode-1 MAX-PAR] De-prose #3290 redo: refresh branch/PR against post-#3338 main (fresh from main, not stale rebase); #3338 rewrote comment surface; hard merge-gate surface verified-ready only; Rust-to-0 gate binding. v4 de-prose: bind typescript.dag into strict_deprose_dag.py allowlist (#3290 redo on post-#3338 main) May 19, 2026
@briansrls
briansrls marked this pull request as ready for review May 19, 2026 02:34
…codex #3350 review)

Codex review flagged the Status line "bool canonical-B decl-ref grounding landed (#3338)"
as overstating closure — DECISIONS.md:916-920 explicitly classifies `ts_bool_grounding`
as 🟡 P2/E-6 STAGING (not landed authority; no same-PR consumer; canonical fold
specified-not-realized). Restore the 🟡 STAGING wording with the DECISIONS.md anchor
so the header matches the live ledger (INVARIANTS.md P2 / Practice 9 "documentation
describes live state").

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

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: b33d8de9 · Trigger: schedule
  • Thinking: 238s wall

BLOCKING (1)

Root Cause

  • scripts/strict_deprose_dag.py allowlisting typescript through the generic green→CP-3229-GREEN-TERMINAL path → add a TypeScript Part-6 slug or Part-6 coverage row, or preserve/map the TS-D2 authority when generating TypeScript tags.

⚠️ Fix the TypeScript coproduct ledger target before merging.

Comment thread src/v4/extdeps/languages/typescript.dag Outdated



// 🟢 coproduct dissolution — DECISIONS.md Part 6 · CP-3229-GREEN-TERMINAL.

This comment was marked as resolved.

…MINAL recovery table (#3350 BLOCKING)

briansrls inline review @ typescript.dag:14 — the live `// 🟢 coproduct dissolution
— DECISIONS.md Part 6 · CP-3229-GREEN-TERMINAL.` tags weren't mechanically traceable
because the Part 6 bulk-recovery table did not list typescript.dag. Add the row
(`typescript.dag | 2` matches `git show 92cb264:typescript.dag | grep -c "GREEN
(terminal)"`) and the recovery `git show` line. No code/script change needed —
the strict-deprose tag map already classifies both TS coproducts as 🟢 GREEN from
the merge-base authority block; this is the missing inventory anchor.

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

Copy link
Copy Markdown
Contributor Author

Addressed by fbb4342 (pushed after this review's b33d8de SHA): added typescript.dag | 2 row to the DECISIONS.md Part 6 CP-3229-GREEN-TERMINAL bulk-recovery table plus the matching git show 92cb26402:…typescript.dag recovery command. Same fix the inline thread @ typescript.dag:14 named. The strict_deprose tag map already classifies both TS coproducts as 🟢 GREEN from the merge-base Practice-4 authority blocks (verified git show 92cb26402:src/v4/extdeps/languages/typescript.dag | grep -c 'GREEN (terminal)' = 2), so the Part 6 inventory row is the missing anchor, not a TS-D2 mapping — TS-D2 is the in-file Practice-4 face for the live coproducts, CP-3229-GREEN-TERMINAL is the bulk merge-base recovery slug, no conflict. python3 scripts/strict_deprose_dag.py --check passes on HEAD. — sent from loyal-bear-361

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: fbb43429 · Trigger: schedule
  • Thinking: 284s wall

Non-blocking — Strengths

  • src/v4/extdeps/languages/typescript.dag Mixed PR: the .dag tags, DECISIONS recovery table, and strict_deprose allowlist now point at the same TypeScript ledger surface.

✅ No blocking thesis, modeling-discipline, or invariant concerns found in the changed lines.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: c443f732 · Trigger: schedule
  • Thinking: 207s wall

Non-blocking — Strengths

  • src/v4/extdeps/languages/typescript.dag The TypeScript header, in-file coproduct tags, DECISIONS Part 6 inventory, and strict_deprose_dag.py allowlist now describe the same ledger surface.

✅ No blocking concerns found in the changed lines.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 365f93ad · Trigger: schedule
  • Thinking: 190s wall

Non-blocking — Strengths

  • src/v4/extdeps/languages/typescript.dag The TypeScript header, coproduct tags, DECISIONS Part 6 row, and strict_deprose_dag.py allowlist now agree on the same ledger surface.

✅ No blocking concerns found in the changed lines.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 24593a7a · Trigger: schedule
  • Thinking: 174s wall

✅ The changed allowlist entry, TypeScript header/tags, and Part 6 ledger recovery surface are consistent; no blocking concerns found.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 09bbb37f · Trigger: schedule
  • Thinking: 128s wall

Non-blocking — Strengths

  • scripts/strict_deprose_dag.py The allowlist entry, generated TypeScript header shape, and Part 6 ledger binding are consistent with the de-prose contract.

✅ No blocking concerns found.

briansrls and others added 4 commits May 19, 2026 20:32
# Conflicts:
#	src/v4/extdeps/languages/typescript.dag
…G-1 slice marker)

Post-merge fix on top of 22b1854: main rewrote the strict_deprose_dag.py spec
tuple to 6-fields (added RULING-1 per-slice groundedness emoji) and updated the
canonical separators (`// Ledger: <slug>.` drops "dissolution slugs (PR #3229):";
coproduct tag uses `·` not `—`). Updated the typescript.dag spec to add the
extdeps `// 🟡` slice marker and re-materialized the file to match canonical
output. `python3 scripts/strict_deprose_dag.py --check` → OK.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@briansrls
briansrls merged commit 6ff3a29 into main May 19, 2026
7 checks passed
@briansrls
briansrls deleted the session/loyal-bear-361 branch June 1, 2026 18:42
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