115 lines
3.9 KiB
JSON
115 lines
3.9 KiB
JSON
{
|
|
"acceptance": [
|
|
{
|
|
"axis": "control-tests",
|
|
"criterion": "Unit tests reject lifecycle bypass, stale handoff/end checkpoints, same-HEAD candidate/integrated source drift, missing immutable inputs and criterion outcomes, bad identity/model, worker entry with pending surprises, lease collision and WIP overflow; old intact recovery checkpoints and resolution-only Astra entry succeed; runner requires successful completion/session/checkpoint and rejects provider errors and config drift",
|
|
"id": "controls-negative-paths"
|
|
}
|
|
],
|
|
"baseline": {
|
|
"engine": {
|
|
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
|
|
"path": "/home/alex/sots-engine"
|
|
},
|
|
"re": {
|
|
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
|
|
"path": "/home/alex/sots-re"
|
|
}
|
|
},
|
|
"checkpoint": "campaign/runtime/checkpoints/controls-bootstrap-5643d7cec1edd289b0465d5f.json",
|
|
"dependencies": [],
|
|
"effects": [
|
|
"Durable local contract controls and explicit-model worker launch"
|
|
],
|
|
"evidence": [
|
|
{
|
|
"axis": "control-tests",
|
|
"binaries": [
|
|
{
|
|
"path": "tools/campaign.py",
|
|
"sha256": "c7b7c7a30d907bba8e59386dee8704d7f3f5e978fcf709b686e37996fa465c31"
|
|
},
|
|
{
|
|
"path": "tools/run_agent.py",
|
|
"sha256": "0f5ccb53dcde59b64fe999768737b6cbd2dabcc1272e5605c1f1ecd86e5d5d2b"
|
|
}
|
|
],
|
|
"id": "controls-suite",
|
|
"inputs": [
|
|
{
|
|
"path": "verify/campaign/test_controls.py",
|
|
"sha256": "108460f4e90c4cb7036642e85de581e31fd70c478533c32364691260461814fc"
|
|
},
|
|
{
|
|
"path": "campaign/contract.schema.json",
|
|
"sha256": "a2c76ec042ca097a57c3c05c1e519e392d498d387a31808c7d0f70482d43c201"
|
|
},
|
|
{
|
|
"path": "campaign/rollout/controls_evidence.py",
|
|
"sha256": "bfaf4e523b2ca39c0ecdab94adf0b2b19a3da68aab8a0fcba69a613aed46588a"
|
|
}
|
|
],
|
|
"integrated": true,
|
|
"outcomes": [
|
|
{
|
|
"artifact": {
|
|
"path": "campaign/evidence/controls-suite-1788991911311171323.json",
|
|
"sha256": "bd6ae3eba3d3df606e0410676819db47a46094571d0680edbf9b907bf90d693e"
|
|
},
|
|
"criterion": "controls-negative-paths",
|
|
"status": "pass"
|
|
}
|
|
],
|
|
"path": "campaign/evidence/controls-suite-1788991911311171323.json",
|
|
"sha256": "bd6ae3eba3d3df606e0410676819db47a46094571d0680edbf9b907bf90d693e",
|
|
"source": {
|
|
"engine": {
|
|
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
|
|
"path": "/home/alex/sots-engine"
|
|
},
|
|
"re": {
|
|
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
|
|
"path": "/home/alex/sots-re"
|
|
}
|
|
},
|
|
"source_binding": {
|
|
"engine": {
|
|
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
|
|
"path": "/home/alex/sots-engine",
|
|
"sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd"
|
|
},
|
|
"re": {
|
|
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
|
|
"path": "/home/alex/sots-re",
|
|
"sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"id": "controls-bootstrap",
|
|
"inputs": [
|
|
"campaign/rollout/architecture-decision.md",
|
|
"campaign/rollout/controls-worker.md"
|
|
],
|
|
"original_dependencies": [
|
|
"No original game executable required for control tests"
|
|
],
|
|
"owner": {
|
|
"name": "controls-architect",
|
|
"role": "architecture-review"
|
|
},
|
|
"predictions": [
|
|
"All controls can run with Python standard library and Git without an external server"
|
|
],
|
|
"scope": [
|
|
"tools/campaign.py",
|
|
"tools/run_agent.py",
|
|
"campaign/",
|
|
"verify/campaign/"
|
|
],
|
|
"status": "accepted",
|
|
"stop_conditions": [
|
|
"Cross-cutting architecture changes require Astra resolution"
|
|
],
|
|
"title": "Bootstrap canonical contract controls and bounded worker launcher"
|
|
}
|