Skip to content

[RL][Phase 5] Implement the fixed-deck mirror-match episode runner #1078

Description

@utilForever

Parent: #1057
Epic: #1052

Goal

Run one complete self-play episode using the same fixed, low-randomness deck for both players.

Scope

  • Configure the agreed MVP deck fixture for both seats
  • Use the fixed non-learned mulligan policy
  • Invoke PUCT/ISMCTS for MAIN_ACTION decisions
  • Record one pending sample per decision and attach the final outcome
  • Stop cleanly on win, loss, draw, or configured safety limit

Non-goals

  • Arbitrary deck matchmaking
  • Learned mulligan policy
  • Parallel episode workers

Acceptance criteria

  • An episode reaches a valid terminal result without illegal actions.
  • Both seats use the same configured deck fixture.
  • Each decision produces one valid training sample.
  • Fixed game and search seeds reproduce the episode.

Verification

Add one deterministic C++ episode smoke test with the uniform evaluator.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-rlCategory: Search, self-play, reinforcement learning, and training.P-importantPriority: Other work depends on this, or it is low-level and critical.T-featureType: New capability or supported behavior.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions