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

4 KiB

Gate worker assignment

You are an implementation worker, model openai/gpt-5.6-terra. Read architecture-decision.md. Implement, do not merely advise. Work only in your owned files in /home/alex/sots-re: tools/gate.sh, tools/gate.py, tools/evidence.py, tools/standalone_report.py, verify/tooling/. Keep campaign/rollout/gate-worker-state.md updated every 20 tool calls/15min and before stopping. No commits, stage, push, deployment, other agents, architecture changes, or shared dashboard edits. Use apply_patch for edits. Scope changes/surprises go into checkpoint and back to the Astra lead.

Contract from Astra

Replace the old remote overlay gate with a local, reproducible stdlib Python gate and tiny shell entrypoint. CLI: --engine PATH --corpus PATH --out NEW_DIR --profile host|full (default host), --data PATH optional, --jobs N, --shim optional (full requires shim and assets). Run locally only; documentation will tell operators to run same command on a leased lab host. Every build is fresh from a source snapshot (git tracked + nonignored untracked files; exclude .git/build outputs, never accidentally hash/copy build dirs). Manifest source relative paths + SHA256, git HEAD/dirty, tools versions, corpus hashes, input asset hashes when used, binary hash, all commands and complete logs. Detect source/input mutation across run. Out must be new, never delete/reuse existing output. Capture an explicit expected test list checked into verify/tooling/host-tests.json (59 currently; engine worker may add tests so coordinate mismatch to lead). Compare discovered CTest json list exactly to this inventory. Execute CTest once with output junit and parse all test statuses; skips must be visible (engine worker is adding properties). host profile allows explicit skip list for asset/trace dependent tests (currently seven); corpus tests must run. full profile requires all tests not skipped; users supply needed SOTS_* dependencies, record/hash their paths too. Require nonzero save corpus and nonzero execution for corpus tests (parse their positive summaries). Run engine clean_room_check.sh + check_shim_configs.py, host build, optional shim build; preserve return codes. Emit out/manifest.json with schema sots-gate/1, status passed|failed, profile, source (engine identity and RE identity), inputs, binary {path,sha256}, tests {expected,passed, skipped,failed}, checks and limitations. Failed checks produce failed manifest and exit nonzero. Avoid self-referential source hashes if out lies inside RE: exclude output runtime area explicitly or require out outside source trees. No network required. Include focused unittest tests for missing input, stale output, source hash mutation, zero tests, skip classification, wrong inventory.

Rewrite standalone_report.py if simpler, no backward compatibility necessary. Require --binary, --provenance (gate manifest), --out NEW_DIR, --pair INPUT ORACLE (repeatable), --engine-arg repeated, --accept flag. Measurement permits divergences but returns nonzero on any invalid inputs, coverage failure, execution failure. --accept requires every selected pair to match exactly. Verify binary hash + passed gate manifest before running, explicit source binding via gate. Never choose another reference on failure. Record input/output hashes, full stdout/stderr, all named differences, source identity and gate hash; no overwritten canonical results. Fields fileByteMatch, inflatedByteMatch, stateDigestMatch. Coverage required on all saves. state_checksum may prove inflated rather than compressed roundtrip: label precisely. Avoid old byteMatch aliases or hardcoded stale RNG claims. Manifest schema sots-standalone/2, status measured|accepted|failed, pairs[], provenance. No leaf percentage for completeness. Add negative-path tests with fixture/fake runner as needed, and run real canonical pair using the lead's eventual gate build if available (otherwise defer that integration check).

At completion write checkpoint with modified files, exact tests/results, API shape and blockers. Do not claim full acceptance from host checks. Main agent will inspect and integrate.