54 lines
3.6 KiB
Markdown
54 lines
3.6 KiB
Markdown
# SOTS campaign instructions
|
|
|
|
This repository is the state authority for the SOTS reconstruction and its Windows lab.
|
|
Start with `campaign/README.md`, your contract, its latest checkpoint, and open surprises.
|
|
Current policy: `guides/multi-agent-workflow.md`. Engine architecture: `sots-engine/docs/architecture.md`.
|
|
Historical findings are evidence, not current execution instructions or accepted status.
|
|
|
|
## Authority and models
|
|
|
|
- The normal lead/RE/implementation/verification/lab loop runs on **GPT-5.6 Sol
|
|
(`openai/gpt-5.6-sol`)**. Reserve **GPT-6 Astra (`openai/gpt-6-astra`)** for resolving
|
|
falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope.
|
|
- `campaign/models.json` is the role/model registry. Launch with `tools/run_agent.py` and an
|
|
explicit role, contract, state root, and paired worktrees. Never silently downgrade or fall back.
|
|
- Ordinary implementation/test failures inside the contract may be fixed by its worker.
|
|
Falsified assumptions, conflicting evidence, unexpected instrument effects, or changed scope
|
|
require a recorded surprise and an Astra resolution before affected work continues.
|
|
- No worker subdelegation. The lead assigns parallelism; max two implementation slices after
|
|
the pilot. Independent workload preparation is scheduled against explicit resource leases.
|
|
|
|
## Durable state and context
|
|
|
|
Checkpoint in the canonical RE state root every **20 tool calls or 15 minutes**, whichever is
|
|
earlier, and before an experiment, compaction, handoff, or stop. Include model/session, exact
|
|
source identities, evidence paths, decisions versus observations, tests, blockers, and ONE exact
|
|
next action. Do not store state only in a chat summary or `/tmp`.
|
|
The runner uses bounded 40-step quanta. After checkpointing, stop and restart from the repository;
|
|
automatic compaction is a backstop, not proof that a checkpoint was written. On recovery read the
|
|
contract/checkpoint, verify worktree and resource identities, then continue. Missing state means
|
|
blocked, not permission to reconstruct progress from memory.
|
|
|
|
## Ownership
|
|
|
|
Use distinct engine and RE worktrees per lane, baseline-pinned. Canonical runtime state is shared
|
|
only through the campaign tools. One integrator writes current evidence pointers and projections.
|
|
Never stage someone else's changes. No automatic commit, push, pull, or reset. Commands requiring
|
|
these actions need explicit user authorization. Source edits use apply_patch.
|
|
VM, shared build-host, and Ghidra mutation require leases. A stale lease is not automatically free.
|
|
Record preconditions, side effects, cleanup and access verification for any lab operation.
|
|
Rollout bootstrap file-ownership exception: `campaign/rollout/architecture-decision.md` only.
|
|
|
|
## Evidence
|
|
|
|
No generic `verified` promotion. Separate understanding, implementation, original dependencies,
|
|
and validation scope. A count is insufficient without distinct states, branch exposures, and
|
|
positive execution evidence. Include all writes, container elements, allocations, IDs, events,
|
|
RNG draws, and runtime-only inputs. Original-assisted execution is not independent replacement.
|
|
Synthetic boundary tests and original-game differential tests are complementary. Missing required
|
|
inputs, zero execution, incomplete coverage, unexpected skips, stale binaries or unbound source
|
|
identity fail acceptance. One independent verifier must reproduce the package; integrated-tree
|
|
evidence is required for acceptance. Reports are measurements until those gates pass.
|
|
|
|
Never commit owner-supplied binaries/assets or secrets. Engine facts cross only documented
|
|
generated channels. Never paste disassembly/decompiler output into the engine repository.
|