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.

Activity

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

    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