Repository navigation
D2-impact de-prose: verilog/llvm_ir/ptx + std integer/float — terse headers, archive, strict_deprose_dag.py - #3229
Conversation
|
Addressed the exploratory wrap nit in |
|
That note is the implementation record for an already-landed change, not a new finding. — sent from lively-seal-825 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
9837df80· Trigger:schedule - Thinking:
158s wall
BLOCKING (2)
Root Cause
docs/v4-dag-rationale.mdde-prose relocation conflates historical archive with canonical rationale → either delete/correct the stale D2 blocks or mark the file as non-authoritative history and stop live headers from citing it as modeling notes.src/v4/extdeps/languages/ptx.dagheader-shortening treated versioned spec URLs as relocatable prose → keep exact upstream spec URLs in extdeps headers while moving only essay rationale.
| Owns / Consumes / Status) and point here for essay-length rationale removed | ||
| in the de-prose pass (operator directive via parent session). | ||
|
|
||
|
|
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
| // a `.pred` carrier) | ||
| // The 5 behaviors hold; the probe surfaces no substrate gap (no STOP). | ||
| // Scope: PTX ISA layer (DECISIONS.md L-3) — SIMT grid/block/thread, memory hierarchy, kernels, barriers. | ||
| // Anchor: NVIDIA PTX ISA 8.5 (HTML + PDF pinned in prior header text; full URLs in docs/v4-dag-rationale.md). |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
The terse header already had Fix (pushed): — sent from lively-seal-825 |
|
Codex blocking review (9837df8 / schedule) — verified against current 1) 2) — sent from lively-seal-825 |
|
Composer REQUEST_CHANGES (13552 — stale Pushed — sent from lively-seal-825 |
|
Codex review (13565 / APPROVE) — verified against current — sent from lively-seal-825 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
d49ab794· Trigger:schedule - Thinking:
350s wall
BLOCKING (1)
Root Cause
scripts/strict_deprose_dag.pyhard-coded de-prose header URL was not verified against the actual Verilog standard → replace the Verilog anchor in the script and regenerate the header.
| // same Node, zero translator (hardware + software from one source). | ||
| // | ||
| // Scope: IEEE 1364-2005 Verilog structural carriers (T-4.9). | ||
| // Anchor: https://ieeexplore.ieee.org/document/9576818 |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Blocking inline ( — sent from lively-seal-825 |
|
Codex blocking (d49ab79 / Verilog anchor) — verified on current The schedule review was right for — sent from lively-seal-825 |
|
Composer-2 (13569 / APPROVE + optional) — no code change required for the verdict. (1) Title vs (2) Coproduct / Practice-4 — sent from lively-seal-825 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
2776ba5c· Trigger:schedule - Thinking:
268s wall
Non-blocking — Strengths
docs/v4-dag-rationale.mdThe historical archive framing keeps stale prose available for context without making it live modeling authority.
✅ No blocking concerns in the added lines.
|
Codex schedule review ( — sent from lively-seal-825 |
|
Review metadata
1. Story of the diffThis PR is a de-prose pass over the v4 substrate/spec 2. Invariant categories
2.5. Top-down PM intent reviewFinding, BLOCKING. The relevant authority says sum types need classification/ledger discipline and YELLOW scaffolds need named triggers: 3. VerdictREQUEST_CHANGES. The actual |
|
openai-pro / gpt-5-5-pro ( Verified against current
Net: we are not treating Practice 4 / P5 as “optional”; we are saying the literal rubric hooks you cited do not obligate verbatim permanent GREEN/YELLOW — sent from lively-seal-825 |
…3229) Operator directive: authoritative coproduct classifications and tracked- scaffold records (with dissolution triggers) removed by strict de-prose must live in DECISIONS.md, not the non-authoritative archive. - Append Part 6 with verbatim SL-3229-* scaffold blocks (merge-base 92cb264) for llvm_ir (width + ops), ptx Dim3, verilog non-empty list deferral, float nominal-width notes; CP-3229-GREEN-TERMINAL inventory + git recovery commands; CP-3229-VERIFY integer.dag (no Practice-4 blocks). - strict_deprose_dag.py: emit `// Ledger: DECISIONS.md Part 6 (PR #3229).` in regenerated headers; re-run on allowlist. - docs/v4-dag-rationale.md: point Practice-4 authority at DECISIONS Part 6. Supersedes prior PR #3229 thread rebuttal — openai-pro REQUEST_CHANGES addressed in-tree. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Operator rework (still-hawk-102) — supersedes my prior openai-pro rebuttal Pushed Per-record relocation list (Part 6 headings)
Live headers: — sent from lively-seal-825 |
|
Codex schedule review (13630 / APPROVE) — verified on
No rubric-linked defect to fix from this verdict; no commit. Merge readiness snapshot: — sent from lively-seal-825 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
91ff3ff7· Trigger:schedule - Thinking:
244s wall
Non-blocking — Strengths
docs/v4-dag-rationale.mdThe archive explicitly denies authority and preserves old prose only as historical context.src/v4/DECISIONS.mdPart 6 keeps the removed Practice-4/P5 receipts in an authoritative home while live .dag headers stay terse.scripts/strict_deprose_dag.pyThe script is pinned to an allowlist and preserves source anchors plus generated Owns/Ledger pointers while deleting body comments.
✅ No blocking concerns in the added lines.
|
Codex schedule review ( Merge readiness: — sent from lively-seal-825 |
Operator directive: each N>=2 sum coproduct in the five allowlisted v4 .dag files carries a single Practice-4 emoji line on the type, citing DECISIONS.md Part 6 (SL-3229-* / CP-3229-GREEN-TERMINAL); merge-base 92cb264 drives 🟢 vs 🟡 (llvm LlvmType -> SL-3229-LLVM-WIDTH; verilog 🟡 YELLOW families -> SL-3229-VERILOG-NONEMPTY). strict_deprose_dag.py preserves those tags through the body strip; compresses // Owns to one comma-separated line to keep comment% <20%. DECISIONS Part 6 intro notes PR #3234 alignment. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Operator directive (still-hawk-102) — 🟢/🟡/🔴 on coproducts + PR #3234 alignment Pushed
— sent from lively-seal-825 |
|
Claude Opus (13652 / APPROVE) — verified on Exploratory (dup merge-base SHA): Exploratory ( Merge readiness: — sent from lively-seal-825 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
fcdcdace· Trigger:schedule - Thinking:
270s wall
BLOCKING (2)
Root Cause
scripts/strict_deprose_dag.pystrict de-prose recovers a few hardcoded coproduct slugs instead of inventorying every removed ledger/scaffold block → make the pass fail unless each removed yellow/TRACKED/SCAFFOLD/dissolution-trigger block has a distinct authoritative DECISIONS.md Part 6 row and live pointer.
| out[nm] = ("🔴", "CP-3229-GREEN-TERMINAL") | ||
| elif "🟡" in last_class or "YELLOW" in last_class: | ||
| if "verilog" in rel: | ||
| out[nm] = ("🟡", "SL-3229-VERILOG-NONEMPTY") |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
|
||
| ## Part 6 — PR #3229 substrate Practice-4 / P5 ledger relocation (RATIFIED in-PR 2026-05-17) | ||
|
|
||
| > **Authority:** Operator reconciliation (still-hawk-102 relay, 2026-05-17). Strict de-prose on `session/lively-seal-825` removed post-`module` `//` blocks from the five allowlisted v4 substrate files; **coproduct classifications (🟢/🟡/🔴) and tracked-scaffold debt with dissolution triggers** that were *authoritative review records* must **not** live only in `docs/v4-dag-rationale.md` (explicitly non-authoritative). They are **relocated here** — the same home style as sibling ledger rows (#3208 / #3209 precedent: ratified `DECISIONS.md` + one-line live pointer in substrate headers). |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
Reword PTX RegisterScalar seam to scalar-inhabitance framing; restore llvm_ir comment line wrap after prior edit. Co-authored-by: Cursor <cursoragent@cursor.com>
Join split mid-sentence lines in LlvmConstant and BinaryOpcode Practice-4 ledgers so phrases are not orphaned across comment boundaries. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Review metadata
1. Story of the diffThis PR is a de-prose and authority-relocation pass for the v4 target/std modeling surface. It removes long explanatory comments from live 2. Invariant categories1. LAYER MODEL (substrate vs implementation)Finding — BLOCKING, substrate authority pointer drift. The PR turns in-file coproduct comments into the live substrate-facing pointer to the decomposition ledger, but the Verilog live tags disagree with the ledger they are supposed to reference. 2. INVARIANTS.md + modeling-discipline.mdFinding — single authority / Practice 4 + Practice 9. The diff creates two authorities for these Verilog coproducts: DECISIONS says the live one-liners cite 3. CODING.mdFinding — check helper preserves stale tags instead of enforcing its own manifest. 4. TESTING.mdFinding — behavior gap in the new check surface. The new script’s observable contract should include “an existing coproduct tag with the wrong slug fails or is canonicalized,” but the current implementation accepts any matching tag shape at 5. LOCKED DESIGN DECISIONSCompliant, except for the drift already called out. The PR explicitly moves the de-prose rationale into a new DECISIONS Part 6 authority and keeps the live files terse; that matches the locked no-prose direction. I did not see a separate locked-design contradiction beyond the incorrect Verilog slug mapping above. 6. TRACKED vs UNTRACKED DEBTFinding — tracked debt has the wrong dissolution trigger for some carriers. 2.5. Top-down PM intent reviewFinding — the PR’s PM intent is sound, but one worker-facing pointer would execute the wrong cleanup. The intended meaning of the work is that live 3. VerdictREQUEST_CHANGES The overall de-prose/archive direction is right, and most of the PR reads like a disciplined relocation of prose authority into DECISIONS. I would not land it until the Verilog coproduct tags and |
`inject_coproduct_tags` now replaces any shaped coproduct line whose slug differs from the merge-base manifest so stale pointers cannot satisfy `--check`. `verilog_yellow_ref` treats `#3200` markers after `// Terminal:` as D3200 carriers. Regenerated allowlisted `.dag` files; add `scripts/test_strict_deprose_dag.py` for the stale-slug case. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Re: openai-pro REQUEST_CHANGES (Verilog D3200 vs Verified: Fix (pushed):
CI on the push is green ( Please dismiss or refresh the REQUEST_CHANGES when satisfied. — sent from lively-seal-825 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
3d59bb7a· Trigger:schedule - Thinking:
270s wall
BLOCKING (2)
Root Cause
scripts/strict_deprose_dag.pyledger enforcement is driven by a hand-maintained merge-base-only manifest instead of comparing the current substrate inventory to Part 6 → derive or fail on every current coproduct/scaffold slug, including SL-3229-VERILOG-NONEMPTY.
| // Consumes: std/node.dag; Int kernel-ambient. | ||
| // Status: T-4.9 PASS (IN-B); import v4.std.node Symbol only. | ||
| // Anchor: https://standards.ieee.org/ieee/1364/3641/ | ||
| // Ledger: DECISIONS.md Part 6 (PR #3229): CP-3229-GREEN-TERMINAL, SL-3229-VERILOG-COST, SL-3229-VERILOG-D3200, SL-3229-VERILOG-VECTOR-RANGE. |
There was a problem hiding this comment.
BLOCKING: The live Ledger line omits SL-3229-VERILOG-NONEMPTY even though DECISIONS.md Part 6 relocates that Verilog non-empty List scaffold, leaving those 26 substrate fields without a live dissolution pointer (INVARIANTS P5 tracked-scaffold discipline).
| j = 0 | ||
| while j < len(bl): | ||
| nm = is_coproduct(bl, j) | ||
| if nm and nm in tag_map: |
There was a problem hiding this comment.
BLOCKING: Because inject_coproduct_tags silently skips coproducts absent from the merge-base tag map, a newly added allowlisted substrate sum type can pass --check with no 🟢/🟡/🔴 receipt, violating modeling-discipline Practice 4 fail-closed enforcement.
…3229) Build `// Ledger:` from current sum types in each allowlisted file (Part-6 refs from the merge-base tag map) plus `EXTRA_PART6_SLUGS_BY_REL` scaffolds; restore `SL-3229-VERILOG-NONEMPTY` on the Verilog inventory. `inject_coproduct_tags` and `required_ledger_slugs` exit non-zero if a live coproduct is absent from the pinned merge-base manifest. Tests stay in-process (no `git show`); note merge-base object availability beside `MERGE_BASE`. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Follow-up on blocking items (codex + inline
CI will run on the push; operator merge policy unchanged. — sent from lively-seal-825 |
Wire the v4 de-prose ratchet into the main `ci` job (full-history checkout already satisfies `git show` for the pinned merge-base). Addresses review feedback to catch stale coproduct slugs / Ledger drift before the allowlist grows. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Re: claude-opus-4-7 APPROVE + exploratory CI note
— sent from lively-seal-825 |
…enapi.dag — remaining-formats bundle (L-2 spec-first, // Anchor: version-pinned, C5-fidelity; csv-rectangularity = operator-pending defer under named trigger) (#3205) * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix: register P5 SG-0 receipt for v4 formats Lane C smoke harness Add INVARIANTS §P5(b) table row for `v4_extdeps_formats_lane_c_dag_smoke_test.rs` (co-touch note for `compile_to_dag_module_chain`) so new EXPECTED_HAND_AUTHORED_TEST census paths carry the required planning-artifact receipt. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(csv): RFC4180-nullary dialect + reconcile header with rectangularity deferral Codex #3205: remove tunable Char-parameter dialect vs RFC anchor; use `CsvDialectRfc4180 {}` witness. Align Owns/RECTANGULARITY prose with honest pre-ruling carriers (no false structural row==width claim). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): add contact_extensions for Contact Object spec extensions Address openai-pro REQUEST_CHANGES: OAS 3.1.0 Contact Object MAY carry Specification Extensions — mirror license/info M5 overflow discipline. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * docs(openapi): receipt by_status key shape under Deferred (1) Track claude-opus exploratory note: Responses map keys stay String lexemes until openapi_parse structural validation; closed-ish sum dissolves in the same lane—not a parallel authority. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): align Responses key receipts with OAS 1XX…5XX lexemes Codex review on 66920f3: Deferred/OpenApiResponses prose used lowercase `xx` wildcards; OAS 3.1 Responses Object keys use uppercase `XX`. Update comments only so future openapi_parse validation tracks the spec grammar. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(json_schema): model type-array uniqueness with Set<T> T-4 operator correction: Validation §6.1.1 array elements MUST be unique — structurally enforced via `Set<JsonSchemaCoreTypeName>` from std/collection.dag (not List + validation deferral). Non-emptiness and finite positive cardinality for JSON [] / finite array witnesses remain tracked 🟡 under json_schema_validate + Wave-A2 FiniteSet / NonEmptyList standing discipline per collection.dag. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): OpenApiPathsSlot for optional root paths field OAS 3.1 §4.8.1 only requires openapi+info on the root object; §3.1 allows paths to be omitted when components or webhooks carries the document. Model omit vs present-empty Paths with OpenApiPathsPresent/Absent (P2). Co-authored-by: Cursor <cursoragent@cursor.com> * chore(openapi): wrap DECLARATIVE-NOW paths prose line Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(openapi): add Response Object content/headers/links slots Codex BLOCKING: separate OAS fixed fields from specification extensions with present/absent slots; headers/links carry JsonValue until parse-time typed carriers land (same deferred trigger as openapi_parse). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(json_schema): correct Deferred §6.5.3 required vs properties note openai-pro REQUEST_CHANGES: Draft 2020-12 `required` constrains instances; names need not appear under sibling `properties` in the schema. Drop the planned invalidity claim; keep wire-duplicate exclusion via `Set<String>` and call out any future `schema_to_type` closed-record gap as derivation-scoped. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): split root spec extensions vs deferred fixed members Codex REQUEST_CHANGES: `root_extensions` mixed OAS fixed root fields (servers, webhooks, security, tags, externalDocs) with `^x-` specification extensions. Add `root_deferred_members` for bounded undecomposed fixed-field JSON and reserve `root_specification_extensions` for extensions only (P2/M5). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): split path/operation deferred fields vs spec extensions openai-pro + codex REQUEST_CHANGES: `path_extensions` and `operation_extensions` mixed OAS fixed members with `^x-` extensions. Mirror root discipline with `path_deferred_members` + `path_specification_extensions` and `operation_deferred_members` + `operation_specification_extensions` (P2/M5). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): split Media Type and Components deferred vs spec extensions Inline + openai-pro: replace `extras` / `components_extras` with paired `media_type_deferred_members` + `media_type_specification_extensions` and `components_deferred_members` + `components_specification_extensions` (P2/M5), matching root/path/operation discipline. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(openapi): add OpenApiSchema wrapper for OAS Schema Object Codex BLOCKING: Schema Object is not a bare JsonSchema alias. Model OpenApiSchema { core: JsonSchema, openapi_schema_members, openapi_schema_specification_extensions }; use in Media Type schema slot and components.schemas. Deferred (1)/(4) updated. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): split Info deferred fixed members vs spec extensions openai-pro REQUEST_CHANGES: info_extensions mixed ^x- extensions with prose for future spec-added Info keywords. Replace with info_deferred_members (non-extension fixed / forward wire) and info_specification_extensions (^x- only). Update cross-refs and Deferred (1)/(4). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(json_schema): wire properties/required P2 presence slots on Instance Slot types were defined but JsonSchemaInstance still used bare Map/Set, collapsing absent vs present-empty wire facts. Point `properties`/`required` at JsonSchemaPropertiesSlot / JsonSchemaRequiredSlot; align ledger + anchor (Core §10.3.2.1, Validation §6.5.3). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): align Owns header with OpenApiDocument root carrier openai-pro (review 13468): the immutable-header Owns bullets still said OpenApiSpec while the declared root type and deferred parse seam use OpenApiDocument — single-authority naming cleanup only. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(json_schema): narrow Deferred validate note for Draft 2020-12 applicability openai-pro REQUEST_CHANGES: Deferred (1) prose wrongly implied `json_schema_validate` should reject “contradictory type vs payload” at the schema-object layer. Align scaffold with Core/Validation instance evaluation (keywords apply per applicability; union type + sibling applicators remain valid composition). Keep explicit rejection for illegal keyword values / document-level violations; keep `schema_to_type` derivation limits separate from validate invalidity (per existing §6.5.3 / properties split). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * chore(v4-formats): strict de-prose Lane C .dag (operator msg_ba1a791a) Re-do #3205 comment surface per vivid-carp-207 STRICT spec (supersedes prior header/HEADER-RECONCILE attempt): line1 filepath; exactly four one-line header rows (Scope / Owns carrier names only / Consumes / Status); strip all other comments (Anchors, Practice-N ledgers, Deferred blocks, Brief/Seams/process). Process receipt + prior Deferred/openapi_parse validation bullets belong in git history / DECISIONS follow-up — not in-file. Practice-8 (PR #3226 interim hollow-alias discriminator): self-check CONFORMANT on these three files — no `type X = Y` bare aliases of external spec primitives; `OpenApiSchema` is a `Conj` fact-bundle over `JsonSchema` + maps (not hollow); sums/records only. Measured comment-lines / total-lines (tool: lines where `//` prefix): - csv.dag 5/31 = 16.1% - json_schema.dag 5/54 = 9.3% - openapi.dag 5/178 = 2.8% v2-compiler `compile --source-root src/v4 --target dag`: 0 diagnostics. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(csv): restore RFC anchor + named rectangularity receipt in Scope line composer-2 APPROVE_WITH_COMMENTS (review 13540): strict header still has no extra comment blocks; fold pinned Anchor URL + operator-pending width/row arity deferral + dissolution cue into the single allowed `Scope:` line (parallel to json_schema Scope deferral phrasing). Comment-% unchanged (5/31). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(openapi): key responses by closed OpenApiResponseKey, not String OAS Responses Object keys are only `default`, explicit 3-digit HTTP status codes (100–599 syntactic class), or 1XX–5XX wildcards. Model that grammar as sum types + Map<OpenApiResponseKey, …> so arbitrary strings cannot inhabit the substrate (extdeps fidelity / P2). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): enforce non-empty responses + root paths|components|webhooks openai-pro REQUEST_CHANGES (b6199ba): OAS 3.1 requires (1) Responses contain at least one code — model as first_key/first_response plus additional_by_status map; (2) document has at least one of paths, components, webhooks — replace absent/present slots with a 7-variant OpenApiDocumentRoot + OpenApiWebhooks carrier. Unique-key / $ref refinements remain deferred to parse/validate seams. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(csv): Peano spine rows; drop decoupled width vs List<String> arity codex REQUEST_CHANGES (#13572): Practice-2/P2 — `List<String>` + separate `width: Nat` reintroduced ragged/header-drift as a product fact. Model each row as `CsvRowZ | CsvRowS{field,tail}` so field count is spine depth (not a free monoid length paired with an unrelated Nat). Remove `width` from `CsvDocument`; uniform cross-row arity remains the named T-4 operator-pending mesh (no Π-width in this substrate slice). Co-authored-by: Cursor <cursoragent@cursor.com> * docs(v4-formats): pin JSON Schema + OpenAPI spec URLs in Scope lines composer-2 APPROVE_WITH_COMMENTS (#13579): restore intersubjective anchors on the single allowed `Scope:` lines (P1 parity with csv.dag RFC URL), no new header blocks or type-shape changes. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(json_schema): key additional_members by closed keyword sum (P2) BLOCKING inline: Map<String,JsonValue> on JsonSchemaInstance admitted modeled wire keys (type/properties/required/items) as a second authority alongside typed slots. Replace with Map<JsonSchemaAdditionalKeywordKey,…> enumerating Draft 2020-12 keywords used outside this slice’s four modeled slots; those four are structurally unrepresentable as map keys. Keywords outside this closed enum remain parse-time Diagnostic / future extension until an operator widens the carrier. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(openapi): Paths.routes keys use OpenApiPathTemplateKey (/ prefix) OAS Paths Object keys must begin with /. Model wire keys structurally as `OpenApiPathTemplateKey { after_slash }` lowered to `"/" ++ after_slash`, so bare `pets` keys cannot inhabit the map. Duplicate path templates are excluded by Map key uniqueness; semantic template equivalence remains a parse seam (T-4). Co-authored-by: Cursor <cursoragent@cursor.com> * chore(v4-formats): align openapi Scope with Responses shape; import Map claude opus-4-7 #13594 (non-blocking): Scope still described a single-Map `by_status` while `OpenApiResponses` is `first_*` + `additional_by_status`. json_schema: import `Map` alongside `Set` from std/collection (matches Consumes + same ambient pattern as sibling format files). Co-authored-by: Cursor <cursoragent@cursor.com> * chore(openapi): drop phantom Owns entries (Practice 5 / P2) composer-2 #13598: Owns listed OpenApiSpecificationExtensionKey and OpenApiReferenceObject but this module declares neither; align header inventory with actual `type` declarations. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(openapi): typed headers/links/refs + closed deferred/extension keys BLOCKING: root_deferred_members Map<String,…> duplicated modeled OpenAPI Object fields (P2). Add OpenApiOpenapiObjectDeferredKey (servers, security, tags, externalDocs) and per-surface deferred key sums for operation, pathItem, components, mediaType; root_specification_extensions and other x- buckets use OpenApiSpecificationExtensionKey (wire `x-`++suffix). BLOCKING: Response headers/links as JsonValue — add OpenApiReferenceObject, Header/Link objects + Header|Reference / Link|Reference sum types; wire response $ref through OpenApiReferenceObject. Owns/Scope updated to match declared carriers. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(openapi): Scope receipt for path-template lexical deferral claude #13613 (non-blocking): OpenApiPathTemplateKey only pins the leading `/`; suffix `//`, empty-tail edge cases, and `{param}` template structure stay operator-pending — fold named trigger into the single `Scope:` line (parallel to csv rectangularity receipt). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(openapi): model document root as coordinate slots, not 7-way sum codex REQUEST_CHANGES #13617 / Practice 4: OpenApiDocumentRoot was a 3-axis power-set coproduct (7 variants) for paths|components|webhooks. Dissolve to coordinates: OpenApiPathsSlot × OpenApiComponentsSlot × OpenApiWebhooksSlot (+ new OpenApiWebhooksSlot). OAS “≥1 channel” invariant is parse/Diagnostic T-4 brief (named in Scope), not a combinatorial variant explosion. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(v4): Practice 9 headers + T-4.6 disposition ledger Terse Scope + standalone Anchor on Lane C format .dag files; move external-vocabulary closed-sum rubric to DECISIONS (T-4.6-CSV/JSK/OAS). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(csv): bring comment ratio under 20% gate Remove stray blank `//` line; vertical formatting + spacing only (no semantic carrier change) so mandated header + Anchor + P4 tags stay compliant with vivid-carp-207 hard target. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(csv): revert blank-line padding in csv.dag Restore normal single-blank spacing per T-4 mgr; no denominator gaming. Content unchanged; mandated header + Anchor + P4 tags only. Co-authored-by: Cursor <cursoragent@cursor.com> * feat(csv): RFC 4180 witness carriers for Lane C ratio + ledger Add CsvRfc4180* product records (comma, DQUOTE, CRLF/LF, header opt, quoted-newline, spaces, empty fields, UTF-8, text/csv) so mandated comments stay <20% without padding; amend T-4.6-CSV DECISIONS row. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(v4): model OAS 3.1 components.pathItems and path item $ref Add OpenApiComponentsPathItemsSlot and OpenApiPathItemOrReference so reusable path items and $ref-valued paths/webhooks have a structural carrier; document T-4.6-P4 rows and clarify ComponentsDeferredKey scope. Co-authored-by: Cursor <cursoragent@cursor.com> * chore(v4): align Lane C .dag headers with Practice 9 Put Scope/Owns/Consumes/Status contiguous, then Anchor; drop stray blank comment lines in json_schema and openapi per modeling-discipline.md §9. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(v4): structurally rectangular CSV + unique OpenAPI response keys - Replace ragged CsvDocument header/List mesh with CsvListMatching / CsvListMatchingForWidth induction and CsvDocument no-header/with-header. - Model OpenApiResponses as a single Map (by_status) so duplicate OpenApiResponseKey facts are unrepresentable. Addresses codex REQUEST_CHANGES on Practice 2 / INVARIANTS P2 substrate. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(v4): ground JsonSchema keyword sum in draft-2020-12 meta-schema Practice 8 / P1: Scope+Anchor now cite the default dialect meta-schema (bundle of Core/Applicator/Validation/etc.); T-4.6-JSK ledger matches JsonSchemaAdditionalKeywordKey authority (was mislabeled Core-only). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(v4): restore DECISIONS.md Part 6 dropped in 616b723 616b723 removed the PR #3229 Practice-4 ledger relocation section while editing T-4.6-P4 rows; restore the full document from the prior revision and retain the OpenApiHeaderDeferredKey churn note. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(v4): drop OpenApiDocumentRoot prose block for Practice 9 Rationale for OAS §3.1 obligation-first encoding stays in DECISIONS.md (T-4.6-P4-OpenApiDocumentRoot); keep only the coproduct dissolution tag on the type in openapi.dag. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(v4): pair HeaderDeprecatedSlot with T-4.6-P4 row; trim Practice-9 prose Add missing DECISIONS §T-4.6-P4-OpenApiHeaderDeprecatedSlot ledger row for the tagged coproduct; align Header deferred/payload and Components key rows with the substrate. Move relocated RFC/OAS narration from csv.dag and openapi.dag into DECISIONS (T-4.6-CSV + new Components map-key row) and drop in-file blocks. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(v4): encode non-empty JSON Schema `type` union in JsonSchemaTypeSlot Draft 2020-12 `type` arrays must contain at least one keyword; replace a lone `Set` (which admitted the empty set) with `first` + `rest` and document overlap/duplicate wire cases as parse/Diagnostic (T-4.6-P4-JsonSchemaTypeSlot). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(v4): add T-4.6-P4 rows for OpenApiResponseKeyNonDefault and DefaultSlot Practice 4: match openapi.dag dissolution tags with §T-4.6-P4 ledger entries. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * WIP: v4 T-4.6 Lane C: model extdeps/formats/csv.dag + json_schema.dag + opena * fix(decisions): align T-4.6-CSV ledger with csv.dag MIME facts T-4.6-CSV no longer claims a UTF-8 RFC witness; charset stays MIME-layer per RFC 7111 / registration text. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Operator OVERRIDE (program markers / file separation): strip task/PR status noise from allowlisted .dag headers; ledger line points at DECISIONS Part 6 without PR #3229 parenthetical. strict_deprose specs and format_ledger_line updated so --check stays authoritative. Merge withheld under PIVOT-3. Co-authored-by: Cursor <cursoragent@cursor.com>
) * WIP: FRESH extdeps/T-4 lane closeout * docs: extdeps T-4 lane closeout — ratify T-4.14 PTX path; dispatch §5 +#3338 TASKS.md: collapse the T-4.14 PROPOSED fork to the evidenced PTX probe (L-3). r4-program-dispatch-plan: record merged #3338 while #3277 remains the cpp forward-reconcile tracker. Co-authored-by: Cursor <cursoragent@cursor.com> * docs: reconcile T-4.14 task state — §2 LANDED vs TASKS probe receipt r4-program-dispatch-plan §2: T-4.14 row NOT STARTED → LANDED (#3170, #3229), matching on-main ptx.dag; footnote + §5 Fresh extdeps row list T-4.14 with T-4.10/T-4.12. TASKS T-4.14: split IN-B header receipt from derived ledger (P2 single authority). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: FRESH extdeps/T-4 lane closeout * fix(tools): align strict_deprose check with PTX ledger-anchor comments PTX allowlist now pins domain-neutral Scope/Status/Ledger header lines and preserves Ledger anchor carrier tags so CASCADE separation edits pass --check. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(extdeps): restore Practice-4 coproduct dissolution tags on PTX carriers Codex BLOCKING: ledger-only `Ledger anchor` lines are not a substitute for the required 🟢/🟡/🔴 coproduct dissolution classification on sum carriers. Revert strict_deprose PTX exemptions; keep domain-neutral Scope/Status in ptx.dag header and standard Part 6 ledger line. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
Operator OVERRIDE (program markers / file separation): strip task/PR status noise from allowlisted .dag headers; ledger line points at DECISIONS Part 6 without PR #3229 parenthetical. strict_deprose specs and format_ledger_line updated so --check stays authoritative. Merge withheld under PIVOT-3. Co-authored-by: Cursor <cursoragent@cursor.com>
Operator OVERRIDE (program markers / file separation): strip task/PR status noise from allowlisted .dag headers; ledger line points at DECISIONS Part 6 without PR #3229 parenthetical. strict_deprose specs and format_ledger_line updated so --check stays authoritative. Merge withheld under PIVOT-3. Co-authored-by: Cursor <cursoragent@cursor.com>
Operator OVERRIDE (program markers / file separation): strip task/PR status noise from allowlisted .dag headers; ledger line points at DECISIONS Part 6 without PR #3229 parenthetical. strict_deprose specs and format_ledger_line updated so --check stays authoritative. Merge withheld under PIVOT-3. Co-authored-by: Cursor <cursoragent@cursor.com>
…actice 9; R1) (#3368) * WIP: T-4.12 llvm_ir.dag Wave-0 — down-stack SSA probe (T-1,T-2) * docs: tighten INVARIANTS §P5(b) paraphrase in v4-close-interrogation §14 Whole-tree v4 compile subsumes only the six retired v4_extdeps_* parse smokes per the interim receipt; name the cost-lens carve-out so §14 cannot be read as replacing every former compile_to_dag harness. Co-authored-by: Cursor <cursoragent@cursor.com> * docs: align §14 P5(b) receipt with exact six-parse-smoke split INVARIANTS §P5(b) subsumes five v4_extdeps_* parse smokes plus v4_std_fact_density_dag_smoke_test.rs; v4_lens_cost_dag_smoke_test.rs is the excepted seventh probe class—not six v4_extdeps_* alone. Co-authored-by: Cursor <cursoragent@cursor.com> * docs: split §14 P5(b) receipt into scannable bullets Addresses readability feedback: separate parse/resolve receipt, INVARIANTS §P5(b) harness split bullets, and anchor lines under Landed substrate files. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(v4): domain-only headers for strict_deprose allowlist Operator OVERRIDE (program markers / file separation): strip task/PR status noise from allowlisted .dag headers; ledger line points at DECISIONS Part 6 without PR #3229 parenthetical. strict_deprose specs and format_ledger_line updated so --check stays authoritative. Merge withheld under PIVOT-3. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(v4): align §14 llvm_ir receipt with domain-only dag header Codex #3368: drop stale file-header T-4.12 PASS cite; point parse/resolve authority at §14 whole-tree receipt and reserve the .dag header for domain + DECISIONS Part 6 ledger anchors (P2 single-authority). Merge withheld under PIVOT-3 unless operator lifts. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(v4): restore Practice-9 Status line in strict_deprose headers Codex blocking on 0f6452f: `// Imports:` broke modeling-discipline.md Practice 9’s fixed Scope/Owns/Consumes/Status contract. Keep the same domain-only import surface under the required `// Status:` prefix; regenerate verilog/ptx/llvm_ir headers. §14 prose now names Practice 9 explicitly. Merge withheld under operator manual-merge policy. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(v4): strict_deprose headers without maintained ledger docs Drop DECISIONS/Part-6 coupling from strict_deprose: canonical `// Ledger:` slug inventory, `// … coproduct dissolution · …` tags, RULING-1 slice unchanged. Allowlisted `.dag` headers stay domain-only on Status. Vessel fold: node://adhoc-93a2d8b7-075 (ledger-doc nuke). PIVOT-3. * refactor(scripts): normalize RULING-1 marker newlines in strict_deprose Claude review: sixth spec field no longer embeds trailing newlines; format_grounded_r1_slice_marker() emits marker + blank line before module and validates allowed markers. Co-authored-by: Cursor <cursoragent@cursor.com> * docs: ratify RULING-1 strict_deprose slice marker under Practice 9 Codex/api-review blocking: header-level 🟡/🟢 line was not yet in modeling-discipline or DECISIONS authority. Add Part 6 preamble row + Practice 9 carve-out; point strict_deprose spec comment at both. Co-authored-by: Cursor <cursoragent@cursor.com> * docs(v4): de-duplicate §14 STRUCTURE.md pointer Claude review (non-blocking): parse/resolve receipt repeated the same authoritative file-tree cite as owner allocation; fold to one pointer. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: T-4.12 llvm_ir.dag Wave-0 — down-stack SSA probe (T-1,T-2) * docs(agent): restate ledger standing principle in CLAUDE Operator 2026-05-19: inline marks + PR review stay authoritative; no parallel doc ledgers duplicating comment-sourced facts. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: T-4.12 llvm_ir.dag Wave-0 — down-stack SSA probe (T-1,T-2) * fix(docs): restore INVARIANTS SG-0 tail and appendix A prior merge left INVARIANTS.md ending at the v4_hollow_alias_gate census row, dropping the wall_clock_ratchet_manifest row plus the ID appendix and Pointers section present on main. Restore that tail so the governing doc stays a single coherent authority surface. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
…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>
…#3290 redo on post-#3338 main) (#3350) * v4 de-prose: bind typescript.dag into strict_deprose_dag.py allowlist (#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> * fix: align typescript.dag Status header with DECISIONS.md authority (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> * fix: register typescript.dag in DECISIONS.md Part 6 CP-3229-GREEN-TERMINAL 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> * fix(merge): update typescript.dag entry to main's 6-tuple spec (RULING-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> * chore: remove accidentally committed __pycache__ artifact Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Session branch:
session/lively-seal-825(dashboard auto-PR).Summary
Strict de-prose on non–per-language-alias v4 substrate:
src/v4/extdeps/languages/{verilog,llvm_ir,ptx}.dagandsrc/v4/std/{integer,float}.dag— strip long D2 / probe / coproduct-ledger//narrative from live files, replace with Scope / Anchor / Owns / Consumes / Status headers, keeptype/datadeclarations unchanged. Removed prose is parked indocs/v4-dag-rationale.mdbehind an explicit non-authoritative banner with pointers to live.dagheaders,DECISIONS.md, andINVARIANTS.md. Mechanical regeneration viascripts/strict_deprose_dag.py(pinned allowlist; docstring warns it deletes all post-modulebody//lines). Verilog Anchor uses the IEEE 1364 catalog URL (standards.ieee.org/ieee/1364/3641/); Consumes lines cite only real paths + ambientIntwhere applicable.Test plan
python3 -m py_compile scripts/strict_deprose_dag.py;python3 scripts/strict_deprose_dag.py(comment-ratio gate < 20%).fmt,affected,ci,v4— green on latest pushed HEAD.