Repository navigation
Publish participant-control provider and profile contracts #1072
Description
Parent: #1068
Bounded outcome
Publish closed portable contracts for participant-control profile selection,
mechanism-provider capability, composed decisions, IFC-resolved state, requested
typed effects, and exact apparatus/evidence bindings.
This issue implements the contract design accepted by #1068 and the semantic
authority delivered by its semantics child. The #1068 architecture prerequisite
is satisfied at merged revision ebb70a34b8e7d1cc8964c443841ae57e12ed1014; #1070 remains the semantic and requirement-backed prerequisite.
Required contract surface
- Exact profile and mechanism identity, revision, implementation/provenance,
configuration digest, authority, limitation, and evidence references. - Backend-declared and effective support without treating declarations as
realization. - Typed mechanism results that distinguish deterministic decisions, advisory
evidence, resolved IFC facts, and requested control effects. - Exact participant, episode, crossing, direction, sink, state cut, history
head, policy revision, and triggering/predecessor bindings. - Composition records that preserve every contributing mechanism and the
governed rule producing the effective result. - Triggered-effect bindings to existing inject, intervention, transformation,
handoff, interruption, action, and disclosure authorities. - Explicit unsupported, abstain, deny, conflict, stale, failed, weakened, and
applied dispositions.
Acceptance criteria
- Contracts are closed, schema-published, versioned, fixture-backed, and usable
by independently installed backend packages. - No open
taint,labels,policy,effects,plugin,context, or
mechanism-metadata map becomes semantic authority. - Scenario or participant content cannot name executable provider code.
- Provider support is not inferred from importability, method presence, or a
manifest term. - Portable records contain no prompt, credential, private model state, raw
rejected payload, backend-native handle, or external-apparatus detail. - Valid and invalid fixtures cover multiple mechanisms, IFC-triggered injects,
conflict, downgrade, stale cuts, and dishonest capability claims.
Non-goals
- Loading executable plugins, selecting a concrete mechanism for a backend, or
implementing runtime effects. - Defining a second action, crossing, intervention, evidence, audit, or
persistence hierarchy.
Dependencies
- Blocked by Design modular participant control with extensible dynamic IFC and governed control effects #1068 and Define extensible dynamic-IFC profiles and participant-control mechanism composition #1070.
Requirements
These are OpenRAE/rae portable authorities. New SEM-235, API-424, RUN-320 and ASR-538 records and the ASR-536 amendment took authority through #1068 at merged revision ebb70a34b8e7d1cc8964c443841ae57e12ed1014; DRAFT does not mean implemented.
- API-424 — Participant-Control Provider, Composition and Effect Contracts
- SEM-235 — Modular Participant Control and Extensible Dynamic IFC Semantics
- API-407 — Participant Feature Support And Constraint Declaration
- API-409 — Participant External Input And Intervention Contracts
- API-423 — Participant Crossing Policy And Evidence Contracts
Architecture binding from #1068
Implement or consume ADR-108 and participant-control-composition/rev1 (PC-01–PC-15). Worked cases, requirement disposition, and the delivery graph supply the acceptance and dependency detail.
The linked design is accepted at merged revision ebb70a34b8e7d1cc8964c443841ae57e12ed1014. Dependent implementation must pin this accepted authority and the required released artifacts; listing a UID does not remove an implementation dependency.
Required predecessors within this program: OpenRAE/rae#1068, OpenRAE/rae#1070.
Delivery PR: OpenRAE/rae#1234, merged into dev as ebb70a34b8e7d1cc8964c443841ae57e12ed1014.
Activity
[-]Publish participant-control provider and profile contracts[/-][+]Deferred: Publish participant-control provider and profile contracts[/+]12 remaining items
Brad-Edwards commentedon Sep 20, 2026
Review decision record — codex cycle 1 (issue #1072)
Reviewer: codex
Cycle: 1
Verdict:
ship-with-fixesArchitectural read:
Blocking findings: 3
Finding 1 —
class(2 instances)core-F1implementations/python/packages/raes_contracts/contracts/participant_control_composition.py:184implementations/python/packages/raes_contracts/contracts/participant_control_composition.py:174implementations/python/packages/raes_contracts/contracts/participant_control_composition.py:184Finding 2 —
one-offcore-F2implementations/python/packages/raes_contracts/contracts/participant_control_composition.py:224Finding 3 —
one-offcore-F3implementations/python/packages/raes_contracts/contracts/participant_control_composition.py:194Brad-Edwards commentedon Sep 20, 2026
Pre-PR base synchronization
refs/remotes/origin/devat7128f0cc25d44a37264a660a1b3854e4b9348678merged_clean84f3a92cee90d03b4116aa435745cdc1e645d11118323c365fca136b79f666b571900081dccb6b02Brad-Edwards commentedon Sep 20, 2026
Pre-PR base synchronization
refs/remotes/origin/devat7128f0cc25d44a37264a660a1b3854e4b9348678already_currentad5d2ee55d838e6520af9bebdee9c1a50c0c51079564a9346f7fba8326723106dc813b95d134f29dBrad-Edwards commentedon Sep 20, 2026
Pre-PR base synchronization
refs/remotes/origin/devat7128f0cc25d44a37264a660a1b3854e4b9348678already_current579ce0e1c05ec625f8e3514485e2f643827a6510dbf2c36234fada66cf51c5ab64c82ce4eddf7de9Brad-Edwards commentedon Sep 20, 2026
Pre-PR base synchronization
refs/remotes/origin/devat7128f0cc25d44a37264a660a1b3854e4b9348678already_currentee943ee27fc4026af63dc5b6f59751688d707c7f2ac44482b8e4ed45910fdb3bd2b7a0743f612aedBrad-Edwards commentedon Sep 20, 2026
Pre-PR base synchronization
refs/remotes/origin/devat7128f0cc25d44a37264a660a1b3854e4b9348678already_current94ab12f7bc36971614bfaeb91a20f8f4085be89d54051d03ad43aa0b523386e8304b1c79acb831cdBrad-Edwards commentedon Sep 20, 2026
Pre-PR base synchronization
refs/remotes/origin/devat7128f0cc25d44a37264a660a1b3854e4b9348678already_currente14818f29c24c6e6fd26afcf6c7b1a003b8d30259c36462faa0e15a7ac55eb09abe4c21980cf180eBrad-Edwards commentedon Sep 20, 2026
Pre-PR base synchronization
refs/remotes/origin/devat7128f0cc25d44a37264a660a1b3854e4b9348678already_currentfdc1863d8ca3ddc2ac9f7f679b2a74223016a3c6f3ef255c15c62b414197361fe57510ba388d7ce5Brad-Edwards commentedon Sep 20, 2026
Ready for review — issue #1072
PR: #1334
Plan: #1072 (comment)
Outcome
Backend authors can use closed, versioned participant-control selection, evaluation, and teaching-profile contracts with deterministic composition and trusted effect-resolution boundaries. This delivers contracts and validation, not provider installation or runtime dispatch.
In-scope requirements
Proposed state in this PR — authoritative only after merge.
API-424(Participant-Control Provider, Composition and Effect Contracts) — ACTIVE (proposed) — Proposed DRAFT to ACTIVE transition included in the delivery diff; authoritative after merge.SEM-235(Modular Participant Control and Extensible Dynamic IFC Semantics) — ACTIVE (proposed)API-407(Participant Feature Support And Constraint Declaration) — ACTIVE (proposed)API-409(Participant External Input And Intervention Contracts) — ACTIVE (proposed)API-423(Participant Crossing Policy And Evidence Contracts) — ACTIVE (proposed)Files changed
Added:
contracts/fixtures/participant-runtime/participant-control-evaluation-v1/context-invalid/dishonest.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/context-invalid/stale.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/invalid/executable-selector.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/valid/conflict.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/valid/downgrade.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/valid/exhausted-replay.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/valid/teaching-inject.jsoncontracts/fixtures/participant-runtime/participant-control-selection-v1/invalid/executable-selector.jsoncontracts/fixtures/participant-runtime/participant-control-selection-v1/valid/teaching-inject.jsoncontracts/fixtures/participant-runtime/participant-control-teaching-profile-v1/invalid/teaching.jsoncontracts/fixtures/participant-runtime/participant-control-teaching-profile-v1/valid/teaching.jsoncontracts/profiles/participant-control/teaching-influence-rev1.jsoncontracts/schema-publication/entries/participant-control-evaluation-v1.jsoncontracts/schema-publication/entries/participant-control-selection-v1.jsoncontracts/schema-publication/entries/participant-control-teaching-profile-v1.jsoncontracts/schemas/participant-runtime/participant-control-evaluation-v1.jsoncontracts/schemas/participant-runtime/participant-control-selection-v1.jsoncontracts/schemas/participant-runtime/participant-control-teaching-profile-v1.jsondocs/decisions/issue-1072-api-407-feature-support-preflight.mddocs/decisions/issue-1072-api-409-control-effect-bindings-preflight.mddocs/decisions/issue-1072-api-424-provider-contracts-preflight.mddocs/explain/reference/modular-participant-control-contracts.mddocs/governance/requirement-scopes/1072.jsondocs/research/formal-semantic-validation/analysis-v36.jsondocs/research/formal-semantic-validation/analysis-v37.jsondocs/research/formal-semantic-validation/bundles/retest-v36.jsondocs/research/formal-semantic-validation/bundles/retest-v37.jsondocs/research/formal-semantic-validation/execution-snapshot-v36.jsondocs/research/formal-semantic-validation/execution-snapshot-v37.jsondocs/research/specification-coverage/analysis-v36.jsondocs/research/specification-coverage/analysis-v37.jsondocs/research/specification-coverage/bundles/raes-standardized-specification-coverage-issue-1072-v36.jsondocs/research/specification-coverage/bundles/raes-standardized-specification-coverage-issue-1072-v37.jsondocs/research/specification-coverage/execution-snapshot-v36.jsondocs/research/specification-coverage/execution-snapshot-v37.jsonimplementations/python/packages/raes_backend_protocols/participant_control_admission.pyimplementations/python/packages/raes_contracts/contracts/_candidate_synthesis_facade.pyimplementations/python/packages/raes_contracts/contracts/_participant_control_exports.pyimplementations/python/packages/raes_contracts/contracts/participant_control_composition.pyimplementations/python/packages/raes_contracts/contracts/participant_control_coordinates.pyimplementations/python/packages/raes_contracts/contracts/participant_control_effect_composition.pyimplementations/python/packages/raes_contracts/contracts/participant_control_effects.pyimplementations/python/packages/raes_contracts/contracts/participant_control_profiles.pyimplementations/python/packages/raes_contracts/contracts/participant_control_resolution.pyimplementations/python/packages/raes_contracts/contracts/participant_control_results.pyimplementations/python/packages/raes_contracts/contracts/participant_control_selection.pyimplementations/python/tests/participant_control_contract_fixtures.pyimplementations/python/tests/test_api_424_capability_admission.pyimplementations/python/tests/test_api_424_composition_boundaries.pyimplementations/python/tests/test_api_424_control_effects.pyimplementations/python/tests/test_api_424_control_resolution.pyimplementations/python/tests/test_api_424_governance.pyimplementations/python/tests/test_api_424_participant_control_contracts.pyimplementations/python/tests/test_api_424_publication.pyimplementations/python/tests/test_api_424_review_regressions.pyimplementations/python/tests/test_api_424_security_profile.pyModified:
contracts/concept-authority/controlled-vocabularies-v1.jsoncontracts/fixtures/backend-manifest/backend-manifest-v2/valid/stub.jsoncontracts/fixtures/concept-authority/controlled-vocabularies-v1/valid/reference.jsoncontracts/schema-publication/entries/backend-manifest-v2.jsoncontracts/schema-publication/entries/backend-profile-v1.jsoncontracts/schemas/backend-manifest/backend-manifest-v2.jsoncontracts/schemas/profiles/backend-profile-v1.jsondocs/public/participant-control.mddocs/requirements/API-407/requirement.mddocs/requirements/API-409/requirement.mddocs/requirements/API-423/requirement.mddocs/requirements/API-424/requirement.mddocs/requirements/SEM-235/requirement.mddocs/research/formal-semantic-validation/index.mddocs/research/specification-coverage/index.mdimplementations/python/packages/raes/observability_plane_semantics.pyimplementations/python/packages/raes_backend_protocols/protocols.pyimplementations/python/packages/raes_conformance/conformance/validators.pyimplementations/python/packages/raes_contracts/contracts/__init__.pyimplementations/python/packages/raes_contracts/contracts/_exports.pyimplementations/python/packages/raes_contracts/contracts/bundle_runtime.pyimplementations/python/packages/raes_contracts/json_ingress.pyimplementations/python/packages/raes_contracts/manifest_authority.pyimplementations/python/packages/raes_contracts/participant_flow_policy_profiles.pyimplementations/python/tests/test_corpus_packaging.pyimplementations/python/tests/test_formal_semantic_validation.pyimplementations/python/tests/test_issue_989_versioned_evidence.pyimplementations/python/tests/test_json_ingress.pyimplementations/python/tests/test_specification_coverage.pytools/check_specification_coverage.pytools/formal_semantic_validation/_baseline.pytools/formal_semantic_validation/_loading.pytools/formal_semantic_validation/_releases.pytools/formal_semantic_validation/_retest.pytools/generate_contract_schemas.pytools/policy/requirement_order.yamlReviews
Traceability reconciliation
Status
Brad-Edwards commentedon Sep 20, 2026
Final report — issue #1072 complete
PR: #1334
Plan: #1072 (comment)
Outcome
Backend authors can use closed, versioned participant-control selection, evaluation, and teaching-profile contracts with deterministic composition and trusted effect-resolution boundaries. This delivers contracts and validation, not provider installation or runtime dispatch.
In-scope requirements
Verified at merge revision
f784be2d1dd8.API-424(Participant-Control Provider, Composition and Effect Contracts) — ACTIVE — Transitioned in the delivery diff and verified at the merge revision.SEM-235(Modular Participant Control and Extensible Dynamic IFC Semantics) — ACTIVEAPI-407(Participant Feature Support And Constraint Declaration) — ACTIVEAPI-409(Participant External Input And Intervention Contracts) — ACTIVEAPI-423(Participant Crossing Policy And Evidence Contracts) — ACTIVEFiles changed
Added:
contracts/fixtures/participant-runtime/participant-control-evaluation-v1/context-invalid/dishonest.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/context-invalid/stale.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/invalid/executable-selector.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/valid/conflict.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/valid/downgrade.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/valid/exhausted-replay.jsoncontracts/fixtures/participant-runtime/participant-control-evaluation-v1/valid/teaching-inject.jsoncontracts/fixtures/participant-runtime/participant-control-selection-v1/invalid/executable-selector.jsoncontracts/fixtures/participant-runtime/participant-control-selection-v1/valid/teaching-inject.jsoncontracts/fixtures/participant-runtime/participant-control-teaching-profile-v1/invalid/teaching.jsoncontracts/fixtures/participant-runtime/participant-control-teaching-profile-v1/valid/teaching.jsoncontracts/profiles/participant-control/teaching-influence-rev1.jsoncontracts/schema-publication/entries/participant-control-evaluation-v1.jsoncontracts/schema-publication/entries/participant-control-selection-v1.jsoncontracts/schema-publication/entries/participant-control-teaching-profile-v1.jsoncontracts/schemas/participant-runtime/participant-control-evaluation-v1.jsoncontracts/schemas/participant-runtime/participant-control-selection-v1.jsoncontracts/schemas/participant-runtime/participant-control-teaching-profile-v1.jsondocs/decisions/issue-1072-api-407-feature-support-preflight.mddocs/decisions/issue-1072-api-409-control-effect-bindings-preflight.mddocs/decisions/issue-1072-api-424-provider-contracts-preflight.mddocs/explain/reference/modular-participant-control-contracts.mddocs/governance/requirement-scopes/1072.jsondocs/research/formal-semantic-validation/analysis-v36.jsondocs/research/formal-semantic-validation/analysis-v37.jsondocs/research/formal-semantic-validation/bundles/retest-v36.jsondocs/research/formal-semantic-validation/bundles/retest-v37.jsondocs/research/formal-semantic-validation/execution-snapshot-v36.jsondocs/research/formal-semantic-validation/execution-snapshot-v37.jsondocs/research/specification-coverage/analysis-v36.jsondocs/research/specification-coverage/analysis-v37.jsondocs/research/specification-coverage/bundles/raes-standardized-specification-coverage-issue-1072-v36.jsondocs/research/specification-coverage/bundles/raes-standardized-specification-coverage-issue-1072-v37.jsondocs/research/specification-coverage/execution-snapshot-v36.jsondocs/research/specification-coverage/execution-snapshot-v37.jsonimplementations/python/packages/raes_backend_protocols/participant_control_admission.pyimplementations/python/packages/raes_contracts/contracts/_candidate_synthesis_facade.pyimplementations/python/packages/raes_contracts/contracts/_participant_control_exports.pyimplementations/python/packages/raes_contracts/contracts/participant_control_composition.pyimplementations/python/packages/raes_contracts/contracts/participant_control_coordinates.pyimplementations/python/packages/raes_contracts/contracts/participant_control_effect_composition.pyimplementations/python/packages/raes_contracts/contracts/participant_control_effects.pyimplementations/python/packages/raes_contracts/contracts/participant_control_profiles.pyimplementations/python/packages/raes_contracts/contracts/participant_control_resolution.pyimplementations/python/packages/raes_contracts/contracts/participant_control_results.pyimplementations/python/packages/raes_contracts/contracts/participant_control_selection.pyimplementations/python/tests/participant_control_contract_fixtures.pyimplementations/python/tests/test_api_424_capability_admission.pyimplementations/python/tests/test_api_424_composition_boundaries.pyimplementations/python/tests/test_api_424_control_effects.pyimplementations/python/tests/test_api_424_control_resolution.pyimplementations/python/tests/test_api_424_governance.pyimplementations/python/tests/test_api_424_participant_control_contracts.pyimplementations/python/tests/test_api_424_publication.pyimplementations/python/tests/test_api_424_review_regressions.pyimplementations/python/tests/test_api_424_security_profile.pyModified:
contracts/concept-authority/controlled-vocabularies-v1.jsoncontracts/fixtures/backend-manifest/backend-manifest-v2/valid/stub.jsoncontracts/fixtures/concept-authority/controlled-vocabularies-v1/valid/reference.jsoncontracts/schema-publication/entries/backend-manifest-v2.jsoncontracts/schema-publication/entries/backend-profile-v1.jsoncontracts/schemas/backend-manifest/backend-manifest-v2.jsoncontracts/schemas/profiles/backend-profile-v1.jsondocs/public/participant-control.mddocs/requirements/API-407/requirement.mddocs/requirements/API-409/requirement.mddocs/requirements/API-423/requirement.mddocs/requirements/API-424/requirement.mddocs/requirements/SEM-235/requirement.mddocs/research/formal-semantic-validation/index.mddocs/research/specification-coverage/index.mdimplementations/python/packages/raes/observability_plane_semantics.pyimplementations/python/packages/raes_backend_protocols/protocols.pyimplementations/python/packages/raes_conformance/conformance/validators.pyimplementations/python/packages/raes_contracts/contracts/__init__.pyimplementations/python/packages/raes_contracts/contracts/_exports.pyimplementations/python/packages/raes_contracts/contracts/bundle_runtime.pyimplementations/python/packages/raes_contracts/json_ingress.pyimplementations/python/packages/raes_contracts/manifest_authority.pyimplementations/python/packages/raes_contracts/participant_flow_policy_profiles.pyimplementations/python/tests/test_corpus_packaging.pyimplementations/python/tests/test_formal_semantic_validation.pyimplementations/python/tests/test_issue_989_versioned_evidence.pyimplementations/python/tests/test_json_ingress.pyimplementations/python/tests/test_specification_coverage.pytools/check_specification_coverage.pytools/formal_semantic_validation/_baseline.pytools/formal_semantic_validation/_loading.pytools/formal_semantic_validation/_releases.pytools/formal_semantic_validation/_retest.pytools/generate_contract_schemas.pytools/policy/requirement_order.yamlReviews
Traceability reconciliation
All five in-scope requirement records are reconciled in the delivery diff. Runtime provider installation and dispatch remain outside this contract delivery.
Status