64 lines
3.9 KiB
JSON
64 lines
3.9 KiB
JSON
{
|
|
"acceptance": [
|
|
{
|
|
"axis": "static-recovery",
|
|
"criterion": "Addresses/signatures and record/container/string lifetime rules backed by fresh binary/tool captures; distinguish recorded facts, inference and unexercised branches. Name exact callable allocation/copy/destruction operations or precise unresolved blockers.",
|
|
"id": "ownership-recovered"
|
|
},
|
|
{
|
|
"axis": "validation",
|
|
"criterion": "Independent verifier checks key instruction/ABI claims and archived record values. No static-only claim of live allocator safety or replacement acceptance.",
|
|
"id": "independent-cross-check"
|
|
}
|
|
],
|
|
"baseline": {
|
|
"engine": {
|
|
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
|
|
"path": "/home/alex/sots-engine"
|
|
},
|
|
"re": {
|
|
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
|
|
"path": "/home/alex/sots-re"
|
|
}
|
|
},
|
|
"checkpoint": "campaign/runtime/checkpoints/research-completion-abi-34e545ce9e774117dec97cf0.json",
|
|
"dependencies": [
|
|
"controls-bootstrap"
|
|
],
|
|
"effects": [
|
|
"Evidence-backed RE handoff and raw static captures; no game or shared database state changes"
|
|
],
|
|
"evidence": [],
|
|
"id": "research-completion-abi",
|
|
"inputs": [
|
|
"Existing binary fingerprint/address contract and private RE findings",
|
|
"Owner-supplied binary or live read-only ReVa endpoint",
|
|
"Archived CR traces/saves for observed behavior",
|
|
"Source-identical current engine/RE worktree snapshots"
|
|
],
|
|
"original_dependencies": [
|
|
"Original binary is the object of analysis, not a replacement dependency decision"
|
|
],
|
|
"owner": {
|
|
"name": "research-abi-analyst",
|
|
"role": "analyst"
|
|
},
|
|
"predictions": [
|
|
"Count-only scratch updates conceal concrete element construction and original allocator ownership requirements",
|
|
"The observed-tech and nested-event containers use different element strides and nontrivial string lifetimes; raw header copying is insufficient"
|
|
],
|
|
"scope": [
|
|
"Reverse engineering only. Own canonical campaign/research/research-completion-abi.md and verify/results/research-completion-abi/ captures. Use assigned source-identical paired worktrees for source inspection; canonical RE for unique evidence/checkpoint outputs.",
|
|
"Recover actual constructors/copy/destructors/vector-growth/allocation/free conventions used by RecordObservedTech and EventStorage/TurnEvents/PlayerEvent. Resolve implementable ABI operations, not another general framework.",
|
|
"Use existing ReVa read-only tools through canonical tools/reva_call.py or the owner-supplied local binary. No Ghidra renames/type writes, VM mutation, new engine code, framework code, agents or delegation. Do not commit/stage/push.",
|
|
"Start with findings/subsystems/{events,observedtech-append,research-replace}.md and campaign/pilots/research-replacement.md; cross-check binary bytes/decompilation rather than merely repeat notes. Anchors: RecordObservedTech 0x007ba1a0, EventStorage::PostEvent 0x008862b0, PlayerEvent constructor 0x0084ee30. Addresses are hypotheses to validate against fingerprint and actual tools.",
|
|
"Produce recovered signatures, ownership/lifetime rules, short/long string and empty/full-capacity container paths, and exact unresolved dependencies with minimum next probe. Store raw tool outputs and a hash/provenance index in your owned RE results directory. Keep code-derived material out of engine repo."
|
|
],
|
|
"status": "needs-revision",
|
|
"stop_conditions": [
|
|
"Stop affected interpretation on binary fingerprint mismatch, contradictory ownership/ABI evidence, unavailable original data, or any scope-changing surprise; record and escalate to Astra",
|
|
"Checkpoint every 20 calls/15 minutes and before compaction/stopping; return exact next RE action within 40 steps",
|
|
"Do not expand into framework development or mark pilot replacement ready/accepted"
|
|
],
|
|
"title": "RE: research completion record construction and allocator ABI"
|
|
}
|