You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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.
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.
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.
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.
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):
[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.
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.
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
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…
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.
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.
Mechanical verification job job-mu521pu1-8: completion and policy passed.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Activity
Brad-Edwards commentedon Sep 17, 2026
🛠️ Picked up by /implement - driver codex, branch
1013-mixed-participant-control, 2026-09-17T03:23:51.949Z.Brad-Edwards commentedon Sep 17, 2026
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.Brad-Edwards commentedon Sep 17, 2026
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.Brad-Edwards commentedon Sep 17, 2026
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.Brad-Edwards commentedon Sep 17, 2026
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.Brad-Edwards commentedon Sep 17, 2026
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.Brad-Edwards commentedon Sep 17, 2026
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
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.
Brad-Edwards commentedon Sep 17, 2026
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-fixesThe 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):
implementations/python/tests/sem234_mixed_composition_model.py:304The policy check accepts an empty
policiestuple becauseany(...)is false. With empty crossings and emitted output,project_history()also returns empty and the subset check succeeds, allowingdeliver()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 contradictsMayExchange, 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:
shipThis 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.
Brad-Edwards commentedon Sep 17, 2026
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.Brad-Edwards commentedon Sep 17, 2026
Review decision record — codex cycle 1 (issue #1013)
Reviewer: codex
Cycle: 1
Architectural read:
Blocking findings: 1
Finding 1 —
one-offF1implementations/python/tests/sem234_mixed_composition_model.py:304policiestuple becauseany(...)is false. With empty crossings and emitted output,project_history()also returns empty and the subset check succeeds, allowingdeliver()to record an effect without…Brad-Edwards commentedon Sep 17, 2026
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
Brad-Edwards commentedon Sep 17, 2026
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
Brad-Edwards commentedon Sep 17, 2026
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_outputAttempt: 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.
Brad-Edwards commentedon Sep 17, 2026
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_outputDecision 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.
Brad-Edwards commentedon Sep 17, 2026
Pre-PR base synchronization
refs/remotes/origin/devat2a33497459ce8b8810d08dc679589821f8a7859cmerged_clean1d796ff0473759d2ea922cd8525bdd8a3d17e55d4f3e62657e6a37dd9e5f8a394acce7350e4c8c52Brad-Edwards commentedon Sep 17, 2026
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-controlCycle: 1 / 1
Findings: 2
Finding 1 — [critical]
implementations/python/tests/test_sem_234_mixed_composition.pyProblem: 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_hookProblem: The test spawns a real
bashsubprocess 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.
Brad-Edwards commentedon Sep 17, 2026
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
remain subject to the existing
fix/wontfix/not-applicablerules.Brad-Edwards commentedon Sep 17, 2026
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_reviewinvocation to count cycles.Brad-Edwards commentedon Sep 17, 2026
Review decision record — test-quality cycle 1 (issue #1013)
Reviewer: test-quality
Cycle: 1
Architectural read:
Blocking findings: 2
Finding 1 —
class(18 instances)F1implementations/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-offF2Brad-Edwards commentedon Sep 17, 2026
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) — ACTIVESEM-230(Participant Information-Flow And Control Semantics) — ACTIVESCE-002(Scenario Composition, Parameterization, and Randomization) — ACTIVEAPI-423(Participant Crossing Policy And Evidence Contracts) — ACTIVERUN-310(Intervention, Handoff, And Supervisory Lifecycle) — ACTIVEFiles changed
Reviews
Traceability reconciliation
Merged records only.
Status