Candidate status
Selected implementation issue for Cycle 4 by research gate #23. The gate waits on this issue until the implementation, independent review, required checks, merge, and roadmap closeout are complete.
Opportunity
Make Agent Fighter's local policy reproducible enough to evaluate one bounded headless scenario. Today, examples/agent-fighter/server.ts calls Math.random() in decideLocally, and the headless runner does not accept or report a seed. The README roadmap wants stored match-series baselines, but prior runs varied and the baseline was deferred.
Evidence
- Repository audit: local decision branches use unseeded randomness; the headless summary does not record an RNG seed. This proves an implementation limitation, not user prevalence.
- STS2 Harness #125, opened 2026-09-13, requests repeatable multi-model benchmarks over a frozen seed corpus. This is an adjacent game-agent workflow request, not evidence about OpenController users.
Selected scope and acceptance
- Verify reproducible local-policy action choices for the same seed and identical observation sequence. This does not claim that wall-clock driven full match outcomes are deterministic. If a useful scenario cannot be shown to be stable, document that and defer stored baselines.
- Inject a seeded RNG only into the local policy; do not replace global randomness.
- Allow the headless runner to accept a seed when it starts its own local-policy server and include seed/configuration in the summary artifact. For an externally running server, document that its local-policy seed must be set on that server.
- Test that repeated same-seed decisions match for identical inputs and that different seeds can change randomized branches. Keep external-model/provider runs outside determinism claims.
- Document that a seed alone does not guarantee identical results across browser, runtime, simulation, or configuration versions.
Estimate: medium, roughly 3–5 days, with high risk that browser/game timing still prevents stable full-match metrics. Do not add stored regression baselines in this slice.
Candidate status
Selected implementation issue for Cycle 4 by research gate #23. The gate waits on this issue until the implementation, independent review, required checks, merge, and roadmap closeout are complete.
Opportunity
Make Agent Fighter's local policy reproducible enough to evaluate one bounded headless scenario. Today,
examples/agent-fighter/server.tscallsMath.random()indecideLocally, and the headless runner does not accept or report a seed. The README roadmap wants stored match-series baselines, but prior runs varied and the baseline was deferred.Evidence
Selected scope and acceptance
Estimate: medium, roughly 3–5 days, with high risk that browser/game timing still prevents stable full-match metrics. Do not add stored regression baselines in this slice.