design: CM execution model — JSON property graph and the coh runtime (M1 backbone) - #128
design: CM execution model — JSON property graph and the coh runtime (M1 backbone)#128usurobor wants to merge 3 commits into
Conversation
Splits the execution model off PR #124 (which stays vision-only so M0 can promote) onto its own review surface, from live main 274342f, with the four iterations Pi accepted in msg-cn-pi-tsc-execution-model-iterations-accepted-18: I1 receipt discriminator bumped to tsc-measurement-receipt/0.2. The 0.1 string is already owned on main by the shipped coh-min receipt, whose core is structurally incompatible; reusing it would assert false compatibility and destroy format as a verifier discriminator. tsc-run-request/0.1 and tsc-sandbox-plan/0.1 keep their version — verified no live artifact claims either string. I2 new acceptance gate 9: a closed schema rejects extra fields but not absent ones. Measured with cue v0.9.2, deleting format, procedure, or result_contract still passes cue vet against #NormalizedCMIR while the runtime refuses all eight. Every canonical block must be provably required, the runtime and verifier must independently refuse absence, and the negative fixture set must carry one missing-block case per canonical top-level block. I3 fact-provenance invariant: any non-scheduler fact the result rule reads must originate in a declared typed step output or evidence predicate; scheduler facts are limited to status, principled skip/refusal/failure, and bounds/coverage. The Ascent-0 consequence is named in the implementation order — separating, pass count, tested-fiber size and the fiber/candidate counts must be republished through their producing steps' typed ports. I4 canonical subject-snapshot construction and digest algorithms are deferred with a fail-closed boundary: a subject kind is executable only when it names a versioned snapshot/digest scheme; unknown schemes refuse.
…1-I4), PR #124 @f271f5c vision-only (reply to Pi -18)
…on (M0) Pi exact-head GO at f271f5c: vision-only diff, forward history preserved, section 9 accurate to main 274342f and the #126/#127 runtime evidence with its limits. This is the M0 architecture-authority gate. The note becomes project authority: the cn / coh / TSC / CNOS boundary, the portable-runtime vs host-integration split, typed holes, the shared runtime kernel, and the two-sided ABI-freeze proof. It remains subordinate to docs/product/NORTH-STAR.md and reconciles with docs/product/DIRECTION.md. The CM execution model that was briefly committed to this branch now lives on design/cm-execution-model (PR #128) under separate review, so M0 is not coupled to a design still in iteration. CI note: the 'ci' job is red on this head from a verified infrastructure failure — it failed at the 'Setup CUE' dependency-setup step before any project step ran. coh-min, katas, and CDD Artifact Validate are green at f271f5c, and the local pre-merge closure gate passes. Re-running the job was not available to this activation, and pushing a commit to re-trigger it would have invalidated the exact-head GO.
1. Required vs optional output ports. A success must publish every required output or the outcome is rejected; an optional output may lawfully be withheld, and a downstream required binding on an absent optional port becomes a principled skip naming the port. This resolves the contradiction between 'success publishes its declared outputs' and a semantic checker successfully withholding admissible_proposal. Withholding a required output is not a control mechanism. 2. Recursion. v0 forbids unbounded recursion and general control flow; bounded invoke_cm recursion is permitted only under the RunRequest's named child_cm_depth, child_cm_calls, and digest-cycle limits. Recursion with no named ceiling is not expressible. 3. The canonical RunRequest example names a versioned subject snapshot scheme (directory-merkle/0.1), and the text requires every subject entry to name one so a verifier can recompute identity rather than trust it. 4. Requiredness. Replaced the concrete-typed guidance, which pointed at the wrong lever: a concrete literal is the case that slips through, while cm_id: string is caught. Now requires CUE's field!: marker or a fixture-proved equivalent, plus a non-vacuity fixture so a schema cannot pass by validating nothing. 5. Ascent producer map completed with realization_fit publishing the fitting-candidate count, and a rule that any input without a named producing step is a gap to close rather than a fact the evaluator may reach for. 6. New gates 10 and 11: a digest-mismatch negative fixture per binding (request/IR/plan), and checker configuration schemas owned by the capability contract and validated at link time, with a negative fixture. 7. git diff --check clean.
…sted, PR #128 disposition asked
No semantic change. Clears the one mechanical gate Pi held the #128 exact-head GO on: git diff --check reported trailing whitespace on the three metadata lines and a new blank line at EOF.
|
Closing: superseded by the cohering reset.
This PR's base commit is no longer reachable from The design work itself was sound and the branch remains at Generated by Claude Code |
What changed
Adds
research/cm-language/runtime/CM-EXECUTION-MODEL.md— the bounded design backbone for M1 — on its own review surface, cut from livemain274342f.This document was previously committed onto
agent/cm-developer-experience-note(PR #124), which coupled M0 promotion to a technical design still under active review. Per the accepted split, PR #124 is now vision-only again and this is the design's review surface.Why
Shipping
coh-min(#126/#127) produced five measured findings that turn M1 from "harvest three schemas from two runtimes" into a bounded ABI design step:schema.cuedefines no#MeasurementReceiptand no#RunRequest; the two runtimes carry local contracts under two different format strings;#TypedStep) that neither runtime uses, while both independently invented the same private shape carrying the readiness-DAG edges the schema lacks;Iterations applied on top of the reviewed draft
Four corrections, accepted before this branch was cut:
tsc-measurement-receipt/0.2. The0.1string is already owned onmainby the shippedcoh-minreceipt, whose core is structurally incompatible; reusing it would assert false compatibility and destroyformatas a verifier discriminator.tsc-run-request/0.1andtsc-sandbox-plan/0.1keep their version — verified no live artifact claims either string.format,procedure, orresult_contractstill passescue vet -d '#NormalizedCMIR'while the runtime refuses all eight. Every canonical block must be provably required, runtime and verifier must independently refuse absence, and the negative fixture set must carry one missing-block case per canonical top-level block.separating, pass count, tested-fiber size and the fiber/candidate counts must be republished through their producing steps' typed ports, which is the bulk of that step's work.Impact
Documentation only. Defines no schema, changes no code, freezes no ABI, and dispatches no implementation. The document is a review candidate until accepted through the project-native review path.
Validation
main274342ftsc-run-request/tsc-sandbox-planunused;tsc-measurement-receipt/0.1andtsc-cm-ir/0.1in live use, both correctly superseded)Not in scope
.cmsurface syntax and compiler, package registry and distribution, remote provider transport, cache semantics, the complete Core warrant-obligation catalog, and signature policy — all listed as deferred and fail-closed until versioned.Generated by Claude Code