Skip to content

Define mixed cross-backend participant-control semantics #1013

Closed

Description

@Brad-Edwards

Parent: #813

Bounded outcome

Publish SEM-234's revisioned mixed cross-backend participant-control
composition semantics. Define alternative and simultaneous mixed realization,
stable allocation scopes, explicit composition edges, authority separation,
temporal coupling, trial/phase progression, the three open/closed axes, and
fail-closed admission. Compose SEM-230, SCE-002, API-423, and RUN-310 instead
of adding backend selection to portable SDL.

Negative cases

  • Simulation/emulation labels inferred from a backend name or adapter class.
  • Multiple providers treated as multiple controllers or HLA ownership treated
    as participant authority.
  • A generic open, mixed, federated, or constraints field replacing
    closed semantics.
  • An unadmitted runtime join, fallback, clock mapping, or authority transfer.
  • A phase change rewriting trial identity, prior delivery, or participant
    knowledge.

Evidence required

  • Revisioned formal profile and invariant set.
  • Worked alternative, mixed, inter-trial, and pre-admitted phase examples.
  • Counterexamples for missing mappings, stale authority, unadmitted joins,
    partial order, and metadata leakage.
  • Clause, lineage, and nonclaim validation.

Explicit nonclaims

  • No portable wire contract, runtime coordinator, backend adapter, or
    realization evidence.
  • No leased, simultaneous scoped-owner, or joint/fused controller support in
    revision 1.
  • No cross-backend equivalence, IFC/noninterference, or universal transfer
    claim.

Dependencies

Requirements

  • SEM-234
  • SEM-230
  • SCE-002
  • API-423
  • RUN-310

Activity

  1. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    🛠️ Picked up by /implement - driver codex, branch 1013-mixed-participant-control, 2026-09-17T03:23:51.949Z.

  2. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: preflight (issue #1013). Posted by the MCP server to enforce ordering between workflow steps (issue #794 MVP-2). Do not edit or delete — used by downstream tools to gate phase prerequisites.

  3. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: preflight (issue #1013). Posted by the MCP server to enforce ordering between workflow steps (issue #794 MVP-2). Do not edit or delete — used by downstream tools to gate phase prerequisites.

  4. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: preflight (issue #1013). Posted by the MCP server to enforce ordering between workflow steps (issue #794 MVP-2). Do not edit or delete — used by downstream tools to gate phase prerequisites.

  5. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: preflight (issue #1013). Posted by the MCP server to enforce ordering between workflow steps (issue #794 MVP-2). Do not edit or delete — used by downstream tools to gate phase prerequisites.

  6. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: preflight (issue #1013). Posted by the MCP server to enforce ordering between workflow steps (issue #794 MVP-2). Do not edit or delete — used by downstream tools to gate phase prerequisites.

  7. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: plan (issue #1013). Posted by the MCP server to enforce ordering between workflow steps (issue #794 MVP-2). Do not edit or delete — used by downstream tools to gate phase prerequisites.

    Implement #1013 as SEM-234 semantic authority and bounded executable falsification, aligned with #1198, #1201 and accepted ADR-105. The current #813 text supplies 45 design invariants; it lacks a precise admission/phase relation, executable worked cases and progressive-specification reconciliation.

    Deliverables and clause coverage

    • SEM-234 clauses 1–7, Path A: publish mixed-cross-backend-participant-control-v1@rev1 with sem-234/rev1 authority in specs/formal/participant-semantics/cross-backend-participant-control.md. Define alternative versus simultaneous composition, stable required units, unique per-phase providers, directed edge joins, separate authority relations, temporal strength/partial order, finite phase transition and inter-trial lineage, independent axes, fail-closed admission and explicitly bounded weakening.
    • Path A: add a test-local finite oracle and tests under implementations/python/tests/sem234_mixed_composition_model.py and test_sem_234_mixed_composition.py. Write/run failing tests before implementation. Exercise actual relation evaluation and state transitions, not prose snapshots. Positive cases cover alternative, mixed, linked new trials and committed phases. Mutations cover missing/reversed mappings, stale exact-cut coordinates, unsupported capability/evidence, unadmitted joins/fallback, overlapping allocation, incomparable order, metadata widening, failed commit, identity/history rewriting and controller/owner conflation. Exhaust finite axis combinations and input permutations.
    • Audit and remediate open-ended implementation concepts hardcoded into RAE #1198 alignment, Path A: reuse the existing finite partial-description choose() and report_choice()/capture() helpers for abstract completeness, inherited delegation, exact-child preservation, one supported witness versus universal coverage, private internal choices, and independently selected reporting/collection. The composition relation applies to required portable effects and requested/operational observations, not every possible internal implementation detail.
    • SEM-230, Path A composition tests plus existing coverage: preserve participant/audience projection, input admission, release/declassification, transformations, observable/hidden labels, policy changes and assurance boundaries. Reuse its policy projection model rather than inventing a second policy engine.
    • SCE-002, Path A composition tests plus existing trial/selection coverage: allocation follows deterministic scenario composition, parameterization and randomization; backend preparation cannot replace experimental factors. Preserve selected scenario identity and immutable trial coordinates across phases.
    • API-423, Path A composition tests plus incumbent contracts: bind edge policy/release/mapping to existing typed crossing stages and provenance; no generic message transport or duplicate carrier.
    • RUN-310, Path A transition tests plus existing mediation/history coverage: current controller remains until committed fresh transition; supervision, approval/denial, direction, intervention, handoff, override/cancellation retain their owners; stale/conflicting transitions append safe failures and cause zero prohibited effects.
    • Path D documentation: add worked examples and a clause/evidence/lineage/nonclaim matrix, update participant semantics README, public participant-control guide, lineage and assurance fulfillment. Preserve historical Design cross-backend participant control against simulation and cyber-range precedents #813 program records as historical design evidence. Record an ADR-102 companion clarification if needed rather than silently rewriting historical acceptance.
    • Reconcile all five requirement files before publish. SEM-234 becomes ACTIVE for its delivered semantic-definition clauses; ASR-537 remains DRAFT and no runtime or backend realization is claimed. Existing ACTIVE owners keep their implementation links and gain only accurate composition coverage.

    Design boundaries

    Security: exact controller/authority/policy/capability/history/order cuts; authorization before routing; no raw values in failure labels; metadata must be included in the authorized projection. The oracle is isolated and has no network, credentials, I/O, adapter calls, persistence or production authority. Missing required operational evidence refuses execution; absent unrequested experimental data does not.
    Maintainability: compose ADR-084/085/095/102/105, SCE-002 trial identities, SEM-230 projection, API-423 crossings, RUN-310 commits, API-407 capability strength and existing time semantics. Reuse test-local finite description/projection helpers and repository policy gates.
    Extensibility: revision-pinned profile and relation boundaries; no backend catalog, arbitrary constraints bag or implied profiles for internal mechanisms. Later controller/arbitration profiles require explicit new semantics.
    Whole repository: formal authority, current progressive semantics, public claim guidance, lineage and formal assurance inventory, requirements and test discovery. No production schema/wire/API/runtime/adapter change; no CHANGELOG or version edit.

    Verification

    RAES_REQUIREMENT_UID=SEM-234 throughout. Baseline tools/check_repo_policy.py passes. Red/green targeted oracle tests; incumbent #813, SEM-230, SCE-002, API-423 and RUN-310 tests as appropriate to the composition surface. Run required tools/check_repo_policy.py, tools/check_requirement_governance.py and tools/verify_all.py, configured completion and policy gates on the final tree, mandatory bounded implementation and test-quality reviews, publish pre-commit, CI/Sonar, and readiness. All authority artifacts stay under specs/, contracts/, docs/ or implementations/. No published schema change is planned. Use a Conventional Commit PR title. Stop at the concrete ready-to-merge PR for the user's merge.

    Preflight precision: use a trusted finite resolution from all five allocation kinds to effect identities, and reject cross-kind competing providers. Allocation is indexed by phase; pinned inactive providers cannot act. Preserve revoked/expired authority even when controller identity exists. Partial-order incomparability cannot authorize a required comparison. Phase changes require quiescence or an explicit admitted in-flight disposition; revision 1's bounded examples use quiescence. A decision commit is not delivery or distributed atomicity; failed persistence does not promise durable failure evidence. Bounded oracle tests assert model state only. Accepted ADR-102 remains immutable; clarify its relationship to accepted ADR-105 in the publication and companion guidance.

    Governance repair (Path B): reproduce the preflight note's requirement-ownership-mismatch with the actual repository gate. Add a SEM-234-specific mixed-participant-composition phase before the generic SEM pattern, retaining the reference-implementations prerequisites and listing only this delivery's exact semantic/specification, guidance, test, assurance and five requirement paths. Test both permitted delivery paths and refusal of a runtime implementation path. This assigns the semantic publication its actual ownership without disabling enforcement or widening every SEM requirement. Preserve API-423's current scalar successor ordering and one-result transformation graph; partial-order examples are semantic counterexamples, not claims those carriers already represent them.

  8. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc_codex_review — cycle 1 of 1 (pre-push) on issue #1013 (branch 1013-mixed-participant-control)
    Diff mode: inline — the complete diff was supplied in one prompt

    Core review

    Verdict: ship-with-fixes

    The change has the right overall seam: it activates a revisioned semantic authority while explicitly retaining the downstream runtime, contract, and demonstration boundaries, and its finite oracle is deliberately separate from production enforcement. It composes the existing SEM-230 projection model rather than introducing a competing carrier. However, the oracle’s policy-admission gate currently allows a symbolic exchange without any exact policy decision, so the executable evidence does not yet uphold the definition it publishes.

    Blocking findings (1):

    1. [one-off] Require an exact policy decision before admitting delivery — implementations/python/tests/sem234_mixed_composition_model.py:304
      The policy check accepts an empty policies tuple because any(...) is false. With empty crossings and emitted output, project_history() also returns empty and the subset check succeeds, allowing deliver() to record an effect without a policy decision at the current cut. A policy record with the expected ID but wrong revision/cut has the same bypass when nothing is emitted. This contradicts MayExchange, which requires the SEM-230/API-423 policy predicate to accept. Require at least one policy decision matching the pinned policy identity, current revision, and current cut, and add a negative witness for absent and stale/mismatched policy decisions.

    Security review

    Verdict: ship

    This change publishes SEM-234 semantics, traceability, and bounded executable witnesses while explicitly keeping the runtime, wire-contract, authentication, and backend-realization seams outside this delivery. The new oracle is confined to test paths and declares its inputs and effects symbolic; the normative text preserves the existing authorization, projection, exact-cut, and fail-closed boundaries rather than adding a production ingress or bypass path. This is shaped correctly.

    No blocking findings.

  9. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc_codex_review pre-push cycle 1 of 1 complete for issue #1013 on branch '1013-mixed-participant-control'. Posted by the MCP server to enforce the pre-push hard-cap-1 contract (issues #796, #804, #906). Do not edit or delete — used by the next gc_codex_review (uncommitted) invocation to count cycles.

  10. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Review decision record — codex cycle 1 (issue #1013)

    Reviewer: codex
    Cycle: 1

    Architectural read:

    Core reviewer: The change has the right overall seam: it activates a revisioned semantic authority while explicitly retaining the downstream runtime, contract, and demonstration boundaries, and its finite oracle is deliberately separate from production enforcement. It composes the existing SEM-230 projection model rather than introducing a competing carrier. However, the oracle’s policy-admission gate currently allows a symbolic exchange without any exact policy decision, so the executable evidence does not yet uphold the definition it publishes.

    Security reviewer: This change publishes SEM-234 semantics, traceability, and bounded executable witnesses while explicitly keeping the runtime, wire-contract, authentication, and backend-realization seams outside this delivery. The new oracle is confined to test paths and declares its inputs and effects symbolic; the normative text preserves the existing authorization, projection, exact-cut, and fail-closed boundaries rather than adding a production ingress or bypass path. This is shaped correctly.

    Blocking findings: 1

    Finding 1 — one-off

    • ID: F1
    • Title: [core] Require an exact policy decision before admitting delivery
    • Location: implementations/python/tests/sem234_mixed_composition_model.py:304
    • Decision: fix
    • Rationale: The policy check accepts an empty policies tuple because any(...) is false. With empty crossings and emitted output, project_history() also returns empty and the subset check succeeds, allowing deliver() to record an effect without…
  11. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation REVIEW-CAP-1013 — Opened

    Category: workflow
    Observed state: Pre-push code review cycle 1/1 returned one policy-decision finding; the bounded review instruction requires a cap decision after repair and final verification.
    Impact: Publishing remains gated until the finding is repaired, final verification passes, and the review-cap decision is supplied.
    Current obligation: Repair and verify the exact-policy admission finding, then obtain the required review-cap direction before continuing to test-quality review and publication.

    Evidence

  12. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation REVIEW-CAP-1013 — Resolved

    Category: workflow
    Observed state: Cycle 1/1 finding repaired and final gates passed; user instructed: proceed without overcap.
    Impact: The reviewed defect is fixed; continuation uses the user's cap disposition without claiming a second clean review.
    Current obligation: Repair and verify the exact-policy admission finding, then obtain the required review-cap direction before continuing.

    Evidence

    Disposition: fix
    Corrective action: Require a nonempty exact policy identity/revision/cut before symbolic delivery, including empty output. Also require allocated active providers for mixed forms. User expressly directed continuation without overcap.

    Verification

    • test_sem_234_mixed_composition.py::test_delivery_requires_exact_policy_decision_even_without_output: reproduced six failures before fix; all eight cases pass afterward.
    • test_sem_234_mixed_composition.py::test_mixed_forms_require_allocated_providers_not_merely_listed_members: reproduced failure then passed.
    • 248 targeted and incumbent compatibility tests passed; Ruff passed.
    • Final mechanical completion and policy gates passed in job-mu521pu1-8.
  13. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Station observation — test-quality review cycle 1 — Opened

    Observed state: the station ran but rendered no verdict, so this gate is unobserved.
    Failure class: unparseable_validated_output
    Attempt: 1
    Impact: the review cap was not consumed and no findings record exists for this cycle.
    Current obligation: observe this station before the run completes.

    This is a missing observation, not a defect. It is resolved by observing the station, not by
    dispositioning a finding.

  14. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Station observation — test-quality review cycle 1 — Escalated

    Pause class: hard_external_dependency
    Unobserved station: test_quality_review (test-quality review)
    Attempts: 2
    Failure classes: unparseable_validated_output
    Decision request: restore the ability to observe this station, then re-run the review.

    This is not a request to accept a defect. Nothing was measured, so there is no finding to
    disposition — the gate itself could not be run to completion. Restoring the station and
    re-running it resolves this obligation on the evidence.

    This obligation remains open while the decision is pending.

  15. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Pre-PR base synchronization

    • Source: refs/remotes/origin/dev at 2a33497459ce8b8810d08dc679589821f8a7859c
    • Outcome: merged_clean
    • Published feature head: 1d796ff0473759d2ea922cd8525bdd8a3d17e55d
    • Verified tree: 4f3e62657e6a37dd9e5f8a394acce7350e4c8c52
  16. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc_test_quality_review cycle 1 of 1 — issue #1013

    Reviewer: test-quality (claude-sonnet-5 via gc_test_quality_review)
    Branch: 1013-mixed-participant-control
    Cycle: 1 / 1
    Findings: 2

    Finding 1 — [critical] implementations/python/tests/test_sem_234_mixed_composition.py

    Problem: 18 distinct error branches in sem234_mixed_composition_model.py's admit()/deliver()/advance() are never triggered or asserted by any test in this file: edge-endpoint, edge-scope (both its conditions), duplicate-allocation, ambiguous-edge, identity, ambiguous-context, component-resolution, phase-schedule (both its conditions), fixed-membership, alternative-components, composition-mode, unadmitted-edge, stale-projection, invalid-result, terminal-phase, and _order_error's own work-limit bound.
    Why it matters: This model is named in docs/requirements/SEM-234/requirement.md as the TESTS evidence for the requirement. Deleting or inverting any of these 18 guards -- e.g. removing the plan.mode enum check, letting advance() run past the last phase, accepting a fabricated edge_key in deliver(), or letting a duplicate component/scope ref through -- would not fail a single test in the suite that is supposed to be this requirement's conformance evidence.
    Fix: Add cases in the same replace()-based idiom already used throughout the file for each branch, following the pattern of the existing tests (e.g. assert "identity" in admit(replace(PLAN, scenario=""), CONTEXT)): blank scenario/policy/plan/entry/run for identity; a duplicate ref in plan.components or context.components for component-resolution/ambiguous-context; a phase transition that skips or misorders phase.ref pairs for phase-schedule; membership="fixed" with differing phase.members for fixed-membership; an alternative-realization phase with >1 member for alternative-components; an unknown plan.mode string for composition-mode; an edge whose source/destination is outside phase.members for edge-endpoint; an edge.scope that is not a crossing-boundary scope or absent from phase.allocations for edge-scope; a repeated scope_ref in phase.allocations for duplicate-allocation; a duplicated edge key/exchange for ambiguous-edge; a deliver() call with an edge_key absent from the phase's edges for unadmitted-edge; a crossing whose decision_cut_ref/policy_revision does not match the cut for stale-projection; a deliver() call with result outside {delivered, failed, unknown} for invalid-result; and an advance() call from the final phase for terminal-phase. Also add an order relation with >32 nodes or >256 pairs to exercise _order_error's own bound, distinct from admit()'s work counter.

    Finding 2 — [warning] implementations/python/tests/test_nox_shard_wiring.py::test_container_smoke_accepts_only_the_configured_hook

    Problem: The test spawns a real bash subprocess via subprocess.run against a fabricated .git/hooks directory but is not marked @pytest.mark.integration, even though implementations/python/pyproject.toml defines that marker specifically for 'subprocess, build, installed-distribution, or whole-system tests' and the default addopts excludes it.
    Why it matters: The test's own assertions are sound and would catch a reintroduced pre-push hook or a dropped hook guard, so this is a convention gap rather than a false-assurance gap; flagging it because the repo's own marker contract names subprocess tests explicitly.
    Fix: Add @pytest.mark.integration to test_container_smoke_accepts_only_the_configured_hook, matching test_pr_title_guard.py's precedent of marking its real-subprocess test with an explanatory comment.

  17. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Station observation — test-quality review cycle 1 — Re-observed

    Disposition: reobserved
    Corrective action: a re-attempt of this station at this logical cycle rendered a verdict.
    Evidence: #1013 (comment)

    Verification

    • The linked findings record is this station's validated verdict for this logical cycle.
    • Re-observation closes only the missing-observation obligation. Any findings in that record
      remain subject to the existing fix / wontfix / not-applicable rules.
  18. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc_test_quality_review cycle 1 of 1 complete for issue #1013 on branch '1013-mixed-participant-control'. Posted by the MCP server to enforce the gc_test_quality_review hard-cap-1 contract (issue #884 follow-up, default lowered in #906). Do not edit or delete — used by the next gc_test_quality_review invocation to count cycles.

  19. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Review decision record — test-quality cycle 1 (issue #1013)

    Reviewer: test-quality
    Cycle: 1

    Architectural read:

    This branch is a semantics-publication-only phase for SEM-234 (mixed-participant composition), following the same shape already established for SEM-230/SEM-233: a finite, dataclass-based executable oracle (admit/deliver/advance/link_trials) plus a governance test that pins requirement_order.yaml ownership so this PR cannot smuggle in a runtime realization under raes_runtime/participant_control_mediation.py. That governance boundary is exercised correctly: the negative case in test_sem_234_governance.py actually drives _check_path_ownership with the real RepositoryRequirementClient (no network, no mocks) and would fail if ownership enforcement were weakened — not just an existence check. The nox/pre-commit changes (dropping the pre-push hook, keeping hygiene+gitleaks solely in pre-commit) are backed by tests that read the real .pre-commit-config.yaml and re-parse the actual CI workflow script rather than duplicating it as a hardcoded string, so a regression that resurrects the pre-push hook or silently drops a secret scanner would be caught. The weak point is the oracle itself: sem234_mixed_composition_model.py is declared in the requirement's own traceability as the TESTS evidence for SEM-234, but roughly half of its distinct error branches across admit, _edge_errors, _phase_errors, deliver, and advance are never driven into firing by any test — meaning a substantial fraction of the 'conformance oracle' that this requirement rests on is currently unverified code, not verified semantics. This is fixable additively (more replace(...)-style cases in the existing idiom), not an architectural problem.

    Blocking findings: 2

    Finding 1 — class (18 instances)

    • ID: F1
    • Title: (no title)
    • Decision: fix
    • Rationale: Addressed by next cycle
    • Instances:
      • implementations/python/tests/sem234_mixed_composition_model.py:94 (edge-endpoint)
      • implementations/python/tests/sem234_mixed_composition_model.py:96 (edge-scope, kind check)
      • implementations/python/tests/sem234_mixed_composition_model.py:98 (edge-scope, not in phase.allocations)
      • implementations/python/tests/sem234_mixed_composition_model.py:125 (duplicate-allocation)
      • implementations/python/tests/sem234_mixed_composition_model.py:147 (ambiguous-edge)
      • implementations/python/tests/sem234_mixed_composition_model.py:171 (identity)
      • implementations/python/tests/sem234_mixed_composition_model.py:174 (ambiguous-context)
      • implementations/python/tests/sem234_mixed_composition_model.py:176 (component-resolution)
      • implementations/python/tests/sem234_mixed_composition_model.py:182 (phase-schedule, duplicate/missing phase refs)
      • implementations/python/tests/sem234_mixed_composition_model.py:189 (phase-schedule, transitions mismatch)
      • implementations/python/tests/sem234_mixed_composition_model.py:195 (fixed-membership)
      • implementations/python/tests/sem234_mixed_composition_model.py:198 (alternative-components)
      • implementations/python/tests/sem234_mixed_composition_model.py:207 (composition-mode)
      • implementations/python/tests/sem234_mixed_composition_model.py:262 (_order_error work-limit bound)
      • implementations/python/tests/sem234_mixed_composition_model.py:300 (unadmitted-edge)
      • implementations/python/tests/sem234_mixed_composition_model.py:323 (stale-projection)
      • implementations/python/tests/sem234_mixed_composition_model.py:331 (invalid-result)
      • implementations/python/tests/sem234_mixed_composition_model.py:350 (terminal-phase)

    Finding 2 — one-off

    • ID: F2
    • Title: (no title)
    • Decision: fix
    • Rationale: Addressed by next cycle
  20. Brad-Edwards commented on Sep 17, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Final report — issue #1013 complete

    PR: #1307
    Plan: #1013 (comment)

    Outcome

    RAES now has a revisioned mixed participant-control composition definition with finite examples that distinguish authored constraints from backend-selected implementation choices. The delivery adds no runtime coordinator or portable wire contract.

    In-scope requirements

    Verified at merge revision 6ac01beaa92f.

    • SEM-234 (Mixed Cross-Backend Participant-Control Composition) — ACTIVE
    • SEM-230 (Participant Information-Flow And Control Semantics) — ACTIVE
    • SCE-002 (Scenario Composition, Parameterization, and Randomization) — ACTIVE
    • API-423 (Participant Crossing Policy And Evidence Contracts) — ACTIVE
    • RUN-310 (Intervention, Handoff, And Supervisory Lifecycle) — ACTIVE

    Files changed

    • (none)

    Reviews

    • codex: Finding fixed before merge.
    • test-quality: Post-merge station observation returned two findings; repairs are not part of Phase E.

    Traceability reconciliation

    • IMPLEMENTS / TESTS / DOCUMENTS added: 0
    • Links updated: 0
    • Stale links removed: 0

    Merged records only.

    Status

    • CI: ✅ green
    • SonarCloud: ✅ passed
    • PR ready for user review and merge.
  21. removed
    in-progressAn agent is actively working this issue via /implement
    on Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:runtimeRuntime and control-plane codeenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions