Skip to content

Bind authored exposure choices to participant decision surfaces (DSL-125) #300

Closed

Description

@Brad-Edwards

SEM-226 exposure handling and decision-surface contracts already exist. ADR-095 defines actionable v2 surfaces, exact state cuts, and separate projection, authorization, delivery, and selection.

The remaining task is to identify and complete the author's route to those contracts.

Done when

  • Map authored observations, control-context assets, hidden/evaluator assets, and role-scoped context to explicit exposure choices. Identify which choices belong in SDL and which belong in run apparatus.
  • Compile those choices into references that the existing projection and delivery paths actually consume.
  • Cover initial and later decisions, policy changes between projection and delivery, withheld content, and role-specific disclosure.
  • Reject unknown assets, wrong participant/episode, stale policy/cut, and attempts to expose assurance-only data without authorization.
  • Trace one declaration through compiled bindings, delivered v2 content, and provenance; document compatibility and migration.

Consume #299's context references. Reuse existing observation and audience boundaries; preserve historical v1 meaning. Parent: #120.

Current implementation and remaining acceptance

  • Credit existing compiled control-context selections and observation-boundary references before adding syntax.
  • Demonstrate the remaining authored-choice-to-delivered-content joins while keeping projection, authorization, delivery and observation separate.

Review basis

Reviewed against origin/dev at 0fd7ca30b1f17965263533e1a610731e4ab8ad8a on 2026-10-29. These links identify the baseline; implementation must use the current governed contracts.

Requirements

  • DSL-125 — Participant Decision Exposure And Visibility Surface

Activity

  1. added
    requirementTracks a Ground Control requirement
    wave-tbdRequirement with no wave assignment yet
    on May 18, 2026
  2. changed the title [-]Participant Decision Exposure And Visibility Surface (DSL-125)[/-] [+]Bind authored exposure choices to participant decision surfaces (DSL-125)[/+] on Sep 21, 2026
  3. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    🛠️ Picked up by /implement - driver codex, branch 300-authored-exposure-bindings, 2026-10-31T14:51:29.422Z.

  4. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: preflight (issue #300). 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 Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Design complete

    Issue #300; branch 300-authored-exposure-bindings; pickup 6544962571.

    Design digest: 1dc5d2a480cc7588a1e6d49f1426b11de31f3d6c5bb9c0dfcd6ebee947a2daf9.

    • docs/decisions/issue-300-authored-exposure-design.md (54d4eed75a7fbd6140f0b19701b0dff8876487a53eaa72f4b7a8a729182d3df2)
    • docs/decisions/issue-300-dsl-125-participant-decision-exposure-preflight.md (af8415ed4fd8abafc8d0fec65b3e4e90b7fa7ad73dc0048d484ec720a22a8dfb)

    Research and coverage

    • specs/sdl/participant-control-context.md: Reuse existing slots and trial binding.
    • implementations/python/packages/raes_contracts/participant_control_context.py: Reuse ACT-620 authority and content checks.
    • implementations/python/packages/raes_processor/models/decision_surface_v2.py: Consume compiled pins at existing projector.
    • https://raw.githubusercontent.com/pydantic/pydantic/v2.12.5/docs/concepts/models.md (2.12.5, Validation and model copy): Revalidate carriers.
    • https://csrc.nist.gov/pubs/sp/800/162/upd2/final (2019 update, ABAC definition): Separate authored intent from live authority.
    • https://www.asd-ste100.org/assets/files/ASD-STE100_ISSUE9.pdf (Issue 9, Rules 1, 4, 6, 9): Terminology and document review.
    • architecture: docs/decisions/issue-300-authored-exposure-design.md: architecture decisions; reviewed against ACT-620, ADR-095 and STE100 Issue 9.
    • systems_security: docs/decisions/issue-300-authored-exposure-design.md: systems security decisions; reviewed against ACT-620, ADR-095 and STE100 Issue 9.
    • data_flows: docs/decisions/issue-300-authored-exposure-design.md: data flows decisions; reviewed against ACT-620, ADR-095 and STE100 Issue 9.
    • diagrams: docs/decisions/issue-300-authored-exposure-design.md: diagrams decisions; reviewed against ACT-620, ADR-095 and STE100 Issue 9.
    • policy_as_code: docs/decisions/issue-300-authored-exposure-design.md: policy as code decisions; reviewed against ACT-620, ADR-095 and STE100 Issue 9.
    • architecture_as_code: docs/decisions/issue-300-authored-exposure-design.md: architecture as code decisions; reviewed against ACT-620, ADR-095 and STE100 Issue 9.
    • adr_changes: docs/decisions/issue-300-authored-exposure-design.md: adr changes decisions; reviewed against ACT-620, ADR-095 and STE100 Issue 9.
    • document_review: docs/decisions/issue-300-authored-exposure-design.md: document review decisions; reviewed against ACT-620, ADR-095 and STE100 Issue 9.
  6. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: plan (issue #300). 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 DSL-125 using the existing control-context slots and observation boundaries. Design: docs/decisions/issue-300-authored-exposure-design.md; binding preflight: docs/decisions/issue-300-dsl-125-participant-decision-exposure-preflight.md.

    1. Path A: add AuthoredParticipantExposureV2 and validation in raes_processor/models/authored_participant_exposure_v2.py. Public interfaces validate_authored_participant_exposure_v2 and deliver_authored_participant_decision_surface_v2 consume compiled slot pins, ACT-620 records and trusted validation context. Reject withheld, unknown, stale or cross-scope assets; require independent source visibility and ACT-620 agreement.
    2. Path A: integrate the validator into project_participant_decision_surface_v2 through an optional typed argument. Preserve legacy callers without authored selections. Reuse ParticipantExposureResolversV2, exact-cut anchors and ordinary exposure checks. Validate delivered records with current authority after binding a trusted delivery record; no projection-to-delivery shortcut.
    3. Path A: test a parsed and compiled declaration through source-bound v2 projection, delivery and provenance. Test initial/later decisions, role selections, withholding, unknown/stale asset pins, wrong participant/episode, stale cut/policy and hidden source. Reuse existing ACT-620 content and v2 fixture helpers. Trial compilation already lowers admitted configuration selections into concrete slots; verify that path remains covered by the existing targeted trial tests.
    4. Path D: update normative specs/sdl/participant-control-context.md and v2 migration guidance; add clause mapping, then transition DSL-125 to ACTIVE with accurate IMPLEMENTS/TESTS links in the delivery diff.

    Security: bounded parser and closed models remain unchanged; compiled intent cannot grant authority. ACT-620 owns content/lifecycle/roles; SEM-226 owns exact-cut exposure; existing delivery and crossing interfaces own live releases. No credentials, readers, stores, transports or environment bindings are added. Maintainability: reuse these incumbents and coarse validation errors. Extensibility: typed records bind immutable identity to result refs without asset-kind branching. Whole repository: honor ADR-095/117, existing imports, schema authority and policy checks. No schema changes, version edits or changelog fragments.

    Set RAES_REQUIREMENT_UID=DSL-125 for checks. Observe targeted red/green tests before implementing each new boundary. Run explicit relevant pytest modules/cases, file-local policy and targeted documentation checks locally. CI owns full suites. Preserve pre-publish hooks, bounded review, hosted CI/Sonar and readiness; stop before merge.

  7. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Design complete

    Issue #300; branch 300-authored-exposure-bindings; pickup 6544962571.

    Design digest: 22bbcc3eac324da782dba882f7d2435124472a13b6a9ea9cf4827a24e291b690.

    • docs/decisions/issue-300-authored-exposure-design.md (25c3f1960cd5ecf9e80f3cfa7db4d97474cea786bc34456397635820874c069f)
    • docs/decisions/issue-300-dsl-125-participant-decision-exposure-preflight.md (af8415ed4fd8abafc8d0fec65b3e4e90b7fa7ad73dc0048d484ec720a22a8dfb)

    Research and coverage

    • specs/sdl/participant-control-context.md: Reuse slots and sealed configuration results.
    • implementations/python/packages/raes_contracts/participant_control_context.py: ACT-620 authority.
    • https://raw.githubusercontent.com/pydantic/pydantic/v2.12.5/docs/concepts/models.md (2.12.5, Validation): Revalidate mutable carriers.
    • https://csrc.nist.gov/pubs/sp/800/162/upd2/final (2019, ABAC definition): Live authority.
    • https://www.asd-ste100.org/assets/files/ASD-STE100_ISSUE9.pdf (Issue 9, Rules 1,4,6,9): Document review.
    • architecture: docs/decisions/issue-300-authored-exposure-design.md: architecture; reviewed against incumbents and STE Issue 9.
    • systems_security: docs/decisions/issue-300-authored-exposure-design.md: systems_security; reviewed against incumbents and STE Issue 9.
    • data_flows: docs/decisions/issue-300-authored-exposure-design.md: data_flows; reviewed against incumbents and STE Issue 9.
    • diagrams: docs/decisions/issue-300-authored-exposure-design.md: diagrams; reviewed against incumbents and STE Issue 9.
    • policy_as_code: docs/decisions/issue-300-authored-exposure-design.md: policy_as_code; reviewed against incumbents and STE Issue 9.
    • architecture_as_code: docs/decisions/issue-300-authored-exposure-design.md: architecture_as_code; reviewed against incumbents and STE Issue 9.
    • adr_changes: docs/decisions/issue-300-authored-exposure-design.md: adr_changes; reviewed against incumbents and STE Issue 9.
    • document_review: docs/decisions/issue-300-authored-exposure-design.md: document_review; reviewed against incumbents and STE Issue 9.
  8. 9 remaining items

  9. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation ISSUE-300-RETAINED-REPRODUCTION — Opened

    Category: failing_check
    Observed state: The retained reproduction record test calls fresh measurement admission, which recomputes every current package source pin and rejects immutable prior execution evidence after a package change.
    Impact: Source changes invalidate archival integrity tests even when the pinned reproduction measurement and accepted review remain unchanged.
    Current obligation: Separate pinned archival measurement integrity from fresh-source measurement admission, preserve current-source checks, and test substitution refusal.

    Evidence

  10. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation ISSUE-300-CURRENT-RESEARCH-CAPTURES — Resolved

    Category: failing_check
    Observed state: Fresh source-bound formal/specification captures and runtime-mapping artifacts now exist.
    Impact: Current research loaders and source mapping can verify the changed source without rewriting history.
    Current obligation: Restore current source-bound evidence.

    Evidence

    • docs/research/formal-semantic-validation/captures/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f/manifest.json
    • docs/research/specification-coverage/captures/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41/manifest.json

    Disposition: fix
    Corrective action: Re-executed bounded collectors and recorded immutable branch captures, including final runtime mapping.

    Verification

    • 293 targeted evidence tests passed; 18 named participant-fixture cases passed during collection.
    • Final published mapping comparison passed.
  11. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation ISSUE-300-RETAINED-REPRODUCTION — Resolved

    Category: failing_check
    Observed state: Pinned archival admission is separate from strict fresh-source admission.
    Impact: Retained reviewed evidence survives subsequent source changes without claiming current-source replay.
    Current obligation: Preserve archival integrity and strict fresh-source checks.

    Evidence

    • implementations/formal/participant_crossing/reproduction.py
    • implementations/python/tests/test_issue_975_reproduction_record.py

    Disposition: fix
    Corrective action: Validate retained measurements against the repository-selected capture manifest and measurement digest; preserve original source pins only in the archival path.

    Verification

    • 19 reproduction tests passed before the final source-read separation.
    • All 6 retained-record tests passed after source-read separation.
    • Final fresh-measurement and mapping checks: 2 passed.
  12. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Document consistency before push

    Issue #300; branch 300-authored-exposure-bindings; pickup 6544962571.

    Design digest: efa3843cfe23fdc3ad3a3bd8dad011454fbe62457e278a3a163ba8eda6797536.

    • docs/decisions/issue-300-authored-exposure-design.md (348b836946d4bdea67a270fb77cfe3fa207e902337263cc716e535432fbe52a2)
    • docs/decisions/issue-300-dsl-125-participant-decision-exposure-preflight.md (af8415ed4fd8abafc8d0fec65b3e4e90b7fa7ad73dc0048d484ec720a22a8dfb)

    Reviewed final repair against the updated design and reproduction specification. Fresh-source admission remains strict; retained admission requires the fixed repository capture pin, target subject, exact artifact digest, and unchanged claim fields, and does not recompute current source pins. Historical artifacts and acceptance records remain unchanged. The bounded research captures preserve observed classifications and source identity. Targeted verification passed: 293 evidence tests, 19 reproduction tests before final refactor, all 6 retained-record tests and the final fresh-measurement/mapping checks after it. Ruff, file-local policy and whitespace checks pass.

    Candidate tree: 2fd037d80c739af75054de6a3f70ac78862e50a6.
    Document check: vale: server-owned baseline (Vale.Repetition)
    Checker identity: a9749df8f46a9b49cf48ed4d14b737dd480f2c3a1a933959433a535c894408b7.

  13. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Pre-PR base synchronization

    • Source: refs/remotes/origin/dev at 34afe9696b610748888cff2c310727323fefe24d
    • Outcome: already_current
    • Published feature head: 17b108d1d4fa90bb0ebedb70678321e7352fc08b
    • Synchronized tree: 2fd037d80c739af75054de6a3f70ac78862e50a6
  14. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation ISSUE-300-SONAR-MAINTAINABILITY — Opened

    Category: quality
    Observed state: SonarCloud reports function complexity 35, cognitive complexity 51, and one exception-test construction issue.
    Impact: The PR quality gate is not satisfied.
    Current obligation: Split the validator by responsibility, simplify the exception assertion and verify unchanged enforcement.

    Evidence

    • .gc/sonar/1769-1793461890167.json
  15. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Review decision record — sonarcloud cycle 1 (issue #300)

    Reviewer: sonarcloud
    Cycle: 1
    Verdict: ship-with-fixes

    Architectural read:

    Keep author intent separate from live authority while splitting the existing checks by responsibility.

    Blocking findings: 3

    Finding 1 — one-off

    • ID: AaGSqFK5XbG6mhdFWtKa
    • Title: Authored validator exceeds function complexity limit
    • Decision: fix
    • Rationale: Extract configuration selection, record validation and coverage checks; retain all behavior tests.

    Finding 2 — one-off

    • ID: AaGSqFK5XbG6mhdFWtKb
    • Title: Authored validator exceeds cognitive complexity limit
    • Decision: fix
    • Rationale: Use the same focused-helper refactor with guarded returns.

    Finding 3 — one-off

    • ID: AaGSqFPcXbG6mhdFWtKc
    • Title: Exception test contains multiple throwing calls
    • Decision: fix
    • Rationale: Build the mutated configuration before entering the exception assertion.
  16. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation ISSUE-300-SONAR-MAINTAINABILITY — Resolved

    Category: quality
    Observed state: Selection/configuration, record authorization and coverage checks now have separate focused helpers; exception construction moved outside the raises block.
    Impact: The source preserves the same enforcement with bounded per-function complexity.
    Current obligation: Resolve all three SonarCloud maintainability findings.

    Evidence

    • implementations/python/packages/raes_processor/models/authored_participant_exposure_v2.py
    • implementations/python/tests/test_dsl_125_authored_exposure.py

    Disposition: fix
    Corrective action: Refactored without changing the public interface, preserved existing security assertions, and refreshed immutable evidence for the new source.

    Verification

    • 40 targeted exposure/runtime tests passed.
    • Ruff C901 max-complexity=10 passed; normal lint and file-local policy passed.
    • Fresh formal/specification collectors passed, including 18 participant cases; current specification, formal-loader and mapping tests passed.
  17. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Document consistency before push

    Issue #300; branch 300-authored-exposure-bindings; pickup 6544962571.

    Design digest: efa3843cfe23fdc3ad3a3bd8dad011454fbe62457e278a3a163ba8eda6797536.

    • docs/decisions/issue-300-authored-exposure-design.md (348b836946d4bdea67a270fb77cfe3fa207e902337263cc716e535432fbe52a2)
    • docs/decisions/issue-300-dsl-125-participant-decision-exposure-preflight.md (af8415ed4fd8abafc8d0fec65b3e4e90b7fa7ad73dc0048d484ec720a22a8dfb)

    The Sonar repair changes only the internal organization of existing authored exposure checks and test setup. Compared each extracted selection, record, context and coverage check with the prior enforcement and current design. All 40 targeted exposure/runtime cases pass, as do lint, C901 complexity <=10, file-local policy, and the fresh evidence-loader/mapping checks. Recollected source-bound formal/specification and mapping artifacts without changing historical captures. Existing diagrams, external interfaces and authority boundaries remain accurate.

    Candidate tree: abcc2afe83b86fb34d1cf3641b7b7913c863c5c1.
    Document check: vale: server-owned baseline (Vale.Repetition)
    Checker identity: a9749df8f46a9b49cf48ed4d14b737dd480f2c3a1a933959433a535c894408b7.

  18. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Pre-PR base synchronization

    • Source: refs/remotes/origin/dev at 34afe9696b610748888cff2c310727323fefe24d
    • Outcome: already_current
    • Published feature head: abd08c1c384fd975d0a4fe40d9eca593426bcba3
    • Synchronized tree: abcc2afe83b86fb34d1cf3641b7b7913c863c5c1
  19. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Ready for review — issue #300

    PR: #1769
    Plan: #300 (comment)

    Outcome

    Authors' selected and withheld context assets now constrain v2 participant surfaces. Disclosure and delivery require independent current authority, while historical reproduction evidence retains its pinned integrity across source changes.

    Connect compiled direct, reusable and admitted trial selections to existing ACT-620 disclosure and delivery validation. Preserve v1 meaning, add migration and acceptance evidence, refresh source-bound captures, and distinguish archival integrity from fresh-source reproduction.

    In-scope requirements

    Proposed state in this PR — authoritative only after merge.

    • DSL-125 (Participant Decision Exposure And Visibility Surface) — ACTIVE (proposed) — Proposed in the delivery PR; authoritative after merge.

    Files changed

    Added:

    • docs/decisions/issue-300-authored-exposure-design.md
    • docs/decisions/issue-300-dsl-125-participant-decision-exposure-preflight.md
    • docs/explain/sdl/issue-300-clause-mapping.md
    • docs/research/formal-semantic-validation/capture-records/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f.json
    • docs/research/formal-semantic-validation/capture-records/capture-b9107a7be48fad2c956322011309b8925269cca5429138683734c3d63c8156ee.json
    • docs/research/formal-semantic-validation/captures/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f/analysis.json
    • docs/research/formal-semantic-validation/captures/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f/manifest.json
    • docs/research/formal-semantic-validation/captures/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f/snapshot.json
    • docs/research/formal-semantic-validation/captures/capture-b9107a7be48fad2c956322011309b8925269cca5429138683734c3d63c8156ee/analysis.json
    • docs/research/formal-semantic-validation/captures/capture-b9107a7be48fad2c956322011309b8925269cca5429138683734c3d63c8156ee/manifest.json
    • docs/research/formal-semantic-validation/captures/capture-b9107a7be48fad2c956322011309b8925269cca5429138683734c3d63c8156ee/snapshot.json
    • docs/research/specification-coverage/capture-records/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41.json
    • docs/research/specification-coverage/capture-records/capture-86b171af7a8cba6fa76f5546c49e4714ef7ea58c5d07442f09b576b575b375e1.json
    • docs/research/specification-coverage/captures/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41/analysis.json
    • docs/research/specification-coverage/captures/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41/manifest.json
    • docs/research/specification-coverage/captures/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41/snapshot.json
    • docs/research/specification-coverage/captures/capture-86b171af7a8cba6fa76f5546c49e4714ef7ea58c5d07442f09b576b575b375e1/analysis.json
    • docs/research/specification-coverage/captures/capture-86b171af7a8cba6fa76f5546c49e4714ef7ea58c5d07442f09b576b575b375e1/manifest.json
    • docs/research/specification-coverage/captures/capture-86b171af7a8cba6fa76f5546c49e4714ef7ea58c5d07442f09b576b575b375e1/snapshot.json
    • implementations/python/packages/raes_processor/models/authored_participant_exposure_v2.py
    • implementations/python/tests/test_dsl_125_authored_exposure.py
    • specs/formal/participant-semantics/runtime-mapping/capture-1ee1cf7aea1af07510c3b6cc27be235819cab6a3ada4d69779b6abbe37e7bd0c/cases.json
    • specs/formal/participant-semantics/runtime-mapping/capture-1ee1cf7aea1af07510c3b6cc27be235819cab6a3ada4d69779b6abbe37e7bd0c/manifest.json
    • specs/formal/participant-semantics/runtime-mapping/capture-49423089425080144c06a5e8368bd964216f5ebe0cfd173d0bd17a5218b382d3/cases.json
    • specs/formal/participant-semantics/runtime-mapping/capture-49423089425080144c06a5e8368bd964216f5ebe0cfd173d0bd17a5218b382d3/manifest.json

    Modified:

    • docs/explain/reference/participant-decision-surface-v2-migration.md
    • docs/requirements/DSL-125/requirement.md
    • implementations/formal/participant_crossing/reproduction.py
    • implementations/python/packages/raes_processor/models/__init__.py
    • implementations/python/packages/raes_processor/models/decision_surface_v2.py
    • implementations/python/tests/test_issue_975_reproduction_record.py
    • specs/formal/participant-semantics/participant-crossing-reproduction.md
    • specs/sdl/participant-control-context.md

    Reviews

    • codex: Initial core and security review returned ship with no findings. Subsequent CI evidence repairs and Sonar refactoring passed targeted regression checks and hosted CI.
    • sonarcloud: All three maintainability findings resolved; quality gate OK with zero open issues or hotspots.

    Traceability reconciliation

    Proposed in this PR — verified against the merged tree in Phase E.

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

    Status

    • CI: ✅ green
    • SonarCloud: ✅ passed
    • PR ready for user review and merge. Phase E validates the merged requirement state, posts the final report, and closes the issue automatically once this PR merges.
  20. Brad-Edwards commented on Oct 31, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Delivery readiness recorded — Phase E finalizes issue #300 automatically when PR #1769 merges.

  21. github-actions commented on Oct 31, 2026

    @github-actions
    Contributor

    Final report — issue #300 complete

    PR: #1769
    Plan: #300 (comment)

    Outcome

    Authors' selected and withheld context assets now constrain v2 participant surfaces. Disclosure and delivery require independent current authority, while historical reproduction evidence retains its pinned integrity across source changes.

    Connect compiled direct, reusable and admitted trial selections to existing ACT-620 disclosure and delivery validation. Preserve v1 meaning, add migration and acceptance evidence, refresh source-bound captures, and distinguish archival integrity from fresh-source reproduction.

    In-scope requirements

    Verified at merge revision 036d1af96eeb.

    • DSL-125 (Participant Decision Exposure And Visibility Surface) — ACTIVE — Proposed in the delivery PR; authoritative after merge.

    Files changed

    Added:

    • docs/decisions/issue-300-authored-exposure-design.md
    • docs/decisions/issue-300-dsl-125-participant-decision-exposure-preflight.md
    • docs/explain/sdl/issue-300-clause-mapping.md
    • docs/research/formal-semantic-validation/capture-records/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f.json
    • docs/research/formal-semantic-validation/capture-records/capture-b9107a7be48fad2c956322011309b8925269cca5429138683734c3d63c8156ee.json
    • docs/research/formal-semantic-validation/captures/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f/analysis.json
    • docs/research/formal-semantic-validation/captures/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f/manifest.json
    • docs/research/formal-semantic-validation/captures/capture-a31cc361f048c3ab2235a681dd6fe422bf51fe15b29a1b5c2a9ac542ec0c143f/snapshot.json
    • docs/research/formal-semantic-validation/captures/capture-b9107a7be48fad2c956322011309b8925269cca5429138683734c3d63c8156ee/analysis.json
    • docs/research/formal-semantic-validation/captures/capture-b9107a7be48fad2c956322011309b8925269cca5429138683734c3d63c8156ee/manifest.json
    • docs/research/formal-semantic-validation/captures/capture-b9107a7be48fad2c956322011309b8925269cca5429138683734c3d63c8156ee/snapshot.json
    • docs/research/specification-coverage/capture-records/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41.json
    • docs/research/specification-coverage/capture-records/capture-86b171af7a8cba6fa76f5546c49e4714ef7ea58c5d07442f09b576b575b375e1.json
    • docs/research/specification-coverage/captures/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41/analysis.json
    • docs/research/specification-coverage/captures/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41/manifest.json
    • docs/research/specification-coverage/captures/capture-3c910766cc9612c3ad0b9bfde57b375bbc15282953815e86d246ff9c4033be41/snapshot.json
    • docs/research/specification-coverage/captures/capture-86b171af7a8cba6fa76f5546c49e4714ef7ea58c5d07442f09b576b575b375e1/analysis.json
    • docs/research/specification-coverage/captures/capture-86b171af7a8cba6fa76f5546c49e4714ef7ea58c5d07442f09b576b575b375e1/manifest.json
    • docs/research/specification-coverage/captures/capture-86b171af7a8cba6fa76f5546c49e4714ef7ea58c5d07442f09b576b575b375e1/snapshot.json
    • implementations/python/packages/raes_processor/models/authored_participant_exposure_v2.py
    • implementations/python/tests/test_dsl_125_authored_exposure.py
    • specs/formal/participant-semantics/runtime-mapping/capture-1ee1cf7aea1af07510c3b6cc27be235819cab6a3ada4d69779b6abbe37e7bd0c/cases.json
    • specs/formal/participant-semantics/runtime-mapping/capture-1ee1cf7aea1af07510c3b6cc27be235819cab6a3ada4d69779b6abbe37e7bd0c/manifest.json
    • specs/formal/participant-semantics/runtime-mapping/capture-49423089425080144c06a5e8368bd964216f5ebe0cfd173d0bd17a5218b382d3/cases.json
    • specs/formal/participant-semantics/runtime-mapping/capture-49423089425080144c06a5e8368bd964216f5ebe0cfd173d0bd17a5218b382d3/manifest.json

    Modified:

    • docs/explain/reference/participant-decision-surface-v2-migration.md
    • docs/requirements/DSL-125/requirement.md
    • implementations/formal/participant_crossing/reproduction.py
    • implementations/python/packages/raes_processor/models/__init__.py
    • implementations/python/packages/raes_processor/models/decision_surface_v2.py
    • implementations/python/tests/test_issue_975_reproduction_record.py
    • specs/formal/participant-semantics/participant-crossing-reproduction.md
    • specs/sdl/participant-control-context.md

    Reviews

    • codex: Initial core and security review returned ship with no findings. Subsequent CI evidence repairs and Sonar refactoring passed targeted regression checks and hosted CI.
    • sonarcloud: All three maintainability findings resolved; quality gate OK with zero open issues or hotspots.

    Traceability reconciliation

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

    Existing reproduction ownership and traceability remain valid. No files were deleted or renamed.

    Status

    • CI: ✅ green
    • SonarCloud: ✅ passed
    • PR ready for user review and merge.
  22. removed
    in-progressAn agent is actively working this issue via /implement
    on Oct 31, 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

    requirementTracks a Ground Control requirementwave-tbdRequirement with no wave assignment yet

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions