Skip to content

v4 TASKS: HostModel / ModelCore / Protocols rows (Ratified Q1 + P4) - #3442

Merged
briansrls merged 11 commits into
mainfrom
session/jolly-eagle-492
May 20, 2026
Merged

briansrls merged 11 commits into
mainfrom
session/jolly-eagle-492

Conversation

@briansrls

@briansrls briansrls commented May 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

PR #3437 (commit deda6f210) ratified three substrate concepts in docs/design-v4-compiler-homomorphism.md that had no src/v4/TASKS.md home. This adds three rows so the substrate gaps appear on the v4 plan:

  • T-33 std/model_core.dag — shared substrate factoring (Ratified Q1, 2026-05-20). [needs T-1, T-2, T-3].
  • T-34 std/host.dag — HostModel peer of LanguageModel (Ratified Q1, 2026-05-20). [needs T-33]. Consumer: T-22 eval + MVP-B route.
  • T-4.15 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.md lists 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:

  • T-4 now [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.
  • T-22 now [needs T-9, T-34] (eval cannot be authored before the HostModel carrier exists).
  • T-4.15 is NOT a T-4 consumer — language-orthogonality per P4. The LanguageModel ⊗ TransportModel composition 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):

  • No new doc. A "v4 modeling work catalogue" was proposed in the original dispatch brief; it would have re-aggregated facts whose source-of-truth is inline marks + TASKS.md + the existing docs/audit/coproduct-anemia-inventory.md census — 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.
  • No anemia-audit work. T-30 (std/ structural fact-density / hollow-alias gate, SCHEDULED) is the operator-ratified anemia discipline; docs/audit/coproduct-anemia-inventory.md is 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.
  • No Wave-1 LanguageModel fleshout dispatch. T-4 owns that on its own feeder chain. The fact-bundle reseed discipline is already operator-ratified 2026-05-17.
  • No framework-as-library work. "FastAPI / SQLAlchemy / Vue / Tailwind" framework targets are out of scope per T-4's existing "model SPECIFICATIONS, not libraries" contract.
  • T-4 fact-bundle authoring contract body prose is intentionally not re-expressed in terms of "LanguageModel extends ModelCore". The schedule edge belongs in [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

  • Verify the three new task IDs (T-33 / T-34 / T-4.15) don't collide with anything else in TASKS.md.
  • Confirm the design doc citations resolve: docs/design-v4-compiler-homomorphism.md §"ModelCore", §"HostModel", §"P4", §"Ratified Q1", §"What's NOT in scope".
  • Confirm the dependency edges [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.
  • T-4.15's transport substrate is language-orthogonal (no T-4 dependency); LanguageModel ⊗ TransportModel composition is T-16's responsibility per P4.
  • No content change in any .dag file — this is a planning PR only.

🤖 Generated with Claude Code

briansrls and others added 2 commits May 20, 2026 04:19
…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 briansrls changed the title Modeling v4 TASKS: HostModel / ModelCore / Protocols rows (Ratified Q1 + P4) May 20, 2026
@briansrls
briansrls marked this pull request as ready for review May 20, 2026 08:21

@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: fecd3bd0 · Trigger: schedule
  • Thinking: 147s wall

BLOCKING (3)

Root Cause

  • src/v4/TASKS.md P4 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.md New 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.md HostModel 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.

⚠️ The added planning tasks need checkable authority and their dependency edges must be propagated before this task graph is safe to merge.

Comment thread src/v4/TASKS.md Outdated
Comment thread src/v4/TASKS.md
Comment thread src/v4/TASKS.md Outdated
briansrls and others added 2 commits May 20, 2026 08:26
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>
@briansrls

briansrls commented May 20, 2026 •

Copy link
Copy Markdown
Contributor Author

Re: codex dashboard-only review verdict REQUEST_CHANGES (dashboard review id 15297, ran on sha 2b928e88d at 2026-05-20T08:24:01Z, parsed from stdout artifact).

Both flagged P2 single-authority issues are addressed at HEAD 7ecdf4ecd — across two follow-up commits:

  1. 6d7e15274 propagated the new substrate edges into consumers' authoritative [needs …] contracts:

    • T-4 now [needs T-3, P1-KEYSTONE, T-29, T-30, T-25-core, T-33] (side-branch graph block + T-4 task-definition body, both updated; four → five feeders).
    • T-22 now [needs T-9, T-34] (parallel-fill execution-graph block).
  2. 7ecdf4ecd reconciled the stale T-33 prose paragraph that earlier asserted "No silent change to T-4's [needs …] list as part of this PR" — true at 2b928e88d (when codex reviewed), but FALSE at 6d7e15274 once the graph edge landed. Without this second commit the P2 problem would have inverted (prose denying what [needs] actually did). New paragraph names what this PR DOES touch (the schedule edge on T-4's [needs]) vs what it does NOT touch (T-4's fact-bundle authoring contract body prose — a separable commit train), keeping the dependency fact's single-authority on the [needs …] line.

T-34's Consumer: T-22 body claim is consistent with T-22's updated [needs T-9, T-34]; no T-34 body edit needed.

PR body also updated to reflect the propagated edges + drop the now-stale "T-4 [needs …] intentionally not edited" framing.

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 7ecdf4ecd.

— sent from jolly-eagle-492

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: 7ecdf4ec · Trigger: manual
  • Comparison: main @ deda6f21 ... session/jolly-eagle-492 @ 7ecdf4ec
  • Conversation: View conversation

1. Story of the diff

This PR updates src/v4/TASKS.md to reflect the newly ratified Q1/P4 scheduling shape for v4 substrate work. The main planning move is to introduce T-33 std/model_core.dag as the shared base for primitive facts, algebra inhabitance, laws, effects, and partiality, then make T-4 LanguageModel depend on it so language fact-bundles do not re-declare that core shape (src/v4/TASKS.md:64, src/v4/TASKS.md:104-111, src/v4/TASKS.md:1196-1240). In parallel, it introduces T-34 std/host.dag as a HostModel peer of LanguageModel, and wires T-22 eval to depend on HostModel because evaluation now takes host semantics as an explicit parameter (src/v4/TASKS.md:164-170, src/v4/TASKS.md:1244-1279). Finally, it schedules T-4.15 protocol substrates for REST/GraphQL/gRPC so future omni-stack glue derivation has a named transport-model slot, but that part has a planning inconsistency around whether it is immediate parallel-fill work or deferred until T-16 activates (src/v4/TASKS.md:136, src/v4/TASKS.md:1326-1332).

2. Invariant categories

  1. LAYER MODEL — Compliant. This is planning-only, not a direct .dag substrate implementation change, but the planned layering is correct: ModelCore is named as the shared base that LanguageModel and HostModel extend, and HostModel remains a distinct peer rather than being collapsed into LanguageModel (src/v4/TASKS.md:1198-1224, src/v4/TASKS.md:1245-1275).
  2. INVARIANTS.md + modeling-discipline.md — Finding. src/v4/TASKS.md:136 puts T-4.15 extdeps/protocols/{rest,graphql,grpc}.dag under “Parallel fill — schedule the instant deps clear” (src/v4/TASKS.md:114) with only [needs T-3, T-26, T-4], but the task body later says “file authoring waits until omni-stack glue work activates (T-16 timeline)” (src/v4/TASKS.md:1326-1332). This violates P2 Boundary Discipline / single authority for the schedule fact: one place tells workers to dispatch after T-3/T-26/T-4, while the task body tells them not to author the files until T-16. Make the canonical dependency/placement encode the T-16 activation condition, or move T-4.15 out of the instant-parallel-fill lane.
  3. CODING.md — N/A. The diff is a planning-document edit only; it adds no Rust implementation, helper, API, control flow, or comments governed by CODING.md.
  4. TESTING.md — N/A. The diff schedules future substrate files and graph edges but does not change executable behavior or tests. No test is required for this planning-only edit beyond the task-graph consistency issue above.
  5. LOCKED DESIGN DECISIONS — Compliant. The visible Q1 changes preserve the ratified shape: HostModel is explicitly a distinct peer of LanguageModel, both extending ModelCore, and T-22’s eval dependency is updated accordingly (src/v4/TASKS.md:1245-1279, src/v4/TASKS.md:164-170). The P4 protocol entry also states the initial single-target compiler remains out of scope (src/v4/TASKS.md:1326-1332); the remaining problem is schedule placement, not semantic rejection of the locked design.
  6. TRACKED vs UNTRACKED DEBT — Compliant with one caveat covered above. T-33 and T-34 are bounded scheduled tasks with file paths, dependency edges, carrier shapes, and consumers named (src/v4/TASKS.md:1203-1216, src/v4/TASKS.md:1267-1279). T-4.15 names a future T-16 activation trigger (src/v4/TASKS.md:1329-1331), but that trigger must be reflected in the canonical schedule/dependency line to avoid becoming a conflicting scaffold; that is the blocking finding in category 2.

2.5. Top-down PM intent review

Finding. 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)” (src/v4/TASKS.md:1326-1332). But the summary graph inserts the same task in the parallel fill area with [needs T-3, T-26, T-4] and no T-16/activation condition (src/v4/TASKS.md:114, src/v4/TASKS.md:136). A worker faithfully following the graph would start REST/GraphQL/gRPC substrate authoring as soon as those three dependencies clear, while a worker faithfully following the task body would wait for T-16; that is exactly the kind of planning artifact that can cause correct execution of the wrong work.

3. Verdict

REQUEST_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>
@briansrls

Copy link
Copy Markdown
Contributor Author

Re: codex dashboard-only review verdict REQUEST_CHANGES (dashboard review id 15305, ran on sha 7ecdf4ecd at 2026-05-20T08:40:02Z).

Valid finding. Fixed in 5ab9d3397.

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 docs/design-v4-compiler-homomorphism.md. Each transport actually declares its OWN wire-format type system (REST: HTTP bodies + headers; gRPC: protobuf primitives + messages; GraphQL: GraphQL type system). LanguageModel bindings happen downstream at composition time — T-16's omni-stack glue derivation composes LanguageModel(source) ∘ TransportModel ∘ LanguageModel(target) via the coercion fold (P4's "applied twice through a shared transport model"), NOT on the transport substrate itself. Co-locating language-binding facts on the transport substrate would have collapsed the shared model back into language-specific concerns.

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 + cites the P4 composition shape.

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>
@briansrls

Copy link
Copy Markdown
Contributor Author

Re: openai-pro review verdict REQUEST_CHANGES (dashboard review id 15302, ran on sha 7ecdf4ecd at 2026-05-20T08:44:22Z, posted as PR comment 4496361522).

Valid finding. Fixed in 171353860.

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 [needs T-3, T-26], while the task-def body said "file authoring waits until omni-stack glue work activates (T-16 timeline)". Two contradictory schedule authorities for the same task.

Fix:

  • T-4.15 relocated out of the "Substrate / extdeps fan-out" sub-block (the "instant parallel fill" section).
  • T-4.15 placed in "Close-the-loop + late substrate" alongside T-26 (its closest semantic neighbor — both are boundary substrate awaiting downstream activation).
  • The schedule line now carries an explicit scheduled-but-deferred — file authoring activates with omni-stack glue work per P4 gate, matching what the task-def body says. Single authority restored — same fact in both places.
  • One-line pointer left in the old position so a reader scanning the parallel-fill block still finds T-4.15.

The earlier codex 5ab9d3397 fix (T-4.15 dropping its T-4 dependency for language-orthogonality) stands; this commit only fixes the schedule-placement contradiction.

— sent from jolly-eagle-492

@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: 17135386 · Trigger: manual
  • Comparison: main @ deda6f21 ... session/jolly-eagle-492 @ 17135386
  • Conversation: View conversation

1. Story of the diff

This PR is a src/v4/TASKS.md scheduling and scope update, not an implementation change. It adds T-33 std/model_core.dag as the shared substrate base for primitive facts, algebra inhabitance, laws, effects, and partiality, then wires that into T-4 LanguageModel as a hard prerequisite. It adds T-34 std/host.dag as the HostModel peer of LanguageModel, then updates T-22 eval so the interpreter depends on HostModel before authoring. It also relocates T-4.15 protocols out of instant substrate fan-out and into a scheduled-but-deferred transport lane, with activation tied to omni-stack/T-16 glue work rather than the initial single-target compiler.

The load-bearing mechanism is the graph edit: ModelCore becomes the common source of truth for host/language primitive facts, HostModel gates eval, and protocols are explicitly language-orthogonal transport substrate. That direction matches the v4-active framing in the thesis and Pure Bootstrap Zero context: v4 is the active operational substrate program, and the v4 workflow/bootstrap discipline is governed by the zero-floor design. chatgpt-review-09cf1618-8ea6-4d…

chatgpt-review-556d355f-3e49-42…

2. Invariant categories

  1. LAYER MODEL — Compliant. The diff touches substrate planning, not concrete .dag substrate carriers; the planned shape keeps ModelCore as the shared base consumed by both LanguageModel and HostModel at src/v4/TASKS.md:1212-1238, which is the right substrate-layer move rather than duplicating primitive/algebra facts in each target model.
  2. INVARIANTS.md + modeling-discipline.md — Compliant. P1/P2 are handled by making ModelCore the single shared carrier for primitive facts, algebra inhabitance, laws, effects, and partiality at src/v4/TASKS.md:1220-1238; T-4.15 also avoids the no-template/derived-homomorphism failure mode by stating transport is bidirectional substrate consumed by ingest and emit, “NOT a string template,” at src/v4/TASKS.md:1321-1324. This aligns with the modeling discipline’s fact-bundle and no-string-template rule. chatgpt-review-3e234581-e536-40…
  3. CODING.md — N/A. The diff is a Markdown planning/task graph edit only; it introduces no Rust functions, helpers, comments inside code, error shapes, or APIs.
  4. TESTING.md — N/A. No executable code, .dag carrier, test harness, or runtime behavior changes in this diff. A task-graph-only Markdown change does not need a new hermetic or behavior-level test unless the repo has a generated TASKS graph checker, which is not present in the attached context.
  5. LOCKED DESIGN DECISIONS — Compliant. The diff does not alter a locked design doc; it records operator-ratified Q1/P4 decisions in TASKS and keeps the key semantics explicit: HostModel is a peer of LanguageModel, not a LanguageModel variant (src/v4/TASKS.md:1258-1293), and protocols are language-orthogonal transport substrate rather than T-4 language facts (src/v4/TASKS.md:1329-1341).
  6. TRACKED vs UNTRACKED DEBT — Compliant. The new deferred substrate is bounded and has a named activation trigger: T-4.15 is scheduled-but-deferred, depends on T-3/T-26, and file authoring activates with omni-stack glue/T-16 rather than the initial single-target compiler (src/v4/TASKS.md:1300-1355). That is a tracked bridge, not an open-ended TODO.

2.5. Top-down PM intent review

Finding — scheduling semantics are diluted by placing T-33 in a “late substrate” bucket. The project’s top-level model treats .dag as a dependency graph whose schedule is mechanically chosen from that same source. chatgpt-review-09cf1618-8ea6-4d…

The PR’s own side-branch text says T-33 is one of five non-critical-path feeders that gate T-4 → T-9, and that these feeders are “watch items,” not slack-having parallel fill; if any slips, the side branch becomes critical (src/v4/TASKS.md:75-78). But the same PR inserts T-33 under the existing “Close-the-loop + late substrate” bucket (src/v4/TASKS.md:202, src/v4/TASKS.md:216-219). That bucket placement gives a worker the opposite scheduling signal from the dependency narrative: “late/close-loop” instead of “start as soon as T-1/T-2/T-3 clear because T-4 is blocked on it.” Move T-33 out of the late bucket, split the bucket, or rename the heading so the graph does not encode contradictory priority.

3. Verdict

REQUEST_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>
@briansrls

Copy link
Copy Markdown
Contributor Author

Re: openai-pro review verdict REQUEST_CHANGES (dashboard review id 15306, ran on sha 171353860 at 2026-05-20T08:58:33Z, posted as PR comment 4496470211).

Valid finding. Fixed in 186a0c362.

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 — src/v4/TASKS.md:75-78 + :104-110) AND the "Close-the-loop + late substrate" block (incorrectly — that bucket implies slack/late, opposite to the watch-item framing). A worker reading the late-substrate bucket would have scheduled T-33 late.

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":

  • T-34 feeds T-22 (eval), which is in "Interpreter + lens dimensions", not the critical path — no contradiction.
  • T-4.15 is explicitly scheduled-but-deferred (activates with omni-stack glue per P4) — the bucket signal matches the deferral gate.

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 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: 186a0c36 · Trigger: schedule
  • Thinking: 274s wall

BLOCKING (1)

Root Cause

  • src/v4/TASKS.md T-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.

⚠️ The prior comments are addressed, but the protocol substrate still needs its T-16 consumer edge reconciled.

Comment thread src/v4/TASKS.md
#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 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: d6063235 · Trigger: schedule
  • Thinking: 268s wall

BLOCKING (3)

Root Cause

  • src/v4/TASKS.md Ratified 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.md The 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.md The 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.

⚠️ The dependency edges are mostly reconciled, but the new substrate rows still rely on an absent authority and leave two task-contract drifts.

Comment thread src/v4/TASKS.md
Comment thread src/v4/TASKS.md Outdated
Comment thread src/v4/TASKS.md

@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: 56256abb · Trigger: schedule
  • Thinking: 229s wall

BLOCKING (2)

Root Cause

  • src/v4/TASKS.md Q1 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.md T-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.

⚠️ Two task-contract drifts remain in the newly added planning rows.

Comment thread src/v4/TASKS.md Outdated
Comment thread src/v4/TASKS.md
…] (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>
@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: c8f3acdc · Trigger: manual
  • Comparison: main @ deda6f21 ... session/jolly-eagle-492 @ c8f3acdc
  • Conversation: View conversation

1. Story of the diff

This PR updates src/v4/TASKS.md to turn the Q1/P4 design ratifications into explicit v4 scheduling authority. The main move is factoring the shared primitive/algebra/law/effect substrate into T-33 std/model_core.dag, then making T-4 LanguageModel and T-34 HostModel depend on that shared base rather than duplicating model facts independently (src/v4/TASKS.md:104, src/v4/TASKS.md:1212). It then updates T-22 eval so the evaluator takes a HostModel parameter, replacing the older “eval reads LanguageModel” framing with a host-runtime carrier that is still grounded through ModelCore (src/v4/TASKS.md:167, src/v4/TASKS.md:916, src/v4/TASKS.md:919).

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 (src/v4/TASKS.md:205, src/v4/TASKS.md:1343, src/v4/TASKS.md:1364). Net effect: the task graph is more explicit about what must exist before language modeling and eval can land, while avoiding premature omni-stack transport implementation.

2. Invariant categories

1. LAYER MODEL

Compliant — the diff is planning-layer only, but it preserves substrate layering rather than flattening it: ModelCore is the shared base for both LanguageModel and HostModel (src/v4/TASKS.md:1214), HostModel is explicitly a peer rather than a LanguageModel variant (src/v4/TASKS.md:1267–src/v4/TASKS.md:1272), and protocol substrate is kept language-orthogonal rather than folded into T-4 (src/v4/TASKS.md:1343–src/v4/TASKS.md:1356).

2. INVARIANTS.md + modeling-discipline.md

Compliant — P2 single-authority is handled by putting the T-4 dependency fact on the T-4 [needs …] line and explicitly saying T-33 prose is not the authority for that edge (src/v4/TASKS.md:1248–src/v4/TASKS.md:1258). P1 modeling faithfulness is also reinforced: T-33’s carrier shape requires primitive fact-bundles, algebra inhabitance, laws, effects, and partiality semantics instead of hollow aliases (src/v4/TASKS.md:1228–src/v4/TASKS.md:1238), aligning with the uploaded thesis requirement that target primitives be structurally modeled with algebra inhabitance rather than name-keyed shortcuts (THESIS.md:181).

3. CODING.md

N/A — no Rust implementation, helper API, method shape, error carrier, or code comment discipline is touched; the diff only edits the planning document src/v4/TASKS.md.

4. TESTING.md

N/A — no executable behavior, generated artifact, Rust harness, or .dag carrier is changed. The PR is a schedule/authority edit; there is no new testable compiler behavior to cover in this diff.

5. LOCKED DESIGN DECISIONS

Compliant — the diff explicitly names the ratified design decisions it is applying instead of silently diverging: Q1 for ModelCore/HostModel (src/v4/TASKS.md:1213, src/v4/TASKS.md:1267) and P4 for protocols as orthogonal glue substrate (src/v4/TASKS.md:1308–src/v4/TASKS.md:1316). It also does not weaken the uploaded Pure Bootstrap to Zero authority: no hand-authored Rust surface is added, and the v4 zero-floor framing remains untouched (design-pure-bootstrap-zero.md:3–design-pure-bootstrap-zero.md:7).

6. TRACKED vs UNTRACKED DEBT

Compliant — 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 [needs] edge (src/v4/TASKS.md:207–src/v4/TASKS.md:217, src/v4/TASKS.md:1364–src/v4/TASKS.md:1371). T-33 and T-34 are scheduled tasks rather than scaffolds; each has named dependencies, file targets, and consumers (src/v4/TASKS.md:1219–src/v4/TASKS.md:1226, src/v4/TASKS.md:1289–src/v4/TASKS.md:1301).

2.5. Top-down PM intent review

Compliant — this PR preserves the project-level intent rather than diluting it. The thesis requires grounded target primitive modeling and algebra inhabitance (THESIS.md:181), explicit substrate structure (THESIS.md:206–THESIS.md:210), and omni-emission without blurring compiler language targets and user-artifact targets (THESIS.md:220–THESIS.md:228). The diff supports that by adding ModelCore before LanguageModel fact-bundles (src/v4/TASKS.md:321–src/v4/TASKS.md:323), splitting runtime execution facts into HostModel instead of overloading LanguageModel (src/v4/TASKS.md:916–src/v4/TASKS.md:919), and keeping transport substrate deferred/orthogonal until true omni-stack glue work activates (src/v4/TASKS.md:1349–src/v4/TASKS.md:1356). I do not see a must-have target being postponed without reconciliation or a dissolution goal becoming permanent scaffolding.

3. Verdict

APPROVE. 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 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: c8f3acdc · Trigger: schedule
  • Thinking: 238s wall

BLOCKING (1)

Root Cause

  • src/v4/TASKS.md HostModel 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.

⚠️ One new HostModel authority gap remains.

Comment thread src/v4/TASKS.md
@briansrls

Copy link
Copy Markdown
Contributor Author

Review metadata

  • Provider / model: openai-pro / gpt-5-5-pro
  • Commit: e39305e3 · Trigger: manual
  • Comparison: main @ f4a38301 ... session/jolly-eagle-492 @ e39305e3
  • Conversation: View conversation

1. Story of the diff

This PR is a planning-graph correction to src/v4/TASKS.md, not an implementation PR. It incorporates the newly ratified Q1/P4 substrate split by adding T-33 std/model_core.dag as the shared base for LanguageModel and HostModel, adding T-34 std/host.dag as the host-runtime peer of LanguageModel, and moving the protocols work into a explicitly deferred T-4.15 transport substrate lane. The load-bearing graph edits are: T-33 becomes a hard T-4 prerequisite in the side branch (src/v4/TASKS.md:64, src/v4/TASKS.md:111, src/v4/TASKS.md:321); T-22 now depends on T-34 because eval takes a HostModel parameter (src/v4/TASKS.md:167, src/v4/TASKS.md:921); and T-4.15 is deliberately not made a current T-16 dependency because the current T-16 scope remains OpenAPI/WireContract, not full REST/GraphQL/gRPC transport substrate (src/v4/TASKS.md:1313, src/v4/TASKS.md:1321, src/v4/TASKS.md:1369).

2. Invariant categories

  1. LAYER MODEL (substrate vs implementation).

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 ModelCore (src/v4/TASKS.md:1217, src/v4/TASKS.md:1233) and keeping HostModel as a peer of LanguageModel rather than a variant or emitter concern (src/v4/TASKS.md:1271, src/v4/TASKS.md:1298).

  1. INVARIANTS.md + modeling-discipline.md.

Compliant — single authority / no duplicate representation is the main principle exercised here. T-33 is explicitly introduced so LanguageModel and HostModel do not each redeclare primitive facts, algebra inhabitance, and laws (src/v4/TASKS.md:1219, src/v4/TASKS.md:1245). The T-22 correction also routes eval through HostModel rather than reusing the language/emitter model for host runtime semantics (src/v4/TASKS.md:924), which avoids a cross-layer authority collapse.

  1. CODING.md.

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.

  1. TESTING.md.

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 .dag test.

  1. LOCKED DESIGN DECISIONS.

Compliant — the PR references ratified design decisions and reflects them consistently rather than silently diverging. Q1 is applied by adding ModelCore/HostModel and changing eval’s contract to eval(InferredTree, HostModel, Inputs) (src/v4/TASKS.md:921, src/v4/TASKS.md:1272). P4 is applied by treating protocols as transport substrate for future omni-stack glue, not as a current T-16 dependency (src/v4/TASKS.md:1314, src/v4/TASKS.md:1321, src/v4/TASKS.md:1348).

  1. TRACKED vs UNTRACKED DEBT.

Compliant — the only obvious deferred surface is T-4.15, and it is bounded rather than left as generic “later” work. The overview marks it scheduled-but-deferred and names the activation condition as omni-stack glue work (src/v4/TASKS.md:138, src/v4/TASKS.md:205), while the task body repeats the scope boundary that it is out of the initial single-target compiler and not part of today’s T-16 scope (src/v4/TASKS.md:1369, src/v4/TASKS.md:1373). T-33 and T-34 are not scaffolds; they are scheduled substrate tasks with concrete file targets and dependency edges (src/v4/TASKS.md:1230, src/v4/TASKS.md:1279, src/v4/TASKS.md:1294).

2.5. Top-down PM intent review

Compliant — 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 (THESIS.md:91); this PR reinforces that by moving shared primitive/algebra/law facts into ModelCore and making transport glue a composed homomorphism over a transport model (src/v4/TASKS.md:1219, src/v4/TASKS.md:1318). The thesis also says dag run is the primary execution path (THESIS.md:233); the PR strengthens that path by making eval read HostModel explicitly instead of treating runtime execution as an emitter/language-spec afterthought (src/v4/TASKS.md:167, src/v4/TASKS.md:924). I did not see a concrete diff-cited mismatch where a must-have target became optional, a dissolution goal became permanent scaffolding, or handwritten implementation was introduced where generated/data-authored structure is required.

3. Verdict

APPROVE

The diff is a planning correction that tightens the substrate dependency graph and avoids the prior HostModel/LanguageModel conflation. The one deferred lane, T-4.15, is explicitly bounded to future omni-stack glue rather than silently added to the current T-16 path, so I do not see a blocking invariant violation.

@briansrls
briansrls merged commit 0430c60 into main May 20, 2026
7 checks passed
@briansrls briansrls mentioned this pull request May 20, 2026
6 tasks
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