Skip to content

feat(cyborg): implement participant episodes and observation projection #17

Closed

Description

@Brad-Edwards

Objective

Mediate CAGE-2 red, blue, and green participation through the published RAES ParticipantRuntime boundary.

Scope

  • Implement initialize, reset, restart, and terminate lifecycle behavior with stable episode identity, sequence numbers, and previous-episode links.
  • Keep backend, evaluator, caller, red-policy, blue-implementation, and green-behavior identities distinct.
  • Admit participant actions through the RAES action-admission contract.
  • Project participant-relative observations, action availability, outcomes, and histories from CybORG without exposing hidden truth.
  • Enforce observation/exposure policy across success, rejection, timeout, reset, and diagnostic paths.
  • Preserve per-participant history and shared-state joins under interleaved steps.

Acceptance criteria

  • Red, blue, and green episodes pass applicable RAES participant lifecycle fixtures.
  • Reset/restart creates the required identity and linkage behavior without history crossover.
  • Observation tests prove participant-relative visibility and hidden-truth non-disclosure.
  • Action authority is participant-specific and rejected actions have no effect.
  • Histories and results are ordered, typed, and joined to the controlling episode/action.
  • Native observations, masks, tuples, IDs, raw logs, exception text, and object reprs never become portable payloads.

References

Activity

  1. Brad-Edwards commented on Aug 1, 2026

    @Brad-Edwards
    CollaboratorAuthor

    🛠️ Picked up by /implement - driver codex, branch 17-participant-episodes, 2026-08-01T05:05:44.388Z.

  2. added
    in-progressAn agent is actively working this issue via /implement
    on Aug 1, 2026
  3. Brad-Edwards commented on Aug 1, 2026

    @Brad-Edwards
    CollaboratorAuthor

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

  4. Brad-Edwards commented on Aug 1, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation OBLIGATION-17-PREFLIGHT — Opened

    Category: workflow
    Observed state: The architecture preflight generated docs/decisions/cyborg-participant-runtime-guardrails.md and updated mkdocs.yml, but two async gc_codex_architecture_preflight jobs were cancelled after long-running hangs and one synchronous gc_codex_architecture_preflight call timed out at 300 seconds. gc_post_implementation_plan refuses because the preflight phase marker is missing.
    Impact: The /implement workflow cannot enter the plan phase through Ground Control. Continuing with implementation or posting the plan directly would bypass an explicit phase prerequisite and leave the durable workflow record inconsistent.
    Current obligation: Restore a successful architecture-preflight phase marker for issue 17, then retry gc_post_implementation_plan and continue the implementation workflow from the plan phase.

    Evidence

    • async job rjob-ms9ws6al-1 cancelled after approximately 11 minutes without a done envelope
    • async job rjob-ms9x6ptv-2 cancelled after approximately 9 minutes without a done envelope
    • synchronous gc_codex_architecture_preflight timed out awaiting tools/call after 300 seconds
    • gc_post_implementation_plan returned phase_prerequisite_missing with missing=[preflight]
    • worktree contains generated preflight files: docs/decisions/cyborg-participant-runtime-guardrails.md and mkdocs.yml
  5. Brad-Edwards commented on Aug 1, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation OBLIGATION-17-PREFLIGHT — Escalated

    Category: workflow
    Observed state: The architecture preflight generated docs/decisions/cyborg-participant-runtime-guardrails.md and updated mkdocs.yml, but Ground Control did not record the required preflight phase marker after repeated preflight attempts.
    Impact: The implementation cannot proceed through the canonical /implement workflow because the plan phase is gated on a missing preflight marker.
    Current obligation: Restore a successful architecture-preflight phase marker for issue 17, then retry gc_post_implementation_plan and continue from the plan phase.

    Evidence

    • async gc_codex_architecture_preflight job rjob-ms9ws6al-1 hung until cancelled
    • async gc_codex_architecture_preflight job rjob-ms9x6ptv-2 hung until cancelled
    • synchronous gc_codex_architecture_preflight timed out after 300 seconds
    • gc_post_implementation_plan refused with phase_prerequisite_missing for preflight
    • execution obligation opened at feat(cyborg): implement participant episodes and observation projection #17 (comment)

    Pause class: explicit_workflow_gate
    Decision request: Fix or restart the Ground Control preflight path so gc_codex_architecture_preflight can return a successful envelope and record the preflight phase marker, then rerun the implementation from issue 17. If a manual gate override is desired, provide an explicit instruction naming this obligation id and the intended bypass.

    This obligation remains open while the decision is pending.

  6. Brad-Edwards commented on Aug 1, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Execution obligation OBLIGATION-17-PREFLIGHT — Resolved

    Category: workflow
    Observed state: The earlier Ground Control preflight route had recorded an open obligation after repeated preflight hangs, but the user explicitly instructed the run to continue by manual workaround if the implement workflow did not work.
    Impact: The workflow record can now proceed to post-merge Phase E without an open execution obligation blocking completion.
    Current obligation: Complete the issue through the governed post-merge Phase E path after resolving the workflow-record inconsistency created by the stuck preflight route.

    Evidence

    Disposition: fix
    Corrective action: Completed the implementation on the issue branch under the user's manual-workaround instruction, preserved the generated guardrail documentation, ran the full local verification graph, pushed PR #62, waited for all remote checks to pass, and resumed the merge-gated Phase E path after the user merged the PR.

    Verification

  7. Brad-Edwards commented on Aug 1, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: traceability_reconciled (issue #17). 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.

    • REP-004: status=ACTIVE, IMPLEMENTS=9, TESTS=7
  8. Brad-Edwards commented on Aug 1, 2026

    @Brad-Edwards
    CollaboratorAuthor

    gc workflow phase recorded: traceability_reconciled (issue #17). 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.

    • REP-004: status=ACTIVE, IMPLEMENTS=9, TESTS=7
  9. Brad-Edwards commented on Aug 1, 2026

    @Brad-Edwards
    CollaboratorAuthor

    Final report — issue #17 complete

    PR: #62

    Outcome

    The CybORG adapter now exposes the RAES ParticipantRuntime lifecycle for fixed red, blue, and green participants. Participant actions, observations, results, and histories are projected into portable RAES state without leaking native CybORG state or hidden truth, and the generated native scenarios execute in actual CybORG.

    Implemented CybORG participant episodes and participant-relative observation projection, then repaired native scenario execution after actual CybORG smoke testing.

    In-scope requirements

    Files changed

    Added:

    • docs/decisions/cyborg-participant-runtime-guardrails.md

    Modified:

    • mkdocs.yml
    • src/raes_adapters/cyborg/driver.py
    • src/raes_adapters/cyborg/manifest.py
    • src/raes_adapters/cyborg/participant_runtime.py
    • src/raes_adapters/cyborg/scenario.py
    • tests/test_cyborg_execution.py
    • tests/test_cyborg_provisioner.py
    • tools/verify_cyborg_qualification.py

    Reviews

    • codex: Reviewed the participant-runtime implementation, fixed the actual native CybORG smoke failures, and verified the final tree.
    • test-quality: Expanded tests for participant lifecycle, participant-relative observations, generated native agent declarations, dict-shaped native observations, and the native qualification smoke.

    Traceability reconciliation

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

    Ground Control traceability reconciliation passed for REP-004 with 9 IMPLEMENTS links and 7 TESTS links.

    Status

    • CI: ✅ green
    • SonarCloud: ✅ passed
    • PR ready for user review and merge.

    Documentation

    Updated: see diff.

  10. removed
    in-progressAn agent is actively working this issue via /implement
    on Aug 1, 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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions