# Multi-agent operating architecture ## Product and milestone Reconstruct a behavior-equivalent engine consuming owner-supplied assets. The next product milestone is standalone replay given a captured command stream and complete declared runtime inputs. The first workflow pilot is the complete research write set. A passing host build is a component baseline, not a playable engine or independent replacement. ## Source of truth `campaign/contracts/` holds versioned tasks, `campaign/runtime/` holds checkpoints, sessions, leases and surprises, and evidence packages identify inputs, source and executable artifacts. `campaign/current.json` selects published evidence by path and digest. Board/dashboard are generated projections, never alternate writable authorities. Exact tool CLI/schema is documented in `campaign/README.md`. Historical findings retain their original experiment scope; they are not promoted by copying an old status into a new contract. ## Model authority | Responsibility | Model | |---|---| | Normal planning, architecture and integration loop | GPT-5.6 Sol | | Bounded RE analysis, implementation and independent verification | GPT-5.6 Sol | | Routine lab/workload operations | GPT-5.6 Sol | | Problem and surprise resolution | GPT-6 Astra | | Context compaction | GPT-5.5 | Exact provider IDs are in `campaign/models.json`. The lead escalates to Astra when a falsified assumption, conflict, instrument effect, or scope change blocks the loop. No fallback is automatic. Model names in editable JSON are provenance, not authentication: launcher events and independent review support the record. Permissions reduce accidental role drift; unrestricted local shell access is not a sandbox. ## Behavioral slice The lead specifies a bounded input domain, full observable write set, dependencies, acceptance workloads and stop conditions. The analyst recovers behavior; the verifier specifies discriminating tests before implementation; the implementer changes engine/adapters; the lab operator captures controls; the verifier reproduces; the integrator tests the combined source snapshot. Include transitive effects: allocations, IDs, container ELEMENTS, event text/records, RNG and nonserialized state. An address/function name is not a sufficient replacement boundary. If a neighbor function supplies required effects, extend the approved contract or expose it as an original dependency. Do not call the original and label the result independent. Lifecycle is `proposed → ready → implementing → verification → integration → accepted`, with blocked/revision states. Lifecycle is distinct from evidence strength. Acceptance is scoped to the manifest's exact procedure and workloads, never universal correctness. ## Independence Verifier and implementer are different executions. Verification starts with the contract, raw evidence and reproduction recipe, not just the author's conclusion. Require one meaningful challenge: held-out state, boundary, negative control, ablation, or independent state accounting. Both synthetic tests and original-game experiments matter. Repeat-call volume cannot replace branch and distinct-state coverage. Null effects and zero executions must be distinguishable. ## Sessions and recovery At most two implementation slices after a single-slice pilot. No nested worker delegation. Paired worktrees isolate source changes; unique build directories isolate artifacts. Canonical RE runtime state remains explicit even when a worker runs in `/tmp` worktrees. Checkpoint every 20 calls or 15min; also before experiments, compaction, handoff and stopping. Record source identities, exact changed paths, commands/results, artifacts and hashes, open surprises, held leases, requested/observed model, session identity and exact next action. Avoid large prose histories: raw logs belong in evidence; the checkpoint is a bounded resumption record. The launcher caps a quantum at 40 agent steps. A new quantum starts fresh using contract and checkpoint. Auto-compaction with an ample reserved window and four retained turns is enabled. This is a best-effort context backstop; regular durable checkpoints and fresh quanta provide the actual recovery discipline. Never claim a model compacted merely because a setting exists. ## Surprises On a falsified prediction, contradictory claim, unexplained regression, instrument interference, or newly necessary dependency: record the observation and evidence; block affected work. Astra first checks the instrument and source identity, then marks claims surviving/qualified/overturned, chooses a discriminating experiment, and records the revised plan. Unaffected contracted work may continue. Updating a paragraph without invalidating affected acceptance is insufficient. ## Lab ownership Acquire a canonical resource lease before VM, build-host or Ghidra mutation. An expired timestamp does not authorize stealing a lease. The lead reconciles stale ownership with actual processes. Use one guest at a time for maintenance, capture before/after inventory, preserve access and runtime dependencies, and verify unattended console login plus authenticated administration. Reboots require a free guest and a recorded recovery path. Runtime/Ghidra changes are experiments with provenance, not undocumented preparatory steps. ## Gate and publication Run the local gate with explicit engine, corpus, new output directory and profile. It snapshots source, uses fresh builds, records manifests and runs the expected test inventory once. Host profile allows a named list of unavailable asset/trace tests and publishes them as limitations. Full acceptance requires the full profile and the slice-specific original oracle; no blanket waiver converts a host pass to fidelity. Standalone measurement may diverge; acceptance may not. The integrator alone selects current results after verifying their hashes and source binding. No percentages of LOC, mapped rows or closed leaves purport to measure engine completeness. Run failure and missing evidence are visible states. Old results remain historical, not current.