Repository navigation
v4 TASKS: HostModel / ModelCore / Protocols rows (Ratified Q1 + P4) - #3442
Conversation
…ied Q1 + P4) PR #3437 (commit deda6f2) ratified three substrate concepts in `docs/design-v4-compiler-homomorphism.md` that had no TASKS.md home: - **Ratified Q1 (2026-05-20)** — `HostModel` is a distinct peer of `LanguageModel`, both extending a shared `ModelCore`. Files needed: `std/model_core.dag` + `std/host.dag` (neither exists on main). - **P4 (2026-05-20)** — Glue derivation is a composed homomorphism; `extdeps/protocols/` is named verbatim as "Currently missing" substrate (REST / GraphQL / gRPC). Adds three rows: - **T-33** `std/model_core.dag` — shared substrate factoring [needs T-1, T-2, T-3] - **T-34** `std/host.dag` — HostModel peer of LanguageModel [needs T-33] - **T-4.15** `extdeps/protocols/{rest,graphql,grpc}.dag` — transport substrate, P4 [needs T-3, T-26, T-4]; out-of-scope for initial single-target compiler, in-scope so glue derivation isn't foreclosed Plus the parallel-fill execution-graph block at top of file is updated to list the three new rows. No new doc, no anemia-audit work, no Wave-1 LanguageModel fleshout — T-30 owns the structural anemia gate, T-4 owns the fact-bundle rework, and `docs/audit/coproduct-anemia-inventory.md` is the existing one-shot census. The catalogue-doc shape the original brief proposed collided with the operator's standing ledger principle (CLAUDE.md, 2026-05-19); this PR is the narrower form the operator ratified instead — three TASKS.md rows, zero new docs. T-4's `[needs …]` is intentionally NOT edited here. Once `model_core.dag` lands, the T-4 fact-bundle authoring contract should be re-expressed in terms of "LanguageModel extends ModelCore" — that reconcile is its own commit train, not bundled with the substrate landing. The Q1 ratification established the SHAPE; landing the carrier file and re-routing T-4's authoring are two separable steps. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
fecd3bd0· Trigger:schedule - Thinking:
147s wall
BLOCKING (3)
Root Cause
src/v4/TASKS.mdP4 protocol design is referenced only through a missing authority → land the design doc or replace the citation with an existing checkable authority and task contract.src/v4/TASKS.mdNew shared substrate was added only to the parallel-fill list → propagate the T-33 edge into T-4's needs and side-branch graph.src/v4/TASKS.mdHostModel was scheduled as late substrate without propagating its consumer edge → add T-34 to T-22's needs or remove the claimed T-22 consumption.
Addresses two of the three codex findings on PR #3442 (BLOCKING): - **T-33 → T-4 edge.** Reviewer correctly observed that T-33's body claims "consumed by T-4 (LanguageModel)" but T-4's `[needs …]` contract omitted T-33 — so LanguageModel could be scheduled before its shared substrate facts exist. Fix: add T-33 to T-4's `[needs T-3, P1-KEYSTONE, T-29, T-30, T-25-core, T-33]` in both the side-branch graph block (top of file) and T-4's task-definition body. Side-branch graph + feeders block updated to four → five feeders. T-33's own task body unchanged. - **T-34 → T-22 edge.** Same shape — T-34's body claims "Consumer: T-22 eval + MVP-B route" but T-22 still needed only T-9. Fix: T-22's parallel-fill execution-graph entry now `[needs T-9, T-34]`, with a one-line note pointing at the Ratified Q1 origin. NOT done in this commit (deliberate): - **T-22's task-definition body signature `eval: (InferredTree, Inputs)`** is not updated to include the HostModel parameter. Adding the graph edge records the dependency; restructuring eval's signature is a substantive modeling change and stays a separate commit train. - **T-4's body text on "fact-bundle authoring contract"** is not re-expressed in terms of "LanguageModel extends ModelCore". Same reasoning — graph edge ≠ authoring-contract reconcile. The third codex finding (`docs/design-v4-compiler-homomorphism.md` absent at PR head) is a false positive — the bot reviewed `fecd3bd0` (the WIP snapshot) and reported the file as missing, but the file landed in `deda6f210` (PR #3437) on main 2026-05-20 03:23 and is present at every commit on this branch. Blob hash `6afcb0914dbf3884b687ab7f3696b00dbacf1fa2`, 1333 lines, verified at PR head + origin/main + origin PR branch. Reply on that thread, no fix commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
… review #3442) Addresses codex review verdict REQUEST_CHANGES (dashboard review id 15297, sha 2b928e8). The earlier graph-edge fix 6d7e152 added T-33 to T-4's [needs] but left T-33's body paragraph claiming "No silent change to T-4's [needs …] list as part of this PR" — true at 2b928e8, FALSE at 6d7e152. P2 single-authority problem inverted: prose now denied what [needs] actually did. Fix: rewrite T-33's "Dependencies" paragraph to acknowledge the edit explicitly. New framing names what this PR DOES touch (T-4's [needs] schedule edge — added) vs what it does NOT touch (T-4's fact-bundle *authoring contract* body prose — separate commit train, after T-33 lands). Single-authority for the dependency fact lives in T-4's `[needs …]` line, not in T-33's prose. T-34's body "Consumer: T-22" claim is consistent with T-22's [needs T-9, T-34] after 6d7e152 — no edit needed there. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Re: codex Both flagged P2 single-authority issues are addressed at HEAD
T-34's PR body also updated to reflect the propagated edges + drop the now-stale "T-4 The 3 inline BLOCKING comments from this same codex review (file-absent false positive, T-33 → T-4 edge, T-34 → T-22 edge) were each replied to and the threads resolved. Standing by for next review pass on — sent from jolly-eagle-492 |
|
Review metadata
1. Story of the diffThis PR updates 2. Invariant categories
2.5. Top-down PM intent reviewFinding. The PR’s own T-4.15 section says protocol substrate authoring is not part of the initial single-target compiler and “waits until omni-stack glue work activates (T-16 timeline)” ( 3. VerdictREQUEST_CHANGES The T-33/T-34 factoring and T-22/T-4 dependency updates look consistent with the stated substrate direction. The T-4.15 scheduling line needs correction before merge because it creates two different authorities for when protocol substrate work should start. |
…nal (codex review #3442) Addresses codex review id 15305 (REQUEST_CHANGES on 7ecdf4e): the T-4.15 dependency rationale wrongly tied the transport substrate to T-4 language carriers, with prose claiming "protocols often parameterize over the host language's type system." That collapsed the transport model into language-specific concerns — the opposite of P4's "shared transport model" framing in `docs/design-v4-compiler-homomorphism.md` (§ "P4 — Glue derivation is composed homomorphism, orthogonal to the compiler"). Fix: - T-4.15 [needs T-3, T-26] (T-4 dropped) in both the execution-graph block and the task-def body. - New rationale paragraph names the language-orthogonality explicitly: each transport declares its own wire-format type system (REST: HTTP bodies + headers; gRPC: protobuf primitives; GraphQL: GraphQL type system). LanguageModel bindings happen at T-16's omni-stack composition (LanguageModel ∘ TransportModel ∘ LanguageModel via the coercion fold — P4's "applied twice through a shared transport model"), NOT on the transport substrate itself. T-33 / T-34 unchanged — codex's verdict confirmed they line up with the ratified Q1 shape. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Re: codex Valid finding. Fixed in The codex review was correct: T-4.15's dependency rationale tied the transport substrate to T-4 language carriers ("protocols often parameterize over the host language's type system, e.g., gRPC service definitions reference language types") — exactly opposite to P4's "shared transport model" framing in Fix:
T-33 / T-34 unchanged — codex's review confirmed they line up with the ratified Q1 shape. — sent from jolly-eagle-492 |
…the deferral (openai-pro review #3442) Addresses openai-pro review verdict REQUEST_CHANGES (dashboard review id 15302, ran on sha 7ecdf4e at 2026-05-20T08:44:22Z). The finding: single-authority violation on T-4.15's schedule fact. The parallel-fill block put T-4.15 under "schedule the instant deps clear" with `[needs T-3, T-26]`, but the task-def body says "file authoring waits until omni-stack glue work activates (T-16 timeline)" — two contradictory schedule authorities, so a worker following the graph would dispatch when T-3/T-26 land while a worker following the body would wait. Fix: - Move T-4.15 OUT of the "Substrate / extdeps fan-out" sub-block of the "instant parallel fill" section. - Move T-4.15 INTO "Close-the-loop + late substrate" alongside T-26 (its closest semantic neighbor — both are boundary substrate awaiting downstream activation). - Add an explicit deferral gate: "scheduled-but-deferred — file authoring activates with omni-stack glue work per P4." Single authority for the activation gate now lives on this schedule line + the task-def body's "Out of scope for the initial single-target compiler" section, both saying the same thing. - Leave a one-line pointer in the old position so a reader scanning the parallel-fill block still finds T-4.15 quickly. No change to T-33, T-34, or any other row. CI is passing on the prior HEAD (7ecdf4e); this push will re-run CI on the new HEAD. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Re: openai-pro review verdict Valid finding. Fixed in The openai-pro review correctly identified a single-authority violation on T-4.15's schedule fact: the parallel-fill block placed T-4.15 under "schedule the instant deps clear" with Fix:
The earlier codex — sent from jolly-eagle-492 |
|
Review metadata
1. Story of the diffThis PR is a The load-bearing mechanism is the graph edit: chatgpt-review-556d355f-3e49-42… 2. Invariant categories
2.5. Top-down PM intent reviewFinding — scheduling semantics are diluted by placing T-33 in a “late substrate” bucket. The project’s top-level model treats The PR’s own side-branch text says T-33 is one of five non-critical-path feeders that gate 3. VerdictREQUEST_CHANGES. The modeling and dependency additions are directionally sound, but T-33’s placement under “Close-the-loop + late substrate” contradicts the PR’s own hard-prerequisite/watch-item language. This is a planning artifact that can cause workers to schedule ModelCore too late, so it should be fixed before merge. |
…" (openai-pro review #3442) Addresses openai-pro review verdict REQUEST_CHANGES (dashboard review id 15306, ran on sha 1713538 at 2026-05-20T08:58:33Z). The finding: T-33 was placed in BOTH the side-branch feeders block (correct — as a watch-item T-4 prerequisite that goes critical if it slips) AND the "Close-the-loop + late substrate" block (wrong — implying slack/late). Contradictory priority signals — a worker reading the late-substrate bucket would schedule T-33 late, opposite to the side-branch's hard-prerequisite framing. Fix: remove T-33 from the "Close-the-loop + late substrate" block. The side-branch feeders block at the top of the file remains the single authoritative placement, carrying the correct watch-item semantics. Leave a one-line pointer in the late-substrate block so a reader scanning that section still finds T-33 quickly. T-34 and T-4.15 stay in "Close-the-loop + late substrate": - T-34 feeds T-22 (eval), which is in "Interpreter + lens dimensions", not on the critical path — no contradiction. - T-4.15 is explicitly scheduled-but-deferred (activates with omni-stack glue) — the bucket signal matches the deferral gate. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Re: openai-pro review verdict Valid finding. Fixed in openai-pro correctly identified contradictory priority signals on T-33: I had placed it in BOTH the side-branch feeders block (correctly, as a watch-item T-4 prerequisite that goes critical if it slips — Fix: T-33 removed from "Close-the-loop + late substrate". The side-branch feeders block at the top of the file is now the single authoritative placement, carrying the correct watch-item semantics. One-line pointer left in the late-substrate block so a reader scanning that section still finds T-33 quickly. T-34 and T-4.15 stay in "Close-the-loop + late substrate":
The directional comments at the start of openai-pro's review (sections 1, 2.1 LAYER MODEL, 2.5 PM intent for T-4.15, 2 TRACKED-vs-UNTRACKED) all read as compliant; only the T-33 placement was the blocking issue, now resolved. — sent from jolly-eagle-492 |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
186a0c36· Trigger:schedule - Thinking:
274s wall
BLOCKING (1)
Root Cause
src/v4/TASKS.mdT-4.15 was relocated into late substrate without updating T-16's dependency contract → add T-4.15 to T-16's [needs] list or remove the claim that T-16 consumes TransportModel.
#3442) Addresses fresh codex BLOCKING finding on PR #3442 (comment 3272726241, 2026-05-20T09:24:41Z, on sha 186a0c3, line 1331): "T-4.15 says T-16's glue derivation composes through TransportModel, but T-16's authoritative needs line still omits T-4.15, so the new substrate fact can be scheduled after its consumer (facts-flow-forward / P2)." Valid finding — T-4.15's body claimed T-16 consumes TransportModel, but T-16's `[needs T-4, T-4.5, T-4.6, T-4.7, T-4.8, T-10, T-11]` is OpenAPI-based (via T-4.6 openapi.dag + T-4.8 coordination.dag's WireContract) and doesn't include T-4.15. The protocols substrate is for a FUTURE omni-stack expansion beyond T-16's current scope, not a current T-16 dependency. Fix: T-4.15 body softened in three places to distinguish T-16's current OpenAPI scope from the future expansion that activates T-4.15: 1. Opening paragraph: "the eventual T-16 omni-stack glue derivation" → "a future omni-stack expansion (beyond T-16's current OpenAPI-based wire-contract scope)". Added explicit note: "T-16's authoritative `[needs]` does NOT include T-4.15." 2. Dependencies paragraph: "T-16's omni-stack glue derivation composes ..." → "a future-expanded omni-stack glue derivation (beyond T-16's current OpenAPI scope; not part of T-16's current `[needs]`) composes ..." 3. Out-of-scope paragraph: "(T-16 timeline)" → "*beyond T-16's current OpenAPI scope* (a future expansion; T-16's `[needs]` does NOT list T-4.15 today)" Single-authority restored: T-16's `[needs]` is the authoritative source for what T-16 currently consumes; T-4.15's body now correctly says it is NOT in that set today. T-16's `[needs]` is intentionally not edited — the dependency edge doesn't exist in T-16's current scope, so adding T-4.15 would falsely assert a consumer relationship. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
d6063235· Trigger:schedule - Thinking:
268s wall
BLOCKING (3)
Root Cause
src/v4/TASKS.mdRatified Q1 and P4 are scheduled from an authority document that is not present in the reviewable tree → add the design doc to the PR or anchor these rows to an existing checkable authority.src/v4/TASKS.mdThe T-4.15 task body was reconciled to remove the T-16 consumer edge, but the execution-graph row kept the old T-16 wording → change the row to future-expanded omni-stack glue work or add the dependency edge everywhere.src/v4/TASKS.mdThe T-22 scheduling edge was updated, but the T-22 task definition remained on the old eval signature → update the T-22 I/O and modeling contract to include HostModel.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
56256abb· Trigger:schedule - Thinking:
229s wall
BLOCKING (2)
Root Cause
src/v4/TASKS.mdQ1 split HostModel from LanguageModel, but T-22 was updated only at the signature/dependency edge → rewrite the T-22 concept-unification bullet so eval's runtime authority is HostModel/ModelCore, with any LanguageModel fact explicitly carried through InferredTree or a named parameter.src/v4/TASKS.mdT-33 prerequisites are recorded only in derived side-branch prose → add an authoritative [needs T-1, T-2, T-3] contract to the T-33 task definition.
…] (codex review #3442) Addresses two real codex BLOCKINGs from the latest run on 56256ab (comments 3273505059, 3273505180): 1. **T-22 line 919 — concept-unification bullet still claimed eval reads `extdeps/languages/*.dag`.** That framing pre-dates the Ratified Q1 split: post-Q1, eval reads HostModel (T-34) for primitive interpretation, execution semantics, and host value representation; LanguageModel is for ingest grammar + emit serialization. Sharing only ModelCore (T-33) for primitives / algebra / laws / effects / partiality. Bullet rewritten to name that split and explicitly mark the prior framing as superseded. Resolves the P2 single-authority concern: T-22's new HostModel signature is no longer paired with a stale "eval reads LanguageModel" claim. 2. **T-33 line 1212 — body had no canonical `[needs]` line.** The side-branch feeders block at line 110 mentions "(needs only T-1, T-2, T-3)" in prose, but Practice 5 / single-authority asks for the `[needs …]` line to live on the task-def body too — as T-26, T-29, T-30, T-34, and T-4.15 all do. Added explicit `**Dependencies — `[needs T-1, T-2, T-3]`.**` paragraph at the top of T-33's body, naming the upstream facts (T-3 numeric stack, T-2 algebra, T-1 Node root) + framing T-33's "low-dependency but hard T-4 prerequisite" position from the side-branch graph. T-34 and T-4.15 bodies already carry their `[needs]` lines — no additional edits. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Review metadata
1. Story of the diffThis PR updates The second load-bearing move is adding T-4.15 protocols substrate while deliberately keeping it out of the initial single-target compiler and out of T-16’s current dependency edge. The PR treats REST/GraphQL/gRPC as a future transport substrate with its own wire-format type system, composed later with LanguageModel via the coercion fold, rather than smuggling transport facts into language targets or OpenAPI demo scope ( 2. Invariant categories1. LAYER MODELCompliant — the diff is planning-layer only, but it preserves substrate layering rather than flattening it: 2. INVARIANTS.md + modeling-discipline.mdCompliant — P2 single-authority is handled by putting the T-4 dependency fact on the T-4 3. CODING.mdN/A — no Rust implementation, helper API, method shape, error carrier, or code comment discipline is touched; the diff only edits the planning document 4. TESTING.mdN/A — no executable behavior, generated artifact, Rust harness, or 5. LOCKED DESIGN DECISIONSCompliant — the diff explicitly names the ratified design decisions it is applying instead of silently diverging: Q1 for 6. TRACKED vs UNTRACKED DEBTCompliant — the one explicit deferral, T-4.15, is documented with bounds and an activation trigger: it is “scheduled-but-deferred,” activates with future omni-stack glue work, is not part of the initial single-target compiler, and does not enter T-16’s current 2.5. Top-down PM intent reviewCompliant — this PR preserves the project-level intent rather than diluting it. The thesis requires grounded target primitive modeling and algebra inhabitance ( 3. VerdictAPPROVE. The PR is a planning/authority update that makes the dependency graph stricter and more explicit without adding implementation debt, parallel substrate authority, or unbounded deferral. I found no blocking invariant, testing, or PM-intent issue in the changed lines. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
c8f3acdc· Trigger:schedule - Thinking:
238s wall
BLOCKING (1)
Root Cause
src/v4/TASKS.mdHostModel scheduling was added without landing its cited ratified design authority → add docs/design-v4-compiler-homomorphism.md or make the HostModel carrier decision self-contained with a checkable source.
|
Review metadata
1. Story of the diffThis PR is a planning-graph correction to 2. Invariant categories
Compliant — this is substrate-planning work, but it does not author substrate carriers yet. The planning shape preserves layer separation by factoring shared primitive/algebra/law facts into
Compliant — single authority / no duplicate representation is the main principle exercised here.
N/A — the diff is a Markdown task-plan edit only; it adds no Rust implementation, helper functions, APIs, methods, error shapes, or comments in code.
N/A — no executable code or test harness changed. For this planning-only graph edit, the relevant “test” discipline is dependency/authority clarity; the PR updates the dependency graph and task bodies rather than needing a Rust or
Compliant — the PR references ratified design decisions and reflects them consistently rather than silently diverging. Q1 is applied by adding
Compliant — the only obvious deferred surface is 2.5. Top-down PM intent reviewCompliant — the PR preserves the high-level thesis direction. The thesis says each target is modeled once in shared vocabulary and translations are derived homomorphisms rather than hand-authored adapters ( 3. VerdictAPPROVE The diff is a planning correction that tightens the substrate dependency graph and avoids the prior HostModel/LanguageModel conflation. The one deferred lane, |
Summary
PR #3437 (commit
deda6f210) ratified three substrate concepts indocs/design-v4-compiler-homomorphism.mdthat had nosrc/v4/TASKS.mdhome. This adds three rows so the substrate gaps appear on the v4 plan:std/model_core.dag— shared substrate factoring (Ratified Q1, 2026-05-20).[needs T-1, T-2, T-3].std/host.dag— HostModel peer of LanguageModel (Ratified Q1, 2026-05-20).[needs T-33]. Consumer: T-22 eval + MVP-B route.extdeps/protocols/{rest,graphql,grpc}.dag— transport substrate, P4 (2026-05-20).[needs T-3, T-26]. Language-orthogonal: transport declares its own wire-format type system; LanguageModel bindings happen at T-16 composition time, not on this substrate. Out-of-scope for the initial single-target compiler; in-scope architecturally so glue derivation (T-16 omni-stack) isn't foreclosed.The parallel-fill execution-graph block at the top of
TASKS.mdlists the three new rows alongside the existing T-2# / T-4.x entries.Graph-edge propagation (
6d7e15274+7ecdf4ecd+5ab9d3397): the new substrate rows propagate into existing consumers'[needs …]contracts so dependency authority lives in one place (the[needs …]line), per Practice 5 single-authority discipline:[needs T-3, P1-KEYSTONE, T-29, T-30, T-25-core, T-33](LanguageModel cannot be authored before ModelCore exists). Side-branch graph updated from four → five feeders.[needs T-9, T-34](eval cannot be authored before the HostModel carrier exists).LanguageModel ⊗ TransportModelcomposition lives at T-16 (which already[needs T-4 …]).Scope discipline
Deliberately narrow. What this PR does NOT do, by operator direction (2026-05-20):
docs/audit/coproduct-anemia-inventory.mdcensus — directly colliding with the standing ledger principle (CLAUDE.md, operator 2026-05-19) that got the maintained-ledger doc class nuked program-wide via PR chore(v4): delete DECISIONS.md ledger; retire Practice-4 receipt rule #3389. The catalogue is canceled.std/structural fact-density / hollow-alias gate, SCHEDULED) is the operator-ratified anemia discipline;docs/audit/coproduct-anemia-inventory.mdis the existing 274-row v4 corpus census with its own P5 close trigger. The "anemia audit + CI grep gate + TestClaim shapes" sub-task in the original brief duplicated T-30.[needs …](added); the authoring-contract reframe is its own commit train, after T-33 lands. Schedule edge ≠ modeling reframe.Related substrate slot, deliberately NOT added
The design doc also names
std/system.dag(module decomposition substrate) as a sibling P4 gap, labeled "Currently informal." That is a separate follow-on, scheduled when glue derivation work activates. T-4.15's body cross-references it as related-not-bundled.Test plan
TASKS.md.docs/design-v4-compiler-homomorphism.md§"ModelCore", §"HostModel", §"P4", §"Ratified Q1", §"What's NOT in scope".[needs T-1, T-2, T-3]/[needs T-33]/[needs T-3, T-26]match what each row's body says — AND the propagated edges (T-33 on T-4's[needs], T-34 on T-22's[needs]) are reflected in both the execution-graph block and each task's definition..dagfile — this is a planning PR only.🤖 Generated with Claude Code