# 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.