Skip to content

Integrate RUN-311 initialization as the SEM-220 order-zero projection anchor #909

Description

@Brad-Edwards

Problem

RAES already defines the required semantic state:

  • SEM-210 view_rules define the initial participant view relation V_p,0;
  • SEM-220 defines a participant decision surface D(p,e,o) over that relation at a participant-, episode-, and order-scoped observation point; and
  • RUN-311 records truthful participant episode initialization and running lifecycle events.

The released public runtime does not integrate those existing authorities for the first participant decision.

project_participant_decision_surface() accepts a Sequence[ParticipantBehaviorHistoryEvent], rejects an empty sequence, and requires observation_order to identify an event in that sequence. That is correct for later time-indexed projection and correctly prevents a final snapshot from substituting for history. However, immediately after normal RUN-311 initialization the only truthful anchors are participant-episode lifecycle events. Every valid participant-behavior history event is action-linked:

  • action_attempted requires a compiled action-contract address and actor provenance;
  • state_transition_recorded requires a compiled action-contract address, transition kind, and post-state digest; and
  • observation_emitted requires a compiled action-contract address, observation-boundary address, and observation status.

A conformant backend therefore has no typed public path to project V_p,0 and the first SEM-220 decision surface before a participant action occurs. The underlying projection algorithm can select the initial relation when supplied an episode-initialization event as an order anchor, but that event is outside the projector's declared input contract. Depending on Python duck typing is not a portable or conformant solution and leaves ordering and evidence relationships underspecified.

This was encountered while implementing a multi-turn bounded-participant evaluation in Brad-Edwards/aptl#557, but the gap is backend-neutral and must not be designed around APTL or one scenario.

Required outcome

Integrate RUN-311 episode initialization with SEM-210/SEM-220 projection so a newly initialized participant episode has a portable, typed, truthful order-zero anchor for its initial participant-visible context and first decision surface.

The solution should reuse the existing semantic authorities rather than introduce a parallel participant, visibility, or history model. It may admit a typed episode-lifecycle anchor to the projector, introduce a small common projection-anchor contract/protocol, or use another representation consistent with ADR-013, ADR-022, and ADR-083. The representation is not prescribed here.

The integration must preserve these properties:

  • V_p,0 remains the authority for initial visibility;
  • participant episode lifecycle history and participant behavior history remain semantically distinct;
  • no action attempt, state transition, observation result, or participant choice is implied before one occurs;
  • the initial surface remains participant- and episode-scoped and carries an explicit order/event/evidence anchor;
  • observation-boundary, context-view, exposure-policy, marking, provenance, evidence, and apparatus-selection checks remain governed;
  • the first selection binds through the same SEM-220 action, argument-shape, apparatus, and admission checks as later selections;
  • subsequent surfaces continue to use time-indexed participant behavior history and the existing visibility-transition anchor discipline;
  • final snapshots, arbitrary empty history, and backend-private bootstrap records remain insufficient.

Ordering questions to resolve

Specify the portable ordering relationship among:

  1. episode_initialized and episode_running;
  2. the initial participant-visible context projection;
  3. the order-zero decision surface;
  4. the first proposal and selection;
  5. the first admitted action attempt;
  6. its state transition and terminal observation; and
  7. the next decision surface.

In particular, define which RUN-311 lifecycle event is the authoritative readiness anchor and how later participant-behavior event order relates to the order-zero surface without overloading episode sequence_number as behavior-step order.

Acceptance criteria

  • A reference test initializes a participant through the public RUN-311 control-plane path and projects V_p,0, its initial context view, and the first SEM-220 decision surface without recording or implying a participant action.
  • The projector consumes a documented public type rather than relying on an object outside its declared input contract.
  • The projected surface is derived from the compiled participant, behavior specification, observation boundary, action contracts, implementation selection, and exposure policy.
  • A first valid selection binds and admits through the public RAES decision-surface control-plane path.
  • Subsequent action-result observations and decision surfaces retain the existing time-indexed behavior-history semantics.
  • Empty, forged, stale, replayed, cross-episode, cross-participant, and unauthorized-reference inputs fail closed.
  • Tests distinguish episode lifecycle order, decision-surface order, and behavior-history order and cover resets/restarts as new episode scopes.
  • Documentation states the ordering and evidence relationship described above.

Non-goals

  • Creating a second visibility relation or participant-history model.
  • Weakening time-indexed projection to accept an arbitrary final snapshot.
  • Treating a backend-selected setup action as participant behavior.
  • Merging RUN-311 lifecycle history and participant behavior history into one ambiguous carrier.
  • Tailoring initial context to APTL, TechVault, coding agents, or one backend.
  • Exposing evaluator-only or hidden state as participant-visible initialization data.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions