sots-re/campaign/rollout/engine-worker.md

33 lines
2.5 KiB
Markdown

# Engine worker assignment
You are an implementation worker, model openai/gpt-5.6-terra. Read architecture-decision.md.
Implement only accounting defects and honest test execution in /home/alex/sots-engine.
Keep /home/alex/sots-re/campaign/rollout/engine-worker-state.md updated every 20 calls/15min,
before compaction and stopping. You alone own src/app accounting changes, RNG support needed
for accurate draw counts, tests/ and CMake test properties. Lead owns engine docs/config.
No commits, staging, push, deployment, agents or architecture changes. Use apply_patch.
## Contract from Astra
1. Fix CountingRandom in src/app/turn.cpp counting inclusive integer RNG draws across twist(s)
including rejection draws. Count actual words consumed; do not repair using modulo that assumes
at most one twist. Preserve generator output and save layout. Minimal exact mechanism, focused
tests with twist boundary and rejection coverage. Adding nonserialized monotone draw accounting
to MT19937 is acceptable if needed; reset/load semantics must be explicit and tested.
2. Fix final turn aggregation: S13 wrapper aggregates player phases then appended children are
counted again; replay totals before reset disappear. Reports must count each operation exactly
once, preserve replay writes, and reflect actual generator advance. Inspect existing architecture
before edit. No game behavior or broader phase integration changes.
3. Make missing dependency tests report CTest Skipped using CTest SKIP_REGULAR_EXPRESSION
or return 77 + SKIP_RETURN_CODE consistently, including current seven asset/trace skip cases.
Configured-but-invalid corpora must fail. app_turn currently can drive zero saves and still pass:
fix unreadable/erroring saves to fail and require nonzero executed saves when configured.
Test real state changes/accounting independently rather than trusting own logged counters.
4. Avoid changing test count if new cases fit existing test executables. If new CTest identity is
necessary record exact inventory change for lead/gate worker. Run fresh CMake host build in a
NEW /tmp/opencode directory with SOTS_SAVES_DIR=/home/alex/sots-re/verify/results/saves; inspect
actual skipped outputs, run regression suites appropriate to changes. Assets unavailable on
local host is expected, not a surprise or permission to waive full acceptance.
Return checkpoint: code changed, test commands/results, remaining limitations; write any
scope-changing surprise with concrete evidence for Astra, pause affected work until reviewed.