sots-re/campaign/contracts/research-replacement.json

109 lines
10 KiB
JSON

{
"acceptance": [
{
"axis": "planning",
"criterion": "BLOCKED: accepted static ABI dependency is named and original-helper policy is fixed, but readiness still requires an accepted live-record-bridge contract, implemented tools/research_replacement.py interfaces from the pilot plan, required asset paths/hashes, W0 recertification, exact coordinator-owned paths and immutable source/binary/input manifests.",
"id": "readiness"
},
{
"axis": "implementation",
"criterion": "Fresh full-profile source-bound host/assets/shim build; expected test identities and explicit positive executed workloads; no required missing input, unexpected skip or stale binary.",
"id": "full-gate"
},
{
"axis": "validation",
"criterion": "Two fresh C1/C2 hooks-off processes and candidate compare N on the exact W1 input/route produce identical pre/post save pairs; full installed-site manifests and per-call CW retained. Reject incomplete raw bundles or disagreement.",
"id": "control-neutrality"
},
{
"axis": "implementation",
"criterion": "W1 replace executes exactly one tech-144 completion and three unlocks, two actual event records and one full observed-tech record, refund 1166 and primary player effects; original displaced roots bypassed, declared helpers counted; zero unsupported paths, unreadable inputs or failures.",
"id": "positive-replace"
},
{
"axis": "validation",
"criterion": "Require post-turn file-byte, inflated-byte and exact-bit unmasked state equality plus complete reader coverage and nonserialized order/RNG checks. Pre-turn resave equality, count-only regions and zero-execution passes cannot satisfy this criterion.",
"id": "oracle"
},
{
"axis": "validation",
"criterion": "Executable checker rejects archived R0's 27 and R1's 16 leaf differences, absent callback/event/ObservedTech writes, W0 as completion evidence, missing artifacts, wrong hashes, and unknown RNG reported as zero.",
"id": "negative-controls"
},
{
"axis": "validation",
"criterion": "Different verifier execution reproduces source/binary/input-bound package and a meaningful negative control; integrated-tree evidence is required before accepted. No author-only verdict or reporter --accept flag grants campaign acceptance.",
"id": "independent-reproduction"
},
{
"axis": "original_dependencies",
"criterion": "Publish retained original helpers and W1-only scope separately. Require certified W2 and branch-specific original experiments plus synthetic boundaries before claiming RNG-consuming, other-effect-family, recursive, dedup, decay, plague or rebellion coverage.",
"id": "coverage-and-dependencies"
}
],
"baseline": {
"engine": {
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
"path": "/home/alex/sots-engine"
},
"re": {
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
"path": "/home/alex/sots-re"
}
},
"checkpoint": "campaign/runtime/checkpoints/research-replacement-fc19e142bf1db96b10d29391.json",
"dependencies": [
"research-completion-abi"
],
"effects": [
"All node state/progress/flag/cost/availability/researched-turn/order words; tree order counter; capped spend and refund accumulator; idle-node decay; ordered cascade including conditional recursive zero-cost completions.",
"RNG full state, left and next-index plus actual consumed words, including conditional completion rolls, Zuul second roll and research-event paths; W1 has zero words and proves no positive-draw branch.",
"All applicable callback player floats, boolean/species/design-option masks, target and roll flags, node-bore storage and lifetimes. Existing WritePlayerState is not integration of the full research callback.",
"ObservedTech full record name/first-last turn/detected/with fields, dedup/update, vector elements/header/capacity and compatible allocation/destruction. Scratch span growth is not an append implementation.",
"Complete ordered event turn buckets, records, ids/nextId, text, image/action/location/position/chainId, dedup/pruning and allocation lifetimes; keyless count-only events cannot satisfy the save oracle.",
"Conditional transitive system/ship AI/cap/addiction/plague changes, recursive Zuul grant, rebellion object allocation and cancellation must be implemented or rejected by approved preflight before mutation; TechApplyOutcome alone performs none of them.",
"Observe downstream bankruptcy, repair and checksum consequences through full turn/save validation; never copy original post-state or patch expected derived leaves."
],
"id": "research-replacement",
"inputs": [
"W1 verify/results/saves/turn3-state.sav sha256 978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921; exact fresh-process LOAD route, one End Turn.",
"Historical oracle verify/results/saves/cr/cr-oracle-endturn.sav sha256 e00eed0c03a31d27a81b7470a9dcc9ba08a2ac48c20baeee4f34749164743e3f and cr-oracle-autosave.sav sha256 79df50475a7b83afa927d992b9f030dcf45710f4bda0133b8b1fa4800a72e420; re-certify controls with current candidate inputs.",
"Historical negative saves cr-replace0-autosave.sav sha256 6b51db992b158caa5424d71b2dccf72924af7198b4165bfcfc870e0d438fb6d5 and cr-replace1-autosave.sav sha256 8a4309ee4fe0b3177a2820600b5016c7c256d0f51b065df469ecd0b4f2342235 under verify/results/saves/cr/.",
"Raw historical evidence: verify/traces/cr-{N,R0,R1}.jsonl.gz; verify/results/compare/cr-{compare,replace0,replace1}.json; verify/results/shim/cr/cr-{N,R0,R1}.log. Historical build cr-618ccb1-20260909T131556Z does not identify the current candidate.",
"Required but missing: operator-owned executable/proxy and tech graph/tuning/localized string assets with explicit paths, SHA-256, locale and load order; generated-address provenance; compiler/toolchain; exact candidate source-content and binary manifests.",
"Runtime-only inputs include tree order counter, allocation entries/order, current turn, target and pending-roll flags, preexisting observed-tech and event elements, RNG state/index/left, full FPU CW, installed interception sites and LOAD/continuation route.",
"W0 turn2-state.sav one End Turn is a no-completion regression control; pin hash and re-certify. W2 different-tech positive-RNG/second-completion workload remains to be selected and certified before expanding scope.",
"Accepted static dependency research-completion-abi establishes record/container/string ABI only; live allocator safety, runtime construction and replacement acceptance remain absent."
],
"original_dependencies": [
"Retained and counted original TechTree::Cost supplies effective and cascade costs; independent effective-cost replacement is excluded.",
"Retained and counted original TechTree::HasResearched supplies common-tail/design-mask lookup; replacement owns resulting writes.",
"Retained and counted ServerPlayer::UpdateNodeBoreParams runs in common-tail order and may allocate/free state; independent node-bore maintenance is excluded.",
"Original MSVCR100 scalar new/delete and accepted copy/container ABI may be used only as a counted live memory bridge. Original RecordObservedTech, EventStorage::PostEvent and string lookup are forbidden displaced roots; localized text must come from manifested runtime assets.",
"Shim workload retains original turn driver, budget allocation, remaining simulation, data loading and save serialization. Successful scoped shim replacement would not establish independent standalone turn parity."
],
"owner": {
"name": "Astra pilot architect",
"role": "architecture-review"
},
"predictions": [
"W1 owner order 32/496/512 with allocations 144:2898,90:0,9:0; exactly one completion and two null calls.",
"Tech144 progress 5768->7500, state3->4, researched turn4/order22, counter22->23, unchanged flag; capped spend1732/refund1166; no RNG words.",
"Tech132/136/142 become available turn4 at costs10000/16000/8000; observed-tech count10->11 with real element; event nextId5->7 with complete records.",
"Existing R1 still fails by 16 leaves (independently reproduced); merely enabling cascade cannot close callback residuals. Runtime text assets may avoid original PostEvent but live adapter and policy are unresolved."
],
"scope": [
"Planning only until ready: campaign/pilots/research-replacement.md is the detailed input, write-boundary and acceptance specification. No replacement code or lab operations authorized by this proposed contract.",
"Target ProcessResearch plus SetResearched and required OnTechResearched effects for the W1 turn3 LOAD-to-turn4 completion; broad research correctness is not implied.",
"The accepted static ABI dependency does not authorize live wiring. First accept a separately contracted live record bridge; then assign one complete W1 coordinator write set with baseline-pinned paired worktrees and exclusive source/build/VM ownership.",
"Before implementation provide exact owned source paths, supported-input preflight, executable acceptance and immutable manifests. Uncommitted bootstrap changes are not bound by these HEAD IDs."
],
"status": "proposed",
"stop_conditions": [
"Remain proposed while readiness criterion, dependency decisions, input manifests and executable acceptance are missing; do not interpret narrative strings as execution proof.",
"Stop on control disagreement, instrumentation mismatch, source/input drift, missing artifacts/assets, unknown RNG, unmodelled fired branch, unexpected writes, zero required execution or forbidden original fallback.",
"Record any falsified assumption or changed scope as a surprise and obtain Astra resolution before affected work continues; checkpoint at 20 calls/15 minutes and before experiments, handoff or stop.",
"No lab or shared-host mutation without explicit assignment and lease; no commits, staging, push or delegated work under the current pilot-design assignment."
],
"title": "Completion-bearing W1 research replacement pilot (proposed; live bridge, assets and runner pending)"
}