diff --git a/examples/phase2-final/dogfood-round2/README.md b/examples/phase2-final/dogfood-round2/README.md new file mode 100644 index 0000000..d6a9250 --- /dev/null +++ b/examples/phase2-final/dogfood-round2/README.md @@ -0,0 +1,66 @@ +# Dogfood Round 2 repair evidence + +This directory records the local Round 2 repair of the failed Phase 2 +dogfood trial. It contains exported, non-canonical evidence only. Canonical +Benchwork state was changed through the typed MCP boundary and no +`.benchwork/` state file is included here. + +## Root cause + +Round 1 attempted to complete `EX-001` with a run plan and metric that did not +match frozen Protocol `PT-001`. The Protocol required `RUN-000` and metric +`score`, while the trial recorded `RUN-001` through `RUN-005` using +`replay_success`. Athanor rejected pilot completion with +`VALIDATION_REJECTED`, and the failed trial was preserved. + +## Repair + +The repair preserved all Round 1 records. In particular, frozen `PT-001`, +active `WK-001`, `EX-001`, and their Chronicle histories remain unchanged. +The shared `RP-001`, `CL-002`, and `HY-002` aggregate objects advanced through +the registered evaluation while the repair added a new path: + +```text +PT-002 -> WK-002 -> AR-002 -> EX-002 + -> RUN-101..RUN-105 -> RB-001 -> AS-001 -> DE-001 +``` + +- `PT-002` freezes the included Pilot set as `RUN-101` through `RUN-104`. +- `RUN-105` remains a failed, excluded negative result with an explicit reason. +- `RB-001` analyzes only the four completed, included runs. +- `AS-001` records the synthetic-host limitations. +- `DE-001` seals the user-confirmed `REPAIR` outcome. +- `WK-002` finishes as `COMPLETED`; the original `WK-001` and `EX-001` + remain in their failed-trial states. + +The paired `replay_success` comparison produced a treatment mean of `1`, a +control mean of `0`, and a mean difference of `1` with a 95% Student-t +interval of `[1, 1]`. The standardized effect is unavailable because paired +differences have zero variance. + +## Integrity checks + +The final Deep Doctor report passes with 53 verified Chronicle events and 37 +replayable objects. A fresh process restart exported the same status bytes +before and after restart: + +```text +2d586f3dbb364808da96c1b212bb3371735a022cbdb0c9a226434f6c08aa64a2 +``` + +Run the local evidence checks from the repository root: + +```bash +sha256sum --check examples/phase2-final/dogfood-round2/SHA256SUMS +cmp \ + examples/phase2-final/dogfood-round2/round2-before-restart.json \ + examples/phase2-final/dogfood-round2/round2-after-restart.json +jq -e \ + '.ok and .chronicle_verified and .all_objects_replayable' \ + examples/phase2-final/dogfood-round2/restart-doctor.json +``` + +The Round 1 Protocol and Experiment traces are included so preservation can be +audited independently of the final aggregate snapshots. Full interactive +command logs are intentionally omitted because they are noisy and are not +required to verify the registered result. diff --git a/examples/phase2-final/dogfood-round2/SHA256SUMS b/examples/phase2-final/dogfood-round2/SHA256SUMS new file mode 100644 index 0000000..fd8f8ee --- /dev/null +++ b/examples/phase2-final/dogfood-round2/SHA256SUMS @@ -0,0 +1,9 @@ +ed3e2d99a7ae7e32f19d1bbacebd73e88c6c2fa8f2c50cd3e2091158446d92ec examples/phase2-final/dogfood-round2/analysis-spec-round2.json +3e355f4d64d22dd25adfa215463b0a6d26b499249229496a26a1d34759cfefe5 examples/phase2-final/dogfood-round2/implementation-artifact-round2.json +ebc306d07eee42cc433829814bef1b6d5c69f2def0a674e170ebde62d926f331 examples/phase2-final/dogfood-round2/restart-doctor.json +be29cf6487425fe5a5712c3fb347f061f8f06d32a358359a452d1c1ab94ac832 examples/phase2-final/dogfood-round2/restart-verify.txt +3579161fda803e46a0b871d0162826fca025e9133d5bc772e913826023613867 examples/phase2-final/dogfood-round2/round1-ex001-trace.json +8b2e437d43a182e346e6bb745f32eafc6de0472eb71d75687058f67a3e41f79c examples/phase2-final/dogfood-round2/round1-final-status.json +b929e98a6730a15bf7a6e13972a2b7224ff198a399c9268f69458d348f9141fe examples/phase2-final/dogfood-round2/round1-pt001-trace.json +2d586f3dbb364808da96c1b212bb3371735a022cbdb0c9a226434f6c08aa64a2 examples/phase2-final/dogfood-round2/round2-after-restart.json +2d586f3dbb364808da96c1b212bb3371735a022cbdb0c9a226434f6c08aa64a2 examples/phase2-final/dogfood-round2/round2-before-restart.json diff --git a/examples/phase2-final/dogfood-round2/analysis-spec-round2.json b/examples/phase2-final/dogfood-round2/analysis-spec-round2.json new file mode 100644 index 0000000..fea80ad --- /dev/null +++ b/examples/phase2-final/dogfood-round2/analysis-spec-round2.json @@ -0,0 +1,35 @@ +{ + "schema_version": "analysis-spec/1.0", + "comparisons": [ + { + "comparison_id": "CMP-002", + "experiment_id": "EX-002", + "arms": [ + "baseline", + "treatment" + ], + "metric": "replay_success", + "estimand": "mean_difference", + "pairing": "paired", + "uncertainty_method": "student_t", + "confidence_level": 0.95 + } + ], + "multiple_comparison_policy": "none", + "practical_significance_thresholds": { + "replay_success": 0.0 + }, + "pilot_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104" + ], + "expected_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104", + "RUN-105" + ] +} diff --git a/examples/phase2-final/dogfood-round2/implementation-artifact-round2.json b/examples/phase2-final/dogfood-round2/implementation-artifact-round2.json new file mode 100644 index 0000000..30c4515 --- /dev/null +++ b/examples/phase2-final/dogfood-round2/implementation-artifact-round2.json @@ -0,0 +1,19 @@ +{ + "schema_version": "dogfood-implementation-artifact/1.0", + "name": "benchwork-dogfood-replay-repair", + "version": "0.2", + "purpose": "Validate canonical replay through a Protocol-aligned registered pilot and preserve the excluded failed Run.", + "protocol_id": "PT-002", + "working_id": "WK-002", + "analysis_spec": "analysis-spec-round2.json", + "experiment_id": "EX-002", + "required_pilot_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104" + ], + "preserved_failed_run_ids": [ + "RUN-105" + ] +} diff --git a/examples/phase2-final/dogfood-round2/restart-doctor.json b/examples/phase2-final/dogfood-round2/restart-doctor.json new file mode 100644 index 0000000..c71b393 --- /dev/null +++ b/examples/phase2-final/dogfood-round2/restart-doctor.json @@ -0,0 +1,57 @@ +{ + "schema_version": "doctor-report/1.1", + "mode": "deep", + "ok": true, + "chronicle_verified": true, + "all_objects_replayable": true, + "checks": { + "chronicle": { + "status": "PASS", + "event_count": 53 + }, + "projection": { + "status": "PASS", + "object_count": 37 + }, + "snapshots": { + "status": "PASS", + "verified_count": 6 + }, + "capsules": { + "status": "PASS", + "verified_count": 6 + }, + "capability_registry": { + "status": "PASS", + "verified_count": 21 + }, + "rite_registry": { + "status": "PASS", + "verified_count": 3 + }, + "grimoire_registry": { + "status": "PASS", + "verified_count": 0 + }, + "agent_outputs": { + "status": "PASS", + "verified_count": 3 + }, + "artifacts": { + "status": "PASS", + "verified_count": 2 + }, + "result_exports": { + "status": "PASS", + "verified_count": 1 + }, + "project_context": { + "status": "PASS", + "active_program_id": "RP-001" + }, + "migration_state": { + "status": "PASS", + "residual_count": 0 + } + } +} diff --git a/examples/phase2-final/dogfood-round2/restart-verify.txt b/examples/phase2-final/dogfood-round2/restart-verify.txt new file mode 100644 index 0000000..c9d3afa --- /dev/null +++ b/examples/phase2-final/dogfood-round2/restart-verify.txt @@ -0,0 +1 @@ +Chronicle healthy: 53 verified event(s), receipt chain intact diff --git a/examples/phase2-final/dogfood-round2/round1-ex001-trace.json b/examples/phase2-final/dogfood-round2/round1-ex001-trace.json new file mode 100644 index 0000000..730839f --- /dev/null +++ b/examples/phase2-final/dogfood-round2/round1-ex001-trace.json @@ -0,0 +1,371 @@ +[ + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:8faad085418b195eb29fbafb514208a2a3f7e57cce1ea3526ffc67fd984d4721", + "event_id": "CE-6E3B11D855F0", + "object_id": "PT-001", + "occurred_at": "2026-07-30T10:07:40.719499+00:00", + "payload": { + "analysis_plan": "Compare registered replay outcomes between baseline and treatment runs.", + "analysis_spec": { + "comparisons": [ + { + "arms": [ + "baseline", + "treatment" + ], + "comparison_id": "CMP-001", + "confidence_level": 0.95, + "estimand": "mean_difference", + "experiment_id": "EX-001", + "metric": "score", + "pairing": "paired", + "uncertainty_method": "student_t" + } + ], + "expected_run_ids": [ + "RUN-000", + "RUN-001" + ], + "multiple_comparison_policy": "none", + "pilot_run_ids": [ + "RUN-000", + "RUN-001" + ], + "practical_significance_thresholds": { + "score": 0.02 + }, + "schema_version": "analysis-spec/1.0" + }, + "hypothesis_ids": [ + "HY-002" + ], + "program_id": "RP-001", + "study_mode": "confirmatory", + "title": "Minimal Chronicle replay trial" + }, + "previous_receipt_sigil": "sha256:eeed9d327be1324abf5ee6c41bc021b7870436f54b249a6d4127a89d9957d248", + "receipt": { + "accepted_at": "2026-07-30T10:07:40.719499+00:00", + "event_body_sigil": "sha256:8faad085418b195eb29fbafb514208a2a3f7e57cce1ea3526ffc67fd984d4721", + "event_id": "CE-6E3B11D855F0", + "previous_receipt_sigil": "sha256:eeed9d327be1324abf5ee6c41bc021b7870436f54b249a6d4127a89d9957d248", + "receipt_id": "RC-73463CFF25A7", + "receipt_sigil": "sha256:d2949007874a262d6016800fc9258a410d9b056ef83ea67632d3cd83838f5fc6", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 17, + "type": "protocol.drafted" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:f86b2910ae5ad5f159a1e5c49532e0c21de15a03f396f0e8d26b216bf8e217d4", + "event_id": "CE-D6F92F631780", + "object_id": "EX-001", + "occurred_at": "2026-07-30T10:16:19.738616+00:00", + "payload": { + "hypothesis_id": "HY-002", + "program_id": "RP-001", + "protocol_id": "PT-001", + "question": "Does Benchwork preserve registered state after process restart?", + "working_id": "WK-001" + }, + "previous_receipt_sigil": "sha256:fead8789c4bbf87ada57d6bae528e1dce0ed13c158ae83b554311eb7f4a0128a", + "receipt": { + "accepted_at": "2026-07-30T10:16:19.738616+00:00", + "event_body_sigil": "sha256:f86b2910ae5ad5f159a1e5c49532e0c21de15a03f396f0e8d26b216bf8e217d4", + "event_id": "CE-D6F92F631780", + "previous_receipt_sigil": "sha256:fead8789c4bbf87ada57d6bae528e1dce0ed13c158ae83b554311eb7f4a0128a", + "receipt_id": "RC-F77618CCBAD6", + "receipt_sigil": "sha256:254386d32ef0c4f203eeb16cdc1897f4ea7174dc42a22399d0db7836721b2c90", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 21, + "type": "experiment.planned" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:822d9b3301d656b57873d18f8ddbf039ec0548da805554bd65eff30a6902b551", + "event_id": "CE-004D35021E08", + "object_id": "EX-001", + "occurred_at": "2026-07-30T10:16:25.565867+00:00", + "payload": { + "program_id": "RP-001", + "protocol_id": "PT-001", + "working_id": "WK-001" + }, + "previous_receipt_sigil": "sha256:254386d32ef0c4f203eeb16cdc1897f4ea7174dc42a22399d0db7836721b2c90", + "receipt": { + "accepted_at": "2026-07-30T10:16:25.565867+00:00", + "event_body_sigil": "sha256:822d9b3301d656b57873d18f8ddbf039ec0548da805554bd65eff30a6902b551", + "event_id": "CE-004D35021E08", + "previous_receipt_sigil": "sha256:254386d32ef0c4f203eeb16cdc1897f4ea7174dc42a22399d0db7836721b2c90", + "receipt_id": "RC-4B81C71211FA", + "receipt_sigil": "sha256:7142393671c8277a1482b4ebbff09149dfec763dcb03d8ee6da323783d294bf0", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 22, + "type": "experiment.implemented" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:56932badf8a29be7adf03667f9ab641c8fff6495d29cbf9ccff0b0ce9db3e2b9", + "event_id": "CE-0927A1F2A8EC", + "object_id": "EX-001", + "occurred_at": "2026-07-30T10:16:35.387817+00:00", + "payload": { + "program_id": "RP-001", + "protocol_id": "PT-001", + "working_id": "WK-001" + }, + "previous_receipt_sigil": "sha256:7142393671c8277a1482b4ebbff09149dfec763dcb03d8ee6da323783d294bf0", + "receipt": { + "accepted_at": "2026-07-30T10:16:35.387817+00:00", + "event_body_sigil": "sha256:56932badf8a29be7adf03667f9ab641c8fff6495d29cbf9ccff0b0ce9db3e2b9", + "event_id": "CE-0927A1F2A8EC", + "previous_receipt_sigil": "sha256:7142393671c8277a1482b4ebbff09149dfec763dcb03d8ee6da323783d294bf0", + "receipt_id": "RC-EB5A23DB6635", + "receipt_sigil": "sha256:8f68435d9187270e0f3882d79e5b273d9ba96a7cd6d67a0959b0440c44d47241", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 23, + "type": "experiment.pilot_started" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:41e77d0bfb349138a9ae3573ac15919a8769fc4631ca9de050d02df1db3807f9", + "event_id": "CE-6FBB4DBF5FCD", + "object_id": "RUN-001", + "occurred_at": "2026-07-30T10:16:52.597949+00:00", + "payload": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 1, + "status": "COMPLETED" + }, + "previous_receipt_sigil": "sha256:8f68435d9187270e0f3882d79e5b273d9ba96a7cd6d67a0959b0440c44d47241", + "receipt": { + "accepted_at": "2026-07-30T10:16:52.597949+00:00", + "event_body_sigil": "sha256:41e77d0bfb349138a9ae3573ac15919a8769fc4631ca9de050d02df1db3807f9", + "event_id": "CE-6FBB4DBF5FCD", + "previous_receipt_sigil": "sha256:8f68435d9187270e0f3882d79e5b273d9ba96a7cd6d67a0959b0440c44d47241", + "receipt_id": "RC-4C539BB348F8", + "receipt_sigil": "sha256:69f74ec72f9483b5e5c8cb66e8554c2613a119f7cae1df76b1aaa55223ff5541", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 24, + "type": "run.recorded" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:84ac04b1eed12851c7fb450e83490cff62f9dcdd8180e549e35d970b7f35698d", + "event_id": "CE-19B11229E493", + "object_id": "RUN-002", + "occurred_at": "2026-07-30T10:17:00.303710+00:00", + "payload": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 1, + "status": "COMPLETED" + }, + "previous_receipt_sigil": "sha256:69f74ec72f9483b5e5c8cb66e8554c2613a119f7cae1df76b1aaa55223ff5541", + "receipt": { + "accepted_at": "2026-07-30T10:17:00.303710+00:00", + "event_body_sigil": "sha256:84ac04b1eed12851c7fb450e83490cff62f9dcdd8180e549e35d970b7f35698d", + "event_id": "CE-19B11229E493", + "previous_receipt_sigil": "sha256:69f74ec72f9483b5e5c8cb66e8554c2613a119f7cae1df76b1aaa55223ff5541", + "receipt_id": "RC-B608F4A0C1A3", + "receipt_sigil": "sha256:ec9d09fab3a5714bd1483cef1b7e4812da48c01ba3c96ef70039cd9496d6cdcc", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 25, + "type": "run.recorded" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:217dac3e61377db44a235415e94aa963958680ec12d8f61587cd4cafbec56707", + "event_id": "CE-9ECE15561681", + "object_id": "RUN-003", + "occurred_at": "2026-07-30T10:17:06.200168+00:00", + "payload": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 2, + "status": "COMPLETED" + }, + "previous_receipt_sigil": "sha256:ec9d09fab3a5714bd1483cef1b7e4812da48c01ba3c96ef70039cd9496d6cdcc", + "receipt": { + "accepted_at": "2026-07-30T10:17:06.200168+00:00", + "event_body_sigil": "sha256:217dac3e61377db44a235415e94aa963958680ec12d8f61587cd4cafbec56707", + "event_id": "CE-9ECE15561681", + "previous_receipt_sigil": "sha256:ec9d09fab3a5714bd1483cef1b7e4812da48c01ba3c96ef70039cd9496d6cdcc", + "receipt_id": "RC-6DF509FB2046", + "receipt_sigil": "sha256:4538a5f3a9b68591c0a471468b8f0419eaba99aa17c343c5c90a6e06a7f413c2", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 26, + "type": "run.recorded" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:5a23228d5ac5c5a9f9e2b4523b872032f1640bc47eb3733a457a8d0df0a3737d", + "event_id": "CE-5D1D65B9EA55", + "object_id": "RUN-004", + "occurred_at": "2026-07-30T10:17:11.902763+00:00", + "payload": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 2, + "status": "COMPLETED" + }, + "previous_receipt_sigil": "sha256:4538a5f3a9b68591c0a471468b8f0419eaba99aa17c343c5c90a6e06a7f413c2", + "receipt": { + "accepted_at": "2026-07-30T10:17:11.902763+00:00", + "event_body_sigil": "sha256:5a23228d5ac5c5a9f9e2b4523b872032f1640bc47eb3733a457a8d0df0a3737d", + "event_id": "CE-5D1D65B9EA55", + "previous_receipt_sigil": "sha256:4538a5f3a9b68591c0a471468b8f0419eaba99aa17c343c5c90a6e06a7f413c2", + "receipt_id": "RC-C481052CC390", + "receipt_sigil": "sha256:1dcbe4dfde550e6c52a2073c78a5db93e40b00be004869e1bcb5787021f1f098", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 27, + "type": "run.recorded" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:454155cefe3b56b7ba18b778ac7388f751ef0bf1f4ec4d7b6e537ec283f423a3", + "event_id": "CE-B4D51F751581", + "object_id": "RUN-005", + "occurred_at": "2026-07-30T10:17:44.580559+00:00", + "payload": { + "analysis_disposition": { + "included": false, + "policy_reference": "PT-001#analysis-plan", + "reason": "Synthetic failed run retained for negative-result validation." + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": {}, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 3, + "status": "FAILED" + }, + "previous_receipt_sigil": "sha256:1dcbe4dfde550e6c52a2073c78a5db93e40b00be004869e1bcb5787021f1f098", + "receipt": { + "accepted_at": "2026-07-30T10:17:44.580559+00:00", + "event_body_sigil": "sha256:454155cefe3b56b7ba18b778ac7388f751ef0bf1f4ec4d7b6e537ec283f423a3", + "event_id": "CE-B4D51F751581", + "previous_receipt_sigil": "sha256:1dcbe4dfde550e6c52a2073c78a5db93e40b00be004869e1bcb5787021f1f098", + "receipt_id": "RC-F67C1592C79D", + "receipt_sigil": "sha256:51b35ed1c5db600134678bb0898d6220615300fb0807b2a64a246b598f540678", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 28, + "type": "run.recorded" + } +] diff --git a/examples/phase2-final/dogfood-round2/round1-final-status.json b/examples/phase2-final/dogfood-round2/round1-final-status.json new file mode 100644 index 0000000..ce528ca --- /dev/null +++ b/examples/phase2-final/dogfood-round2/round1-final-status.json @@ -0,0 +1,445 @@ +{ + "programs": { + "RP-001": { + "schema_version": "research-program/1.1", + "program_id": "RP-001", + "slug": "trial-memory", + "title": "Benchwork dogfood trial", + "problem": { + "statement": "Verify the minimal canonical research workflow." + }, + "status": "IMPLEMENTED", + "research_question": { + "statement": "Can Benchwork preserve a minimal research workflow across restart?", + "sealed_at": "2026-07-30T09:47:53.450632+00:00", + "seal_receipt": "RC-A11F46B334F6", + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + } + }, + "evidence": [ + "EV-001", + "EV-002" + ], + "claims": [ + "CL-001", + "CL-002" + ], + "hypotheses": [ + "HY-001", + "HY-002" + ], + "protocols": [ + "PT-001" + ], + "assessments": [], + "decisions": [], + "artifacts": [ + "AR-001" + ], + "issues": [], + "deviations": [], + "reproduction_records": [] + } + }, + "protocols": { + "PT-001": { + "schema_version": "study-protocol/1.3", + "protocol_id": "PT-001", + "program_id": "RP-001", + "hypothesis_ids": [ + "HY-002" + ], + "title": "Minimal Chronicle replay trial", + "analysis_plan": "Compare registered replay outcomes between baseline and treatment runs.", + "status": "FROZEN", + "deviations": [], + "sealed_at": "2026-07-30T10:12:42.439410+00:00", + "seal_receipt": "RC-8CE15AA5E69F", + "seal_actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "study_mode": "confirmatory", + "analysis_spec": { + "comparisons": [ + { + "arms": [ + "baseline", + "treatment" + ], + "comparison_id": "CMP-001", + "confidence_level": 0.95, + "estimand": "mean_difference", + "experiment_id": "EX-001", + "metric": "score", + "pairing": "paired", + "uncertainty_method": "student_t" + } + ], + "expected_run_ids": [ + "RUN-000", + "RUN-001" + ], + "multiple_comparison_policy": "none", + "pilot_run_ids": [ + "RUN-000", + "RUN-001" + ], + "practical_significance_thresholds": { + "score": 0.02 + }, + "schema_version": "analysis-spec/1.0" + } + } + }, + "approvals": {}, + "workings": { + "WK-001": { + "schema_version": "working/1.1", + "working_id": "WK-001", + "rite_id": "computational-study@0.2.1", + "rite_sigil": "sha256:1d942b9229ebd9ec54c3f6f1991e9a96efccdbc096bfc1776e78523632260ba8", + "rite": { + "description": "A Working-bound canonical-event computational research study.", + "rite_id": "computational-study@0.2.1", + "schema_version": "rite/1.1", + "stages": [ + { + "exit_contract": { + "event_type": "artifact.registered", + "kind": "implementation", + "object_type": "artifact", + "same_program": true, + "same_protocol": true + }, + "name": "IMPLEMENTATION" + }, + { + "exit_contract": { + "event_type": "experiment.pilot_completed", + "object_type": "experiment", + "same_program": true, + "same_protocol": true + }, + "name": "PILOT" + }, + { + "exit_contract": { + "event_type": "analysis.computed", + "object_type": "result-bundle", + "same_program": true, + "same_protocol": true + }, + "name": "ANALYSIS" + }, + { + "exit_contract": { + "event_type": "assessment.recorded", + "object_type": "assessment", + "same_program": true, + "same_protocol": true + }, + "name": "REVIEW" + }, + { + "exit_contract": { + "event_type": "decision.sealed", + "object_type": "decision", + "same_program": true, + "same_protocol": true + }, + "name": "DECISION" + }, + { + "name": "COMPLETED" + } + ] + }, + "program_id": "RP-001", + "protocol_id": "PT-001", + "stage": "PILOT", + "status": "ACTIVE", + "history": [ + { + "stage": "IMPLEMENTATION", + "at": "2026-07-30T10:13:15.842335+00:00", + "reason": "created", + "canonical_event_id": "CE-A53ADE916123", + "object_id": "WK-001" + }, + { + "stage": "PILOT", + "at": "2026-07-30T10:15:40.615528+00:00", + "reason": "exit contract satisfied by artifact.registered", + "canonical_event_id": "CE-32EAC70BE810", + "object_id": "AR-001" + } + ] + } + }, + "experiments": { + "EX-001": { + "schema_version": "experiment/1.2", + "experiment_id": "EX-001", + "program_id": "RP-001", + "protocol_id": "PT-001", + "hypothesis_id": "HY-002", + "question": "Does Benchwork preserve registered state after process restart?", + "status": "PILOT_RUNNING", + "working_id": "WK-001", + "history": [ + { + "status": "PLANNED", + "event_id": "CE-D6F92F631780", + "at": "2026-07-30T10:16:19.738616+00:00" + }, + { + "status": "IMPLEMENTED", + "event_id": "CE-004D35021E08", + "at": "2026-07-30T10:16:25.565867+00:00" + }, + { + "status": "PILOT_RUNNING", + "event_id": "CE-0927A1F2A8EC", + "at": "2026-07-30T10:16:35.387817+00:00" + } + ] + } + }, + "runs": { + "RUN-001": { + "schema_version": "run/1.2", + "run_id": "RUN-001", + "program_id": "RP-001", + "protocol_id": "PT-001", + "experiment_id": "EX-001", + "status": "COMPLETED", + "seed": 1, + "metrics": { + "replay_success": 0.0 + }, + "artifacts": [], + "phase": "PILOT", + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline" + }, + "RUN-002": { + "schema_version": "run/1.2", + "run_id": "RUN-002", + "program_id": "RP-001", + "protocol_id": "PT-001", + "experiment_id": "EX-001", + "status": "COMPLETED", + "seed": 1, + "metrics": { + "replay_success": 1.0 + }, + "artifacts": [], + "phase": "PILOT", + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment" + }, + "RUN-003": { + "schema_version": "run/1.2", + "run_id": "RUN-003", + "program_id": "RP-001", + "protocol_id": "PT-001", + "experiment_id": "EX-001", + "status": "COMPLETED", + "seed": 2, + "metrics": { + "replay_success": 0.0 + }, + "artifacts": [], + "phase": "PILOT", + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline" + }, + "RUN-004": { + "schema_version": "run/1.2", + "run_id": "RUN-004", + "program_id": "RP-001", + "protocol_id": "PT-001", + "experiment_id": "EX-001", + "status": "COMPLETED", + "seed": 2, + "metrics": { + "replay_success": 1.0 + }, + "artifacts": [], + "phase": "PILOT", + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment" + }, + "RUN-005": { + "schema_version": "run/1.2", + "run_id": "RUN-005", + "program_id": "RP-001", + "protocol_id": "PT-001", + "experiment_id": "EX-001", + "status": "FAILED", + "seed": 3, + "metrics": {}, + "artifacts": [], + "phase": "PILOT", + "analysis_disposition": { + "included": false, + "policy_reference": "PT-001#analysis-plan", + "reason": "Synthetic failed run retained for negative-result validation." + }, + "arm": "treatment" + } + }, + "result_bundles": {}, + "evidence": { + "EV-001": { + "schema_version": "evidence/1.2", + "evidence_id": "EV-001", + "program_id": "RP-001", + "source": { + "sigil": "sha256:0000000000000000000000000000000000000000000000000000000000000000", + "uri": "trial-source.txt" + }, + "observation": "The trial records a minimal supported observation.", + "claim_relations": [ + { + "claim_id": "CL-001", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "verification": { + "source_resolved": true, + "content_inspected": true + }, + "reproduction_ids": [] + }, + "EV-002": { + "schema_version": "evidence/1.2", + "evidence_id": "EV-002", + "program_id": "RP-001", + "source": { + "sigil": "sha256:6a98fcb971fa3ec0e0ddcf8ff607093e2c730e6953a50bb7a0a6ea5582996f9a", + "uri": "trial-source.txt" + }, + "observation": "The dogfood source defines the expected replay behavior.", + "claim_relations": [ + { + "claim_id": "CL-002", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "verification": { + "source_resolved": true, + "content_inspected": true + }, + "reproduction_ids": [] + } + }, + "claims": { + "CL-001": { + "schema_version": "claim/1.2", + "claim_id": "CL-001", + "program_id": "RP-001", + "type": "empirical", + "statement": "The minimal canonical workflow preserves research state.", + "status": "PROPOSED", + "evidence_relations": [ + { + "evidence_id": "EV-001", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ] + }, + "CL-002": { + "schema_version": "claim/1.2", + "claim_id": "CL-002", + "program_id": "RP-001", + "type": "empirical", + "statement": "Benchwork reconstructs canonical state from Chronicle after process restart.", + "status": "PROPOSED", + "evidence_relations": [ + { + "evidence_id": "EV-002", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ] + } + }, + "hypotheses": { + "HY-001": { + "schema_version": "hypothesis/1.0", + "hypothesis_id": "HY-001", + "program_id": "RP-001", + "claim_ids": [ + "CL-001" + ], + "statement": "A sealed protocol can be replayed from Chronicle.", + "prediction": "The protocol remains present and unchanged after process restart.", + "status": "PROPOSED" + }, + "HY-002": { + "schema_version": "hypothesis/1.0", + "hypothesis_id": "HY-002", + "program_id": "RP-001", + "claim_ids": [ + "CL-002" + ], + "statement": "A frozen protocol remains identical after restarting the CLI process.", + "prediction": "The replayed protocol Sigil and canonical fields match the pre-restart state.", + "status": "ACTIVE" + } + }, + "assessments": {}, + "decisions": {}, + "artifacts": { + "AR-001": { + "schema_version": "artifact/1.0", + "artifact_id": "AR-001", + "program_id": "RP-001", + "kind": "implementation", + "location": { + "sigil": "sha256:f7a488b0699838d9e5e13775bc45073773b0cc7e472f3a106fbd279d93894f3c", + "uri": "implementation-artifact.json" + }, + "producer_id": "WK-001", + "input_ids": [ + "PT-001" + ], + "status": "REGISTERED", + "registered_at": "2026-07-30T10:15:40.615528+00:00", + "registration_receipt": "RC-403698C05BBF" + } + }, + "issues": {}, + "deviations": {}, + "reproduction_records": {}, + "agent_results": {}, + "review_requests": {}, + "review_artifacts": {} +} diff --git a/examples/phase2-final/dogfood-round2/round1-pt001-trace.json b/examples/phase2-final/dogfood-round2/round1-pt001-trace.json new file mode 100644 index 0000000..b160c73 --- /dev/null +++ b/examples/phase2-final/dogfood-round2/round1-pt001-trace.json @@ -0,0 +1,524 @@ +[ + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:8faad085418b195eb29fbafb514208a2a3f7e57cce1ea3526ffc67fd984d4721", + "event_id": "CE-6E3B11D855F0", + "object_id": "PT-001", + "occurred_at": "2026-07-30T10:07:40.719499+00:00", + "payload": { + "analysis_plan": "Compare registered replay outcomes between baseline and treatment runs.", + "analysis_spec": { + "comparisons": [ + { + "arms": [ + "baseline", + "treatment" + ], + "comparison_id": "CMP-001", + "confidence_level": 0.95, + "estimand": "mean_difference", + "experiment_id": "EX-001", + "metric": "score", + "pairing": "paired", + "uncertainty_method": "student_t" + } + ], + "expected_run_ids": [ + "RUN-000", + "RUN-001" + ], + "multiple_comparison_policy": "none", + "pilot_run_ids": [ + "RUN-000", + "RUN-001" + ], + "practical_significance_thresholds": { + "score": 0.02 + }, + "schema_version": "analysis-spec/1.0" + }, + "hypothesis_ids": [ + "HY-002" + ], + "program_id": "RP-001", + "study_mode": "confirmatory", + "title": "Minimal Chronicle replay trial" + }, + "previous_receipt_sigil": "sha256:eeed9d327be1324abf5ee6c41bc021b7870436f54b249a6d4127a89d9957d248", + "receipt": { + "accepted_at": "2026-07-30T10:07:40.719499+00:00", + "event_body_sigil": "sha256:8faad085418b195eb29fbafb514208a2a3f7e57cce1ea3526ffc67fd984d4721", + "event_id": "CE-6E3B11D855F0", + "previous_receipt_sigil": "sha256:eeed9d327be1324abf5ee6c41bc021b7870436f54b249a6d4127a89d9957d248", + "receipt_id": "RC-73463CFF25A7", + "receipt_sigil": "sha256:d2949007874a262d6016800fc9258a410d9b056ef83ea67632d3cd83838f5fc6", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 17, + "type": "protocol.drafted" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:581db20171945e5b66b5b05f5314a27fe51da7ec3a46eded75e4ba6f98129b5d", + "event_id": "CE-3F56F36B97D8", + "object_id": "PT-001", + "occurred_at": "2026-07-30T10:12:42.439410+00:00", + "payload": { + "program_id": "RP-001", + "status": "FROZEN" + }, + "previous_receipt_sigil": "sha256:d2949007874a262d6016800fc9258a410d9b056ef83ea67632d3cd83838f5fc6", + "receipt": { + "accepted_at": "2026-07-30T10:12:42.439410+00:00", + "event_body_sigil": "sha256:581db20171945e5b66b5b05f5314a27fe51da7ec3a46eded75e4ba6f98129b5d", + "event_id": "CE-3F56F36B97D8", + "previous_receipt_sigil": "sha256:d2949007874a262d6016800fc9258a410d9b056ef83ea67632d3cd83838f5fc6", + "receipt_id": "RC-8CE15AA5E69F", + "receipt_sigil": "sha256:f1b19785c024b645a890619291b37351b7143643c0c46a758fd56544fb4928f5", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 18, + "type": "protocol.sealed" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:622604a2ac4beb6e7f720b1c5263d81db23d3e510a2a94280706c0479f7a3c2e", + "event_id": "CE-A53ADE916123", + "object_id": "WK-001", + "occurred_at": "2026-07-30T10:13:15.842335+00:00", + "payload": { + "program_id": "RP-001", + "protocol_id": "PT-001", + "rite": { + "description": "A Working-bound canonical-event computational research study.", + "rite_id": "computational-study@0.2.1", + "schema_version": "rite/1.1", + "stages": [ + { + "exit_contract": { + "event_type": "artifact.registered", + "kind": "implementation", + "object_type": "artifact", + "same_program": true, + "same_protocol": true + }, + "name": "IMPLEMENTATION" + }, + { + "exit_contract": { + "event_type": "experiment.pilot_completed", + "object_type": "experiment", + "same_program": true, + "same_protocol": true + }, + "name": "PILOT" + }, + { + "exit_contract": { + "event_type": "analysis.computed", + "object_type": "result-bundle", + "same_program": true, + "same_protocol": true + }, + "name": "ANALYSIS" + }, + { + "exit_contract": { + "event_type": "assessment.recorded", + "object_type": "assessment", + "same_program": true, + "same_protocol": true + }, + "name": "REVIEW" + }, + { + "exit_contract": { + "event_type": "decision.sealed", + "object_type": "decision", + "same_program": true, + "same_protocol": true + }, + "name": "DECISION" + }, + { + "name": "COMPLETED" + } + ] + }, + "rite_id": "computational-study@0.2.1", + "rite_sigil": "sha256:1d942b9229ebd9ec54c3f6f1991e9a96efccdbc096bfc1776e78523632260ba8" + }, + "previous_receipt_sigil": "sha256:f1b19785c024b645a890619291b37351b7143643c0c46a758fd56544fb4928f5", + "receipt": { + "accepted_at": "2026-07-30T10:13:15.842335+00:00", + "event_body_sigil": "sha256:622604a2ac4beb6e7f720b1c5263d81db23d3e510a2a94280706c0479f7a3c2e", + "event_id": "CE-A53ADE916123", + "previous_receipt_sigil": "sha256:f1b19785c024b645a890619291b37351b7143643c0c46a758fd56544fb4928f5", + "receipt_id": "RC-45E07218373D", + "receipt_sigil": "sha256:d5cd5602a38df2fdca93cbd423adcf0850c1a93c5eb3d1d8218fab7af3580f38", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 19, + "type": "working.created" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:4784852f8e25bc4d8f92b7c0c64e9c72ae8edb91b29cde3c6990b974a46b3d86", + "event_id": "CE-32EAC70BE810", + "object_id": "AR-001", + "occurred_at": "2026-07-30T10:15:40.615528+00:00", + "payload": { + "input_ids": [ + "PT-001" + ], + "kind": "implementation", + "location": { + "sigil": "sha256:f7a488b0699838d9e5e13775bc45073773b0cc7e472f3a106fbd279d93894f3c", + "uri": "implementation-artifact.json" + }, + "producer_id": "WK-001", + "program_id": "RP-001" + }, + "previous_receipt_sigil": "sha256:d5cd5602a38df2fdca93cbd423adcf0850c1a93c5eb3d1d8218fab7af3580f38", + "receipt": { + "accepted_at": "2026-07-30T10:15:40.615528+00:00", + "event_body_sigil": "sha256:4784852f8e25bc4d8f92b7c0c64e9c72ae8edb91b29cde3c6990b974a46b3d86", + "event_id": "CE-32EAC70BE810", + "previous_receipt_sigil": "sha256:d5cd5602a38df2fdca93cbd423adcf0850c1a93c5eb3d1d8218fab7af3580f38", + "receipt_id": "RC-403698C05BBF", + "receipt_sigil": "sha256:fead8789c4bbf87ada57d6bae528e1dce0ed13c158ae83b554311eb7f4a0128a", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 20, + "type": "artifact.registered" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:f86b2910ae5ad5f159a1e5c49532e0c21de15a03f396f0e8d26b216bf8e217d4", + "event_id": "CE-D6F92F631780", + "object_id": "EX-001", + "occurred_at": "2026-07-30T10:16:19.738616+00:00", + "payload": { + "hypothesis_id": "HY-002", + "program_id": "RP-001", + "protocol_id": "PT-001", + "question": "Does Benchwork preserve registered state after process restart?", + "working_id": "WK-001" + }, + "previous_receipt_sigil": "sha256:fead8789c4bbf87ada57d6bae528e1dce0ed13c158ae83b554311eb7f4a0128a", + "receipt": { + "accepted_at": "2026-07-30T10:16:19.738616+00:00", + "event_body_sigil": "sha256:f86b2910ae5ad5f159a1e5c49532e0c21de15a03f396f0e8d26b216bf8e217d4", + "event_id": "CE-D6F92F631780", + "previous_receipt_sigil": "sha256:fead8789c4bbf87ada57d6bae528e1dce0ed13c158ae83b554311eb7f4a0128a", + "receipt_id": "RC-F77618CCBAD6", + "receipt_sigil": "sha256:254386d32ef0c4f203eeb16cdc1897f4ea7174dc42a22399d0db7836721b2c90", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 21, + "type": "experiment.planned" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:822d9b3301d656b57873d18f8ddbf039ec0548da805554bd65eff30a6902b551", + "event_id": "CE-004D35021E08", + "object_id": "EX-001", + "occurred_at": "2026-07-30T10:16:25.565867+00:00", + "payload": { + "program_id": "RP-001", + "protocol_id": "PT-001", + "working_id": "WK-001" + }, + "previous_receipt_sigil": "sha256:254386d32ef0c4f203eeb16cdc1897f4ea7174dc42a22399d0db7836721b2c90", + "receipt": { + "accepted_at": "2026-07-30T10:16:25.565867+00:00", + "event_body_sigil": "sha256:822d9b3301d656b57873d18f8ddbf039ec0548da805554bd65eff30a6902b551", + "event_id": "CE-004D35021E08", + "previous_receipt_sigil": "sha256:254386d32ef0c4f203eeb16cdc1897f4ea7174dc42a22399d0db7836721b2c90", + "receipt_id": "RC-4B81C71211FA", + "receipt_sigil": "sha256:7142393671c8277a1482b4ebbff09149dfec763dcb03d8ee6da323783d294bf0", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 22, + "type": "experiment.implemented" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:56932badf8a29be7adf03667f9ab641c8fff6495d29cbf9ccff0b0ce9db3e2b9", + "event_id": "CE-0927A1F2A8EC", + "object_id": "EX-001", + "occurred_at": "2026-07-30T10:16:35.387817+00:00", + "payload": { + "program_id": "RP-001", + "protocol_id": "PT-001", + "working_id": "WK-001" + }, + "previous_receipt_sigil": "sha256:7142393671c8277a1482b4ebbff09149dfec763dcb03d8ee6da323783d294bf0", + "receipt": { + "accepted_at": "2026-07-30T10:16:35.387817+00:00", + "event_body_sigil": "sha256:56932badf8a29be7adf03667f9ab641c8fff6495d29cbf9ccff0b0ce9db3e2b9", + "event_id": "CE-0927A1F2A8EC", + "previous_receipt_sigil": "sha256:7142393671c8277a1482b4ebbff09149dfec763dcb03d8ee6da323783d294bf0", + "receipt_id": "RC-EB5A23DB6635", + "receipt_sigil": "sha256:8f68435d9187270e0f3882d79e5b273d9ba96a7cd6d67a0959b0440c44d47241", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 23, + "type": "experiment.pilot_started" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:41e77d0bfb349138a9ae3573ac15919a8769fc4631ca9de050d02df1db3807f9", + "event_id": "CE-6FBB4DBF5FCD", + "object_id": "RUN-001", + "occurred_at": "2026-07-30T10:16:52.597949+00:00", + "payload": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 1, + "status": "COMPLETED" + }, + "previous_receipt_sigil": "sha256:8f68435d9187270e0f3882d79e5b273d9ba96a7cd6d67a0959b0440c44d47241", + "receipt": { + "accepted_at": "2026-07-30T10:16:52.597949+00:00", + "event_body_sigil": "sha256:41e77d0bfb349138a9ae3573ac15919a8769fc4631ca9de050d02df1db3807f9", + "event_id": "CE-6FBB4DBF5FCD", + "previous_receipt_sigil": "sha256:8f68435d9187270e0f3882d79e5b273d9ba96a7cd6d67a0959b0440c44d47241", + "receipt_id": "RC-4C539BB348F8", + "receipt_sigil": "sha256:69f74ec72f9483b5e5c8cb66e8554c2613a119f7cae1df76b1aaa55223ff5541", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 24, + "type": "run.recorded" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:84ac04b1eed12851c7fb450e83490cff62f9dcdd8180e549e35d970b7f35698d", + "event_id": "CE-19B11229E493", + "object_id": "RUN-002", + "occurred_at": "2026-07-30T10:17:00.303710+00:00", + "payload": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 1, + "status": "COMPLETED" + }, + "previous_receipt_sigil": "sha256:69f74ec72f9483b5e5c8cb66e8554c2613a119f7cae1df76b1aaa55223ff5541", + "receipt": { + "accepted_at": "2026-07-30T10:17:00.303710+00:00", + "event_body_sigil": "sha256:84ac04b1eed12851c7fb450e83490cff62f9dcdd8180e549e35d970b7f35698d", + "event_id": "CE-19B11229E493", + "previous_receipt_sigil": "sha256:69f74ec72f9483b5e5c8cb66e8554c2613a119f7cae1df76b1aaa55223ff5541", + "receipt_id": "RC-B608F4A0C1A3", + "receipt_sigil": "sha256:ec9d09fab3a5714bd1483cef1b7e4812da48c01ba3c96ef70039cd9496d6cdcc", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 25, + "type": "run.recorded" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:217dac3e61377db44a235415e94aa963958680ec12d8f61587cd4cafbec56707", + "event_id": "CE-9ECE15561681", + "object_id": "RUN-003", + "occurred_at": "2026-07-30T10:17:06.200168+00:00", + "payload": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 2, + "status": "COMPLETED" + }, + "previous_receipt_sigil": "sha256:ec9d09fab3a5714bd1483cef1b7e4812da48c01ba3c96ef70039cd9496d6cdcc", + "receipt": { + "accepted_at": "2026-07-30T10:17:06.200168+00:00", + "event_body_sigil": "sha256:217dac3e61377db44a235415e94aa963958680ec12d8f61587cd4cafbec56707", + "event_id": "CE-9ECE15561681", + "previous_receipt_sigil": "sha256:ec9d09fab3a5714bd1483cef1b7e4812da48c01ba3c96ef70039cd9496d6cdcc", + "receipt_id": "RC-6DF509FB2046", + "receipt_sigil": "sha256:4538a5f3a9b68591c0a471468b8f0419eaba99aa17c343c5c90a6e06a7f413c2", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 26, + "type": "run.recorded" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:5a23228d5ac5c5a9f9e2b4523b872032f1640bc47eb3733a457a8d0df0a3737d", + "event_id": "CE-5D1D65B9EA55", + "object_id": "RUN-004", + "occurred_at": "2026-07-30T10:17:11.902763+00:00", + "payload": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 2, + "status": "COMPLETED" + }, + "previous_receipt_sigil": "sha256:4538a5f3a9b68591c0a471468b8f0419eaba99aa17c343c5c90a6e06a7f413c2", + "receipt": { + "accepted_at": "2026-07-30T10:17:11.902763+00:00", + "event_body_sigil": "sha256:5a23228d5ac5c5a9f9e2b4523b872032f1640bc47eb3733a457a8d0df0a3737d", + "event_id": "CE-5D1D65B9EA55", + "previous_receipt_sigil": "sha256:4538a5f3a9b68591c0a471468b8f0419eaba99aa17c343c5c90a6e06a7f413c2", + "receipt_id": "RC-C481052CC390", + "receipt_sigil": "sha256:1dcbe4dfde550e6c52a2073c78a5db93e40b00be004869e1bcb5787021f1f098", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 27, + "type": "run.recorded" + }, + { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "event_body_sigil": "sha256:454155cefe3b56b7ba18b778ac7388f751ef0bf1f4ec4d7b6e537ec283f423a3", + "event_id": "CE-B4D51F751581", + "object_id": "RUN-005", + "occurred_at": "2026-07-30T10:17:44.580559+00:00", + "payload": { + "analysis_disposition": { + "included": false, + "policy_reference": "PT-001#analysis-plan", + "reason": "Synthetic failed run retained for negative-result validation." + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": {}, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "seed": 3, + "status": "FAILED" + }, + "previous_receipt_sigil": "sha256:1dcbe4dfde550e6c52a2073c78a5db93e40b00be004869e1bcb5787021f1f098", + "receipt": { + "accepted_at": "2026-07-30T10:17:44.580559+00:00", + "event_body_sigil": "sha256:454155cefe3b56b7ba18b778ac7388f751ef0bf1f4ec4d7b6e537ec283f423a3", + "event_id": "CE-B4D51F751581", + "previous_receipt_sigil": "sha256:1dcbe4dfde550e6c52a2073c78a5db93e40b00be004869e1bcb5787021f1f098", + "receipt_id": "RC-F67C1592C79D", + "receipt_sigil": "sha256:51b35ed1c5db600134678bb0898d6220615300fb0807b2a64a246b598f540678", + "schema_version": "receipt/1.1" + }, + "schema_version": "chronicle-event/1.1", + "sequence": 28, + "type": "run.recorded" + } +] diff --git a/examples/phase2-final/dogfood-round2/round2-after-restart.json b/examples/phase2-final/dogfood-round2/round2-after-restart.json new file mode 100644 index 0000000..6d02219 --- /dev/null +++ b/examples/phase2-final/dogfood-round2/round2-after-restart.json @@ -0,0 +1,1213 @@ +{ + "agent_results": { + "TK-275B79CB5D04": { + "acceptance_receipt": "RC-5A6F1D66EDC0", + "accepted_at": "2026-07-30T14:37:29.064570+00:00", + "bindings": { + "review_id": "RV-001" + }, + "capability": { + "contract_sigil": "sha256:3cbbb48d5909b321fb21038e66e7a5d18026d93e94208af4d40da426b252ed35", + "contract_version": "1.0", + "id": "bench.review.local" + }, + "capsule_sigil": "sha256:9414974b0401a76521c4bcde2a9c81446f785469c797622fa8d182bccbb9388b", + "host": "codex", + "outputs": [ + { + "blob_sigil": "sha256:8132db37395b3f4430798e7192836113ea3112d429411186447a53061c7558d8", + "schema": "review-execution-result/1.0", + "uri": ".benchwork/mcp/task-results/TK-275B79CB5D04-8132db37395b.json" + } + ], + "program_id": "RP-001", + "provenance": { + "host": "codex", + "runtime": "interactive-session" + }, + "schema_version": "agent-result-record/1.1", + "snapshot": { + "snapshot_id": "SS-C4BE95B16204", + "snapshot_sigil": "sha256:44e620656004f615748cdf3580902335f132cf13851cf9864d7d02392fd512f7" + }, + "status": "COMPLETED", + "task_id": "TK-275B79CB5D04" + }, + "TK-5B034920CB51": { + "acceptance_receipt": "RC-64EE2D17E005", + "accepted_at": "2026-07-30T14:33:22.797479+00:00", + "capability": { + "contract_sigil": "sha256:5e2002a33a14b28584e3a11faf2ce7235286933c7ffe10d69720ae1ab8df876e", + "contract_version": "1.0", + "id": "bench.experiment.execute" + }, + "capsule_sigil": "sha256:f23e9664d4bccf5f54036c2c620c1fe1b877a33f54a87f71ad71fd6ef97cc480", + "host": "codex", + "outputs": [ + { + "blob_sigil": "sha256:aed2ab304c5c072652a0b8edc806cb0550ee08383e0c0d3de9628d2e808fba6a", + "schema": "experiment-execution-result/1.0", + "uri": ".benchwork/mcp/task-results/TK-5B034920CB51-aed2ab304c5c.json" + } + ], + "program_id": "RP-001", + "provenance": { + "host": "codex", + "runtime": "interactive-session" + }, + "schema_version": "agent-result-record/1.1", + "snapshot": { + "snapshot_id": "SS-EF7FBA54C396", + "snapshot_sigil": "sha256:544bc8f3ced2eb0fca19b9569105d263b1f7ee166b1f3ec29590c1eddde86d9f" + }, + "status": "COMPLETED", + "task_id": "TK-5B034920CB51" + }, + "TK-A81479A5CF07": { + "acceptance_receipt": "RC-EBDE2185DB96", + "accepted_at": "2026-07-30T14:42:39.852493+00:00", + "capability": { + "contract_sigil": "sha256:d2f9b8636f6c860172801b0d7bcf647518825a7959614a08f932ee09ce7a6daa", + "contract_version": "1.0", + "id": "bench.code.modify" + }, + "capsule_sigil": "sha256:65ce272c51d86cc72d24440fa0c382e5a5527d1d129b9267768a29d17250f503", + "host": "codex", + "outputs": [ + { + "blob_sigil": "sha256:aa7edac164cc5399fa797470b4c5ed4e3f5797039717dadc68edf6653094ad6a", + "schema": "code-modification-result/1.0", + "uri": ".benchwork/mcp/task-results/TK-A81479A5CF07-aa7edac164cc.json" + } + ], + "program_id": "RP-001", + "provenance": { + "host": "codex", + "runtime": "interactive-session" + }, + "schema_version": "agent-result-record/1.1", + "snapshot": { + "snapshot_id": "SS-C2544C70DA4C", + "snapshot_sigil": "sha256:1f7f6a499b33f7fb45c7a394f2cfdc633662fd1b1135ed3885e30809772a2b6b" + }, + "status": "COMPLETED", + "task_id": "TK-A81479A5CF07" + } + }, + "approvals": { + "TK-494B77762B6D": { + "capability": "bench.code.modify", + "capability_contract_sigil": "sha256:d2f9b8636f6c860172801b0d7bcf647518825a7959614a08f932ee09ce7a6daa", + "capsule_sigil": "sha256:eac267ed57ffc7d1cf319876e6065f7d58c7521a59e770de899a41afef7b9faf", + "circle": { + "network": false, + "time_budget_seconds": 1800, + "tools": [ + "read", + "write" + ] + }, + "granted_at": "2026-07-30T13:37:45.853760+00:00", + "reason": "The user explicitly requested completion of the attached Round 2 repair plan and authorized access to the canonical dogfood project.", + "receipt_id": "RC-04A5C51BC0CD", + "task_id": "TK-494B77762B6D" + }, + "TK-5B034920CB51": { + "capability": "bench.experiment.execute", + "capability_contract_sigil": "sha256:5e2002a33a14b28584e3a11faf2ce7235286933c7ffe10d69720ae1ab8df876e", + "capsule_sigil": "sha256:f23e9664d4bccf5f54036c2c620c1fe1b877a33f54a87f71ad71fd6ef97cc480", + "circle": { + "network": false, + "time_budget_seconds": 1800, + "tools": [ + "read", + "write", + "execute" + ] + }, + "granted_at": "2026-07-30T14:32:58.742307+00:00", + "reason": "The user explicitly approved proceeding with the attached fixed synthetic Run contract; all five Runs are already canonical.", + "receipt_id": "RC-8F447CC111BE", + "task_id": "TK-5B034920CB51" + }, + "TK-A81479A5CF07": { + "capability": "bench.code.modify", + "capability_contract_sigil": "sha256:d2f9b8636f6c860172801b0d7bcf647518825a7959614a08f932ee09ce7a6daa", + "capsule_sigil": "sha256:65ce272c51d86cc72d24440fa0c382e5a5527d1d129b9267768a29d17250f503", + "circle": { + "network": false, + "time_budget_seconds": 1800, + "tools": [ + "read", + "write" + ] + }, + "granted_at": "2026-07-30T14:42:03.084229+00:00", + "reason": "The user explicitly approved completing the attached Round 2 repair plan.", + "receipt_id": "RC-912934FD1B07", + "task_id": "TK-A81479A5CF07" + }, + "TK-AD4634B611AF": { + "capability": "bench.experiment.execute", + "capability_contract_sigil": "sha256:5e2002a33a14b28584e3a11faf2ce7235286933c7ffe10d69720ae1ab8df876e", + "capsule_sigil": "sha256:fb09c77a215d87518ae7ea56bd269281a452e074cea7af255610c14af3f0c1c9", + "circle": { + "network": false, + "time_budget_seconds": 1800, + "tools": [ + "read", + "write", + "execute" + ] + }, + "granted_at": "2026-07-30T14:31:26.303277+00:00", + "reason": "The user explicitly approved proceeding with the attached fixed synthetic Run contract.", + "receipt_id": "RC-A646516AA538", + "task_id": "TK-AD4634B611AF" + } + }, + "artifacts": { + "AR-001": { + "artifact_id": "AR-001", + "input_ids": [ + "PT-001" + ], + "kind": "implementation", + "location": { + "sigil": "sha256:f7a488b0699838d9e5e13775bc45073773b0cc7e472f3a106fbd279d93894f3c", + "uri": "implementation-artifact.json" + }, + "producer_id": "WK-001", + "program_id": "RP-001", + "registered_at": "2026-07-30T10:15:40.615528+00:00", + "registration_receipt": "RC-403698C05BBF", + "schema_version": "artifact/1.0", + "status": "REGISTERED" + }, + "AR-002": { + "artifact_id": "AR-002", + "input_ids": [ + "PT-002" + ], + "kind": "implementation", + "location": { + "sigil": "sha256:3e355f4d64d22dd25adfa215463b0a6d26b499249229496a26a1d34759cfefe5", + "uri": "implementation-artifact-round2.json" + }, + "producer_id": "WK-002", + "program_id": "RP-001", + "registered_at": "2026-07-30T14:31:26.180034+00:00", + "registration_receipt": "RC-C31B5C8A201D", + "schema_version": "artifact/1.0", + "status": "REGISTERED" + } + }, + "assessments": { + "AS-001": { + "assessment_id": "AS-001", + "claim_findings": [ + { + "claim_id": "CL-002", + "rationale": "The registered Round 2 replay comparison completed with all required Runs and preserved the failed excluded Run.", + "status": "SUPPORTED" + } + ], + "hypothesis_findings": [ + { + "hypothesis_id": "HY-002", + "rationale": "The registered replay prediction was satisfied within the synthetic dogfood boundary.", + "status": "SUPPORTED" + } + ], + "limitations": [ + "The data are synthetic and validate the Benchwork control plane rather than an external scientific claim.", + "Only the Codex CLI Host was exercised; IDE and Claude Code CLI validation remain unavailable.", + "The paired differences have zero variance, so a standardized effect is unavailable despite the deterministic mean difference." + ], + "program_id": "RP-001", + "protocol_id": "PT-002", + "result_bundle": { + "sigil": "sha256:a0d63c63cf7002cb2460ce58ead10110b042bba447d0ab5d59052ad8a29210da", + "uri": ".benchwork/results/RB-001.json" + }, + "result_bundle_id": "RB-001", + "review_receipt": "RC-6059F5DA3824", + "reviewed_at": "2026-07-30T14:34:21.331930+00:00", + "schema_version": "assessment/1.2", + "status": "COMPLETE", + "study_mode": "confirmatory", + "summary": "Round 2 completed the registered replay_success comparison and validated the repaired control-plane path." + } + }, + "claims": { + "CL-001": { + "claim_id": "CL-001", + "evidence_relations": [ + { + "evidence_id": "EV-001", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "program_id": "RP-001", + "schema_version": "claim/1.2", + "statement": "The minimal canonical workflow preserves research state.", + "status": "PROPOSED", + "type": "empirical" + }, + "CL-002": { + "claim_id": "CL-002", + "evidence_relations": [ + { + "evidence_id": "EV-002", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "program_id": "RP-001", + "schema_version": "claim/1.2", + "statement": "Benchwork reconstructs canonical state from Chronicle after process restart.", + "status": "SUPPORTED", + "type": "empirical" + } + }, + "decisions": { + "DE-001": { + "assessment_ids": [ + "AS-001" + ], + "decision_id": "DE-001", + "lineage": null, + "outcome": "REPAIR", + "program_id": "RP-001", + "rationale": "The Benchwork control plane completed successfully, while broader Host and real-study validation remain.", + "required_actions": [ + "Validate the workflow in a non-synthetic real study before making external scientific claims.", + "Complete Codex IDE and Claude Code CLI Host acceptance when those environments are available.", + "Obtain explicit disclosure authorization before any external review." + ], + "schema_version": "decision/1.2", + "seal_actor": { + "actor_id": "interactive-user", + "actor_type": "human", + "authenticated_by": "codex-explicit-confirmation", + "host": "codex" + }, + "seal_receipt": "RC-85E81CCAD550", + "sealed_at": "2026-07-30T14:39:42.281640+00:00", + "status": "SEALED", + "unresolved_issue_ids": [], + "unresolved_uncertainties": [ + "Only the Codex CLI Host was exercised; IDE and Claude Code CLI validation remain unavailable.", + "The data are synthetic and validate the Benchwork control plane rather than an external scientific claim.", + "The paired differences have zero variance, so a standardized effect is unavailable despite the deterministic mean difference." + ] + } + }, + "deviations": {}, + "evidence": { + "EV-001": { + "claim_relations": [ + { + "claim_id": "CL-001", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "evidence_id": "EV-001", + "observation": "The trial records a minimal supported observation.", + "program_id": "RP-001", + "reproduction_ids": [], + "schema_version": "evidence/1.2", + "source": { + "sigil": "sha256:0000000000000000000000000000000000000000000000000000000000000000", + "uri": "trial-source.txt" + }, + "verification": { + "content_inspected": true, + "source_resolved": true + } + }, + "EV-002": { + "claim_relations": [ + { + "claim_id": "CL-002", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "evidence_id": "EV-002", + "observation": "The dogfood source defines the expected replay behavior.", + "program_id": "RP-001", + "reproduction_ids": [], + "schema_version": "evidence/1.2", + "source": { + "sigil": "sha256:6a98fcb971fa3ec0e0ddcf8ff607093e2c730e6953a50bb7a0a6ea5582996f9a", + "uri": "trial-source.txt" + }, + "verification": { + "content_inspected": true, + "source_resolved": true + } + } + }, + "experiments": { + "EX-001": { + "experiment_id": "EX-001", + "history": [ + { + "at": "2026-07-30T10:16:19.738616+00:00", + "event_id": "CE-D6F92F631780", + "status": "PLANNED" + }, + { + "at": "2026-07-30T10:16:25.565867+00:00", + "event_id": "CE-004D35021E08", + "status": "IMPLEMENTED" + }, + { + "at": "2026-07-30T10:16:35.387817+00:00", + "event_id": "CE-0927A1F2A8EC", + "status": "PILOT_RUNNING" + } + ], + "hypothesis_id": "HY-002", + "program_id": "RP-001", + "protocol_id": "PT-001", + "question": "Does Benchwork preserve registered state after process restart?", + "schema_version": "experiment/1.2", + "status": "PILOT_RUNNING", + "working_id": "WK-001" + }, + "EX-002": { + "experiment_id": "EX-002", + "history": [ + { + "at": "2026-07-30T14:31:26.202596+00:00", + "event_id": "CE-FD9FD86FEDFF", + "status": "PLANNED" + }, + { + "at": "2026-07-30T14:31:26.225455+00:00", + "event_id": "CE-B61055E68C91", + "status": "IMPLEMENTED" + }, + { + "at": "2026-07-30T14:31:26.248213+00:00", + "event_id": "CE-542287D1C84F", + "status": "PILOT_RUNNING" + }, + { + "at": "2026-07-30T14:33:22.827665+00:00", + "event_id": "CE-A3BAC0D1482A", + "status": "PILOT_COMPLETED" + } + ], + "hypothesis_id": "HY-002", + "program_id": "RP-001", + "protocol_id": "PT-002", + "question": "Does the registered treatment preserve canonical replay_success compared with baseline?", + "schema_version": "experiment/1.2", + "status": "PILOT_COMPLETED", + "working_id": "WK-002" + } + }, + "hypotheses": { + "HY-001": { + "claim_ids": [ + "CL-001" + ], + "hypothesis_id": "HY-001", + "prediction": "The protocol remains present and unchanged after process restart.", + "program_id": "RP-001", + "schema_version": "hypothesis/1.0", + "statement": "A sealed protocol can be replayed from Chronicle.", + "status": "PROPOSED" + }, + "HY-002": { + "claim_ids": [ + "CL-002" + ], + "hypothesis_id": "HY-002", + "prediction": "The replayed protocol Sigil and canonical fields match the pre-restart state.", + "program_id": "RP-001", + "schema_version": "hypothesis/1.0", + "statement": "A frozen protocol remains identical after restarting the CLI process.", + "status": "SUPPORTED" + } + }, + "issues": {}, + "programs": { + "RP-001": { + "artifacts": [ + "AR-001", + "AR-002" + ], + "assessments": [ + "AS-001" + ], + "claims": [ + "CL-001", + "CL-002" + ], + "decisions": [ + "DE-001" + ], + "deviations": [], + "evidence": [ + "EV-001", + "EV-002" + ], + "hypotheses": [ + "HY-001", + "HY-002" + ], + "issues": [], + "problem": { + "statement": "Verify the minimal canonical research workflow." + }, + "program_id": "RP-001", + "protocols": [ + "PT-001", + "PT-002" + ], + "reproduction_records": [], + "research_question": { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "seal_receipt": "RC-A11F46B334F6", + "sealed_at": "2026-07-30T09:47:53.450632+00:00", + "statement": "Can Benchwork preserve a minimal research workflow across restart?" + }, + "schema_version": "research-program/1.1", + "slug": "trial-memory", + "status": "EVALUATED", + "title": "Benchwork dogfood trial" + } + }, + "protocols": { + "PT-001": { + "analysis_plan": "Compare registered replay outcomes between baseline and treatment runs.", + "analysis_spec": { + "comparisons": [ + { + "arms": [ + "baseline", + "treatment" + ], + "comparison_id": "CMP-001", + "confidence_level": 0.95, + "estimand": "mean_difference", + "experiment_id": "EX-001", + "metric": "score", + "pairing": "paired", + "uncertainty_method": "student_t" + } + ], + "expected_run_ids": [ + "RUN-000", + "RUN-001" + ], + "multiple_comparison_policy": "none", + "pilot_run_ids": [ + "RUN-000", + "RUN-001" + ], + "practical_significance_thresholds": { + "score": 0.02 + }, + "schema_version": "analysis-spec/1.0" + }, + "deviations": [], + "hypothesis_ids": [ + "HY-002" + ], + "program_id": "RP-001", + "protocol_id": "PT-001", + "schema_version": "study-protocol/1.3", + "seal_actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "seal_receipt": "RC-8CE15AA5E69F", + "sealed_at": "2026-07-30T10:12:42.439410+00:00", + "status": "FROZEN", + "study_mode": "confirmatory", + "title": "Minimal Chronicle replay trial" + }, + "PT-002": { + "analysis_plan": "Compare registered replay_success outcomes between baseline and treatment while preserving failed excluded Runs.", + "analysis_spec": { + "comparisons": [ + { + "arms": [ + "baseline", + "treatment" + ], + "comparison_id": "CMP-002", + "confidence_level": 0.95, + "estimand": "mean_difference", + "experiment_id": "EX-002", + "metric": "replay_success", + "pairing": "paired", + "uncertainty_method": "student_t" + } + ], + "expected_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104", + "RUN-105" + ], + "multiple_comparison_policy": "none", + "pilot_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104" + ], + "practical_significance_thresholds": { + "replay_success": 0.0 + }, + "schema_version": "analysis-spec/1.0" + }, + "deviations": [], + "hypothesis_ids": [ + "HY-002" + ], + "program_id": "RP-001", + "protocol_id": "PT-002", + "schema_version": "study-protocol/1.3", + "seal_actor": { + "actor_id": "interactive-user", + "actor_type": "human", + "authenticated_by": "codex-explicit-confirmation", + "host": "codex" + }, + "seal_receipt": "RC-784E362FFF7A", + "sealed_at": "2026-07-30T14:29:40.313123+00:00", + "status": "FROZEN", + "study_mode": "confirmatory", + "title": "Chronicle replay dogfood repair trial" + } + }, + "reproduction_records": {}, + "result_bundles": { + "RB-001": { + "analysis_kind": "deterministic-descriptive-aggregation", + "bundle_id": "RB-001", + "comparisons": [ + { + "comparison_id": "CMP-002", + "control_arm": "baseline", + "estimand": "mean_difference", + "experiment_id": "EX-002", + "metrics": { + "replay_success": { + "descriptive": { + "control": { + "max": 0.0, + "mean": 0.0, + "min": 0.0, + "n": 2, + "sample_stddev": 0.0 + }, + "treatment": { + "max": 1.0, + "mean": 1.0, + "min": 1.0, + "n": 2, + "sample_stddev": 0.0 + } + }, + "effect": { + "estimate": 1.0, + "method": "mean_difference", + "standardized": { + "estimate": null, + "method": "unavailable", + "reason": "paired differences have zero variance" + } + }, + "practical_significance": { + "exceeds_threshold": true, + "threshold": 0.0 + }, + "uncertainty": { + "degrees_of_freedom": 1.0, + "effective_level": 0.95, + "lower": 1.0, + "method": "student_t", + "reason": null, + "requested_level": 0.95, + "samples": null, + "seed": null, + "upper": 1.0 + } + } + }, + "pairing": "paired", + "run_ids": { + "control": [ + "RUN-101", + "RUN-103" + ], + "treatment": [ + "RUN-102", + "RUN-104" + ] + }, + "treatment_arm": "treatment" + } + ], + "multiple_comparison_policy": "none", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_inventory": { + "all_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104", + "RUN-105" + ], + "excluded_runs": [ + { + "policy_reference": "PT-002#analysis-plan", + "reason": "Synthetic failure retained for negative-result testing.", + "run_id": "RUN-105", + "status": "FAILED" + } + ], + "failed_run_ids": [ + "RUN-105" + ], + "included_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104" + ], + "missing_run_ids": [] + }, + "schema_version": "result-bundle/1.1" + } + }, + "review_artifacts": { + "RV-001": { + "acceptance_receipt": null, + "accepted_at": null, + "approval": { + "approved_at": null, + "approved_by": null, + "rationale": null, + "required": false, + "status": "NOT_REQUIRED" + }, + "completed_at": "2026-07-30T14:37:29.106354+00:00", + "completion_receipt": "RC-6E02CB1880A3", + "disclosure": { + "includes_credentials": false, + "includes_private_data": false, + "includes_source_code": false, + "includes_unpublished_results": true + }, + "program_id": "RP-001", + "result": { + "findings": [ + "PT-002 Analysis Spec matches EX-002, RUN-101 through RUN-105, replay_success, arms, and seeds.", + "RUN-105 remains canonical as FAILED and excluded with its registered reason.", + "RB-001 primary analysis includes only RUN-101 through RUN-104 and is scoped only to EX-002.", + "AS-001 records synthetic-data and Host-coverage limitations and does not promote the result to a general scientific claim.", + "PT-001 and EX-001 traces are byte-identical to the preserved Round 1 snapshots.", + "Schema validation, Artifact Sigil verification, canonical jq assertions, and Deep Doctor all passed." + ], + "recommendation": "REPAIR", + "residual_risks": [ + "The data are synthetic.", + "Paired differences have zero variance, so standardized effect size is unavailable.", + "IDE and Claude Code CLI Host validation remain incomplete.", + "External review remains unauthorized.", + "The first pilot Task completion was rejected as stale after canonical Run registration; the rejection is preserved and a fresh Snapshot-bound Task completed successfully." + ], + "summary": "The sealed Protocol, registered Runs, Alembic Result Bundle, Assessment, and preserved Round 1 evidence are internally consistent." + }, + "review_id": "RV-001", + "reviewer": { + "kind": "agent", + "name": "codex-local-review" + }, + "schema_version": "review-artifact/1.0", + "scope": { + "checks": [ + "PT-002 Analysis Spec equals the registered EX-002 Run contract.", + "RUN-105 remains FAILED and excluded rather than deleted.", + "RB-001 includes only RUN-101 through RUN-104 in the primary comparison.", + "AS-001 separates synthetic numerical facts from broader scientific interpretation.", + "Round 1 canonical objects remain present and unchanged." + ], + "summary": "Review the Round 2 repair for Protocol/Run/Experiment alignment, failed-Run preservation, Alembic scope, Assessment limitations, and readiness for a REPAIR Decision preview." + }, + "source": { + "execution": "local", + "host": "codex", + "provider": null + }, + "status": "COMPLETED", + "target": { + "commit": null, + "files": [ + "analysis-spec-round2.json", + "implementation-artifact-round2.json" + ], + "repository": "benchwork-trial" + }, + "task_id": "TK-275B79CB5D04" + } + }, + "review_requests": { + "RV-001": { + "approval": { + "approved_at": null, + "approved_by": null, + "rationale": null, + "required": false, + "status": "NOT_REQUIRED" + }, + "destination": { + "execution": "local", + "provider": null + }, + "disclosure": { + "includes_credentials": false, + "includes_private_data": false, + "includes_source_code": false, + "includes_unpublished_results": true + }, + "program_id": "RP-001", + "request_receipt": "RC-63A6E1866CF1", + "requested_at": "2026-07-30T14:35:12.190246+00:00", + "review_id": "RV-001", + "schema_version": "review-request/1.0", + "scope": { + "checks": [ + "PT-002 Analysis Spec equals the registered EX-002 Run contract.", + "RUN-105 remains FAILED and excluded rather than deleted.", + "RB-001 includes only RUN-101 through RUN-104 in the primary comparison.", + "AS-001 separates synthetic numerical facts from broader scientific interpretation.", + "Round 1 canonical objects remain present and unchanged." + ], + "summary": "Review the Round 2 repair for Protocol/Run/Experiment alignment, failed-Run preservation, Alembic scope, Assessment limitations, and readiness for a REPAIR Decision preview." + }, + "status": "COMPLETED", + "target": { + "commit": null, + "files": [ + "analysis-spec-round2.json", + "implementation-artifact-round2.json" + ], + "repository": "benchwork-trial" + }, + "type": "local_review" + } + }, + "runs": { + "RUN-001": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-001", + "schema_version": "run/1.2", + "seed": 1, + "status": "COMPLETED" + }, + "RUN-002": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-002", + "schema_version": "run/1.2", + "seed": 1, + "status": "COMPLETED" + }, + "RUN-003": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-003", + "schema_version": "run/1.2", + "seed": 2, + "status": "COMPLETED" + }, + "RUN-004": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-004", + "schema_version": "run/1.2", + "seed": 2, + "status": "COMPLETED" + }, + "RUN-005": { + "analysis_disposition": { + "included": false, + "policy_reference": "PT-001#analysis-plan", + "reason": "Synthetic failed run retained for negative-result validation." + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": {}, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-005", + "schema_version": "run/1.2", + "seed": 3, + "status": "FAILED" + }, + "RUN-101": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-002#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-101", + "schema_version": "run/1.2", + "seed": 1, + "status": "COMPLETED" + }, + "RUN-102": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-002#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-102", + "schema_version": "run/1.2", + "seed": 1, + "status": "COMPLETED" + }, + "RUN-103": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-002#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-103", + "schema_version": "run/1.2", + "seed": 2, + "status": "COMPLETED" + }, + "RUN-104": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-002#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-104", + "schema_version": "run/1.2", + "seed": 2, + "status": "COMPLETED" + }, + "RUN-105": { + "analysis_disposition": { + "included": false, + "policy_reference": "PT-002#analysis-plan", + "reason": "Synthetic failure retained for negative-result testing." + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": {}, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-105", + "schema_version": "run/1.2", + "seed": 3, + "status": "FAILED" + } + }, + "workings": { + "WK-001": { + "history": [ + { + "at": "2026-07-30T10:13:15.842335+00:00", + "canonical_event_id": "CE-A53ADE916123", + "object_id": "WK-001", + "reason": "created", + "stage": "IMPLEMENTATION" + }, + { + "at": "2026-07-30T10:15:40.615528+00:00", + "canonical_event_id": "CE-32EAC70BE810", + "object_id": "AR-001", + "reason": "exit contract satisfied by artifact.registered", + "stage": "PILOT" + } + ], + "program_id": "RP-001", + "protocol_id": "PT-001", + "rite": { + "description": "A Working-bound canonical-event computational research study.", + "rite_id": "computational-study@0.2.1", + "schema_version": "rite/1.1", + "stages": [ + { + "exit_contract": { + "event_type": "artifact.registered", + "kind": "implementation", + "object_type": "artifact", + "same_program": true, + "same_protocol": true + }, + "name": "IMPLEMENTATION" + }, + { + "exit_contract": { + "event_type": "experiment.pilot_completed", + "object_type": "experiment", + "same_program": true, + "same_protocol": true + }, + "name": "PILOT" + }, + { + "exit_contract": { + "event_type": "analysis.computed", + "object_type": "result-bundle", + "same_program": true, + "same_protocol": true + }, + "name": "ANALYSIS" + }, + { + "exit_contract": { + "event_type": "assessment.recorded", + "object_type": "assessment", + "same_program": true, + "same_protocol": true + }, + "name": "REVIEW" + }, + { + "exit_contract": { + "event_type": "decision.sealed", + "object_type": "decision", + "same_program": true, + "same_protocol": true + }, + "name": "DECISION" + }, + { + "name": "COMPLETED" + } + ] + }, + "rite_id": "computational-study@0.2.1", + "rite_sigil": "sha256:1d942b9229ebd9ec54c3f6f1991e9a96efccdbc096bfc1776e78523632260ba8", + "schema_version": "working/1.1", + "stage": "PILOT", + "status": "ACTIVE", + "working_id": "WK-001" + }, + "WK-002": { + "history": [ + { + "at": "2026-07-30T14:29:40.337324+00:00", + "canonical_event_id": "CE-8077442B202A", + "object_id": "WK-002", + "reason": "created", + "stage": "IMPLEMENTATION" + }, + { + "at": "2026-07-30T14:31:26.180034+00:00", + "canonical_event_id": "CE-5026267DDA9D", + "object_id": "AR-002", + "reason": "exit contract satisfied by artifact.registered", + "stage": "PILOT" + }, + { + "at": "2026-07-30T14:33:22.827665+00:00", + "canonical_event_id": "CE-A3BAC0D1482A", + "object_id": "EX-002", + "reason": "exit contract satisfied by experiment.pilot_completed", + "stage": "ANALYSIS" + }, + { + "at": "2026-07-30T14:33:44.601684+00:00", + "canonical_event_id": "CE-081E7C2E7F43", + "object_id": "RB-001", + "reason": "exit contract satisfied by analysis.computed", + "stage": "REVIEW" + }, + { + "at": "2026-07-30T14:34:21.331930+00:00", + "canonical_event_id": "CE-823D9B8096DF", + "object_id": "AS-001", + "reason": "exit contract satisfied by assessment.recorded", + "stage": "DECISION" + }, + { + "at": "2026-07-30T14:39:42.281640+00:00", + "canonical_event_id": "CE-E1A982AA9E6F", + "object_id": "DE-001", + "reason": "exit contract satisfied by decision.sealed", + "stage": "COMPLETED" + } + ], + "program_id": "RP-001", + "protocol_id": "PT-002", + "rite": { + "description": "A Working-bound canonical-event computational research study.", + "rite_id": "computational-study@0.2.1", + "schema_version": "rite/1.1", + "stages": [ + { + "exit_contract": { + "event_type": "artifact.registered", + "kind": "implementation", + "object_type": "artifact", + "same_program": true, + "same_protocol": true + }, + "name": "IMPLEMENTATION" + }, + { + "exit_contract": { + "event_type": "experiment.pilot_completed", + "object_type": "experiment", + "same_program": true, + "same_protocol": true + }, + "name": "PILOT" + }, + { + "exit_contract": { + "event_type": "analysis.computed", + "object_type": "result-bundle", + "same_program": true, + "same_protocol": true + }, + "name": "ANALYSIS" + }, + { + "exit_contract": { + "event_type": "assessment.recorded", + "object_type": "assessment", + "same_program": true, + "same_protocol": true + }, + "name": "REVIEW" + }, + { + "exit_contract": { + "event_type": "decision.sealed", + "object_type": "decision", + "same_program": true, + "same_protocol": true + }, + "name": "DECISION" + }, + { + "name": "COMPLETED" + } + ] + }, + "rite_id": "computational-study@0.2.1", + "rite_sigil": "sha256:1d942b9229ebd9ec54c3f6f1991e9a96efccdbc096bfc1776e78523632260ba8", + "schema_version": "working/1.1", + "stage": "COMPLETED", + "status": "COMPLETED", + "working_id": "WK-002" + } + } +} diff --git a/examples/phase2-final/dogfood-round2/round2-before-restart.json b/examples/phase2-final/dogfood-round2/round2-before-restart.json new file mode 100644 index 0000000..6d02219 --- /dev/null +++ b/examples/phase2-final/dogfood-round2/round2-before-restart.json @@ -0,0 +1,1213 @@ +{ + "agent_results": { + "TK-275B79CB5D04": { + "acceptance_receipt": "RC-5A6F1D66EDC0", + "accepted_at": "2026-07-30T14:37:29.064570+00:00", + "bindings": { + "review_id": "RV-001" + }, + "capability": { + "contract_sigil": "sha256:3cbbb48d5909b321fb21038e66e7a5d18026d93e94208af4d40da426b252ed35", + "contract_version": "1.0", + "id": "bench.review.local" + }, + "capsule_sigil": "sha256:9414974b0401a76521c4bcde2a9c81446f785469c797622fa8d182bccbb9388b", + "host": "codex", + "outputs": [ + { + "blob_sigil": "sha256:8132db37395b3f4430798e7192836113ea3112d429411186447a53061c7558d8", + "schema": "review-execution-result/1.0", + "uri": ".benchwork/mcp/task-results/TK-275B79CB5D04-8132db37395b.json" + } + ], + "program_id": "RP-001", + "provenance": { + "host": "codex", + "runtime": "interactive-session" + }, + "schema_version": "agent-result-record/1.1", + "snapshot": { + "snapshot_id": "SS-C4BE95B16204", + "snapshot_sigil": "sha256:44e620656004f615748cdf3580902335f132cf13851cf9864d7d02392fd512f7" + }, + "status": "COMPLETED", + "task_id": "TK-275B79CB5D04" + }, + "TK-5B034920CB51": { + "acceptance_receipt": "RC-64EE2D17E005", + "accepted_at": "2026-07-30T14:33:22.797479+00:00", + "capability": { + "contract_sigil": "sha256:5e2002a33a14b28584e3a11faf2ce7235286933c7ffe10d69720ae1ab8df876e", + "contract_version": "1.0", + "id": "bench.experiment.execute" + }, + "capsule_sigil": "sha256:f23e9664d4bccf5f54036c2c620c1fe1b877a33f54a87f71ad71fd6ef97cc480", + "host": "codex", + "outputs": [ + { + "blob_sigil": "sha256:aed2ab304c5c072652a0b8edc806cb0550ee08383e0c0d3de9628d2e808fba6a", + "schema": "experiment-execution-result/1.0", + "uri": ".benchwork/mcp/task-results/TK-5B034920CB51-aed2ab304c5c.json" + } + ], + "program_id": "RP-001", + "provenance": { + "host": "codex", + "runtime": "interactive-session" + }, + "schema_version": "agent-result-record/1.1", + "snapshot": { + "snapshot_id": "SS-EF7FBA54C396", + "snapshot_sigil": "sha256:544bc8f3ced2eb0fca19b9569105d263b1f7ee166b1f3ec29590c1eddde86d9f" + }, + "status": "COMPLETED", + "task_id": "TK-5B034920CB51" + }, + "TK-A81479A5CF07": { + "acceptance_receipt": "RC-EBDE2185DB96", + "accepted_at": "2026-07-30T14:42:39.852493+00:00", + "capability": { + "contract_sigil": "sha256:d2f9b8636f6c860172801b0d7bcf647518825a7959614a08f932ee09ce7a6daa", + "contract_version": "1.0", + "id": "bench.code.modify" + }, + "capsule_sigil": "sha256:65ce272c51d86cc72d24440fa0c382e5a5527d1d129b9267768a29d17250f503", + "host": "codex", + "outputs": [ + { + "blob_sigil": "sha256:aa7edac164cc5399fa797470b4c5ed4e3f5797039717dadc68edf6653094ad6a", + "schema": "code-modification-result/1.0", + "uri": ".benchwork/mcp/task-results/TK-A81479A5CF07-aa7edac164cc.json" + } + ], + "program_id": "RP-001", + "provenance": { + "host": "codex", + "runtime": "interactive-session" + }, + "schema_version": "agent-result-record/1.1", + "snapshot": { + "snapshot_id": "SS-C2544C70DA4C", + "snapshot_sigil": "sha256:1f7f6a499b33f7fb45c7a394f2cfdc633662fd1b1135ed3885e30809772a2b6b" + }, + "status": "COMPLETED", + "task_id": "TK-A81479A5CF07" + } + }, + "approvals": { + "TK-494B77762B6D": { + "capability": "bench.code.modify", + "capability_contract_sigil": "sha256:d2f9b8636f6c860172801b0d7bcf647518825a7959614a08f932ee09ce7a6daa", + "capsule_sigil": "sha256:eac267ed57ffc7d1cf319876e6065f7d58c7521a59e770de899a41afef7b9faf", + "circle": { + "network": false, + "time_budget_seconds": 1800, + "tools": [ + "read", + "write" + ] + }, + "granted_at": "2026-07-30T13:37:45.853760+00:00", + "reason": "The user explicitly requested completion of the attached Round 2 repair plan and authorized access to the canonical dogfood project.", + "receipt_id": "RC-04A5C51BC0CD", + "task_id": "TK-494B77762B6D" + }, + "TK-5B034920CB51": { + "capability": "bench.experiment.execute", + "capability_contract_sigil": "sha256:5e2002a33a14b28584e3a11faf2ce7235286933c7ffe10d69720ae1ab8df876e", + "capsule_sigil": "sha256:f23e9664d4bccf5f54036c2c620c1fe1b877a33f54a87f71ad71fd6ef97cc480", + "circle": { + "network": false, + "time_budget_seconds": 1800, + "tools": [ + "read", + "write", + "execute" + ] + }, + "granted_at": "2026-07-30T14:32:58.742307+00:00", + "reason": "The user explicitly approved proceeding with the attached fixed synthetic Run contract; all five Runs are already canonical.", + "receipt_id": "RC-8F447CC111BE", + "task_id": "TK-5B034920CB51" + }, + "TK-A81479A5CF07": { + "capability": "bench.code.modify", + "capability_contract_sigil": "sha256:d2f9b8636f6c860172801b0d7bcf647518825a7959614a08f932ee09ce7a6daa", + "capsule_sigil": "sha256:65ce272c51d86cc72d24440fa0c382e5a5527d1d129b9267768a29d17250f503", + "circle": { + "network": false, + "time_budget_seconds": 1800, + "tools": [ + "read", + "write" + ] + }, + "granted_at": "2026-07-30T14:42:03.084229+00:00", + "reason": "The user explicitly approved completing the attached Round 2 repair plan.", + "receipt_id": "RC-912934FD1B07", + "task_id": "TK-A81479A5CF07" + }, + "TK-AD4634B611AF": { + "capability": "bench.experiment.execute", + "capability_contract_sigil": "sha256:5e2002a33a14b28584e3a11faf2ce7235286933c7ffe10d69720ae1ab8df876e", + "capsule_sigil": "sha256:fb09c77a215d87518ae7ea56bd269281a452e074cea7af255610c14af3f0c1c9", + "circle": { + "network": false, + "time_budget_seconds": 1800, + "tools": [ + "read", + "write", + "execute" + ] + }, + "granted_at": "2026-07-30T14:31:26.303277+00:00", + "reason": "The user explicitly approved proceeding with the attached fixed synthetic Run contract.", + "receipt_id": "RC-A646516AA538", + "task_id": "TK-AD4634B611AF" + } + }, + "artifacts": { + "AR-001": { + "artifact_id": "AR-001", + "input_ids": [ + "PT-001" + ], + "kind": "implementation", + "location": { + "sigil": "sha256:f7a488b0699838d9e5e13775bc45073773b0cc7e472f3a106fbd279d93894f3c", + "uri": "implementation-artifact.json" + }, + "producer_id": "WK-001", + "program_id": "RP-001", + "registered_at": "2026-07-30T10:15:40.615528+00:00", + "registration_receipt": "RC-403698C05BBF", + "schema_version": "artifact/1.0", + "status": "REGISTERED" + }, + "AR-002": { + "artifact_id": "AR-002", + "input_ids": [ + "PT-002" + ], + "kind": "implementation", + "location": { + "sigil": "sha256:3e355f4d64d22dd25adfa215463b0a6d26b499249229496a26a1d34759cfefe5", + "uri": "implementation-artifact-round2.json" + }, + "producer_id": "WK-002", + "program_id": "RP-001", + "registered_at": "2026-07-30T14:31:26.180034+00:00", + "registration_receipt": "RC-C31B5C8A201D", + "schema_version": "artifact/1.0", + "status": "REGISTERED" + } + }, + "assessments": { + "AS-001": { + "assessment_id": "AS-001", + "claim_findings": [ + { + "claim_id": "CL-002", + "rationale": "The registered Round 2 replay comparison completed with all required Runs and preserved the failed excluded Run.", + "status": "SUPPORTED" + } + ], + "hypothesis_findings": [ + { + "hypothesis_id": "HY-002", + "rationale": "The registered replay prediction was satisfied within the synthetic dogfood boundary.", + "status": "SUPPORTED" + } + ], + "limitations": [ + "The data are synthetic and validate the Benchwork control plane rather than an external scientific claim.", + "Only the Codex CLI Host was exercised; IDE and Claude Code CLI validation remain unavailable.", + "The paired differences have zero variance, so a standardized effect is unavailable despite the deterministic mean difference." + ], + "program_id": "RP-001", + "protocol_id": "PT-002", + "result_bundle": { + "sigil": "sha256:a0d63c63cf7002cb2460ce58ead10110b042bba447d0ab5d59052ad8a29210da", + "uri": ".benchwork/results/RB-001.json" + }, + "result_bundle_id": "RB-001", + "review_receipt": "RC-6059F5DA3824", + "reviewed_at": "2026-07-30T14:34:21.331930+00:00", + "schema_version": "assessment/1.2", + "status": "COMPLETE", + "study_mode": "confirmatory", + "summary": "Round 2 completed the registered replay_success comparison and validated the repaired control-plane path." + } + }, + "claims": { + "CL-001": { + "claim_id": "CL-001", + "evidence_relations": [ + { + "evidence_id": "EV-001", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "program_id": "RP-001", + "schema_version": "claim/1.2", + "statement": "The minimal canonical workflow preserves research state.", + "status": "PROPOSED", + "type": "empirical" + }, + "CL-002": { + "claim_id": "CL-002", + "evidence_relations": [ + { + "evidence_id": "EV-002", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "program_id": "RP-001", + "schema_version": "claim/1.2", + "statement": "Benchwork reconstructs canonical state from Chronicle after process restart.", + "status": "SUPPORTED", + "type": "empirical" + } + }, + "decisions": { + "DE-001": { + "assessment_ids": [ + "AS-001" + ], + "decision_id": "DE-001", + "lineage": null, + "outcome": "REPAIR", + "program_id": "RP-001", + "rationale": "The Benchwork control plane completed successfully, while broader Host and real-study validation remain.", + "required_actions": [ + "Validate the workflow in a non-synthetic real study before making external scientific claims.", + "Complete Codex IDE and Claude Code CLI Host acceptance when those environments are available.", + "Obtain explicit disclosure authorization before any external review." + ], + "schema_version": "decision/1.2", + "seal_actor": { + "actor_id": "interactive-user", + "actor_type": "human", + "authenticated_by": "codex-explicit-confirmation", + "host": "codex" + }, + "seal_receipt": "RC-85E81CCAD550", + "sealed_at": "2026-07-30T14:39:42.281640+00:00", + "status": "SEALED", + "unresolved_issue_ids": [], + "unresolved_uncertainties": [ + "Only the Codex CLI Host was exercised; IDE and Claude Code CLI validation remain unavailable.", + "The data are synthetic and validate the Benchwork control plane rather than an external scientific claim.", + "The paired differences have zero variance, so a standardized effect is unavailable despite the deterministic mean difference." + ] + } + }, + "deviations": {}, + "evidence": { + "EV-001": { + "claim_relations": [ + { + "claim_id": "CL-001", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "evidence_id": "EV-001", + "observation": "The trial records a minimal supported observation.", + "program_id": "RP-001", + "reproduction_ids": [], + "schema_version": "evidence/1.2", + "source": { + "sigil": "sha256:0000000000000000000000000000000000000000000000000000000000000000", + "uri": "trial-source.txt" + }, + "verification": { + "content_inspected": true, + "source_resolved": true + } + }, + "EV-002": { + "claim_relations": [ + { + "claim_id": "CL-002", + "relation": "SUPPORTS", + "status": "VERIFIED" + } + ], + "evidence_id": "EV-002", + "observation": "The dogfood source defines the expected replay behavior.", + "program_id": "RP-001", + "reproduction_ids": [], + "schema_version": "evidence/1.2", + "source": { + "sigil": "sha256:6a98fcb971fa3ec0e0ddcf8ff607093e2c730e6953a50bb7a0a6ea5582996f9a", + "uri": "trial-source.txt" + }, + "verification": { + "content_inspected": true, + "source_resolved": true + } + } + }, + "experiments": { + "EX-001": { + "experiment_id": "EX-001", + "history": [ + { + "at": "2026-07-30T10:16:19.738616+00:00", + "event_id": "CE-D6F92F631780", + "status": "PLANNED" + }, + { + "at": "2026-07-30T10:16:25.565867+00:00", + "event_id": "CE-004D35021E08", + "status": "IMPLEMENTED" + }, + { + "at": "2026-07-30T10:16:35.387817+00:00", + "event_id": "CE-0927A1F2A8EC", + "status": "PILOT_RUNNING" + } + ], + "hypothesis_id": "HY-002", + "program_id": "RP-001", + "protocol_id": "PT-001", + "question": "Does Benchwork preserve registered state after process restart?", + "schema_version": "experiment/1.2", + "status": "PILOT_RUNNING", + "working_id": "WK-001" + }, + "EX-002": { + "experiment_id": "EX-002", + "history": [ + { + "at": "2026-07-30T14:31:26.202596+00:00", + "event_id": "CE-FD9FD86FEDFF", + "status": "PLANNED" + }, + { + "at": "2026-07-30T14:31:26.225455+00:00", + "event_id": "CE-B61055E68C91", + "status": "IMPLEMENTED" + }, + { + "at": "2026-07-30T14:31:26.248213+00:00", + "event_id": "CE-542287D1C84F", + "status": "PILOT_RUNNING" + }, + { + "at": "2026-07-30T14:33:22.827665+00:00", + "event_id": "CE-A3BAC0D1482A", + "status": "PILOT_COMPLETED" + } + ], + "hypothesis_id": "HY-002", + "program_id": "RP-001", + "protocol_id": "PT-002", + "question": "Does the registered treatment preserve canonical replay_success compared with baseline?", + "schema_version": "experiment/1.2", + "status": "PILOT_COMPLETED", + "working_id": "WK-002" + } + }, + "hypotheses": { + "HY-001": { + "claim_ids": [ + "CL-001" + ], + "hypothesis_id": "HY-001", + "prediction": "The protocol remains present and unchanged after process restart.", + "program_id": "RP-001", + "schema_version": "hypothesis/1.0", + "statement": "A sealed protocol can be replayed from Chronicle.", + "status": "PROPOSED" + }, + "HY-002": { + "claim_ids": [ + "CL-002" + ], + "hypothesis_id": "HY-002", + "prediction": "The replayed protocol Sigil and canonical fields match the pre-restart state.", + "program_id": "RP-001", + "schema_version": "hypothesis/1.0", + "statement": "A frozen protocol remains identical after restarting the CLI process.", + "status": "SUPPORTED" + } + }, + "issues": {}, + "programs": { + "RP-001": { + "artifacts": [ + "AR-001", + "AR-002" + ], + "assessments": [ + "AS-001" + ], + "claims": [ + "CL-001", + "CL-002" + ], + "decisions": [ + "DE-001" + ], + "deviations": [], + "evidence": [ + "EV-001", + "EV-002" + ], + "hypotheses": [ + "HY-001", + "HY-002" + ], + "issues": [], + "problem": { + "statement": "Verify the minimal canonical research workflow." + }, + "program_id": "RP-001", + "protocols": [ + "PT-001", + "PT-002" + ], + "reproduction_records": [], + "research_question": { + "actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "seal_receipt": "RC-A11F46B334F6", + "sealed_at": "2026-07-30T09:47:53.450632+00:00", + "statement": "Can Benchwork preserve a minimal research workflow across restart?" + }, + "schema_version": "research-program/1.1", + "slug": "trial-memory", + "status": "EVALUATED", + "title": "Benchwork dogfood trial" + } + }, + "protocols": { + "PT-001": { + "analysis_plan": "Compare registered replay outcomes between baseline and treatment runs.", + "analysis_spec": { + "comparisons": [ + { + "arms": [ + "baseline", + "treatment" + ], + "comparison_id": "CMP-001", + "confidence_level": 0.95, + "estimand": "mean_difference", + "experiment_id": "EX-001", + "metric": "score", + "pairing": "paired", + "uncertainty_method": "student_t" + } + ], + "expected_run_ids": [ + "RUN-000", + "RUN-001" + ], + "multiple_comparison_policy": "none", + "pilot_run_ids": [ + "RUN-000", + "RUN-001" + ], + "practical_significance_thresholds": { + "score": 0.02 + }, + "schema_version": "analysis-spec/1.0" + }, + "deviations": [], + "hypothesis_ids": [ + "HY-002" + ], + "program_id": "RP-001", + "protocol_id": "PT-001", + "schema_version": "study-protocol/1.3", + "seal_actor": { + "actor_id": "local-user", + "actor_type": "human", + "authenticated_by": "local-session", + "host": "cli" + }, + "seal_receipt": "RC-8CE15AA5E69F", + "sealed_at": "2026-07-30T10:12:42.439410+00:00", + "status": "FROZEN", + "study_mode": "confirmatory", + "title": "Minimal Chronicle replay trial" + }, + "PT-002": { + "analysis_plan": "Compare registered replay_success outcomes between baseline and treatment while preserving failed excluded Runs.", + "analysis_spec": { + "comparisons": [ + { + "arms": [ + "baseline", + "treatment" + ], + "comparison_id": "CMP-002", + "confidence_level": 0.95, + "estimand": "mean_difference", + "experiment_id": "EX-002", + "metric": "replay_success", + "pairing": "paired", + "uncertainty_method": "student_t" + } + ], + "expected_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104", + "RUN-105" + ], + "multiple_comparison_policy": "none", + "pilot_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104" + ], + "practical_significance_thresholds": { + "replay_success": 0.0 + }, + "schema_version": "analysis-spec/1.0" + }, + "deviations": [], + "hypothesis_ids": [ + "HY-002" + ], + "program_id": "RP-001", + "protocol_id": "PT-002", + "schema_version": "study-protocol/1.3", + "seal_actor": { + "actor_id": "interactive-user", + "actor_type": "human", + "authenticated_by": "codex-explicit-confirmation", + "host": "codex" + }, + "seal_receipt": "RC-784E362FFF7A", + "sealed_at": "2026-07-30T14:29:40.313123+00:00", + "status": "FROZEN", + "study_mode": "confirmatory", + "title": "Chronicle replay dogfood repair trial" + } + }, + "reproduction_records": {}, + "result_bundles": { + "RB-001": { + "analysis_kind": "deterministic-descriptive-aggregation", + "bundle_id": "RB-001", + "comparisons": [ + { + "comparison_id": "CMP-002", + "control_arm": "baseline", + "estimand": "mean_difference", + "experiment_id": "EX-002", + "metrics": { + "replay_success": { + "descriptive": { + "control": { + "max": 0.0, + "mean": 0.0, + "min": 0.0, + "n": 2, + "sample_stddev": 0.0 + }, + "treatment": { + "max": 1.0, + "mean": 1.0, + "min": 1.0, + "n": 2, + "sample_stddev": 0.0 + } + }, + "effect": { + "estimate": 1.0, + "method": "mean_difference", + "standardized": { + "estimate": null, + "method": "unavailable", + "reason": "paired differences have zero variance" + } + }, + "practical_significance": { + "exceeds_threshold": true, + "threshold": 0.0 + }, + "uncertainty": { + "degrees_of_freedom": 1.0, + "effective_level": 0.95, + "lower": 1.0, + "method": "student_t", + "reason": null, + "requested_level": 0.95, + "samples": null, + "seed": null, + "upper": 1.0 + } + } + }, + "pairing": "paired", + "run_ids": { + "control": [ + "RUN-101", + "RUN-103" + ], + "treatment": [ + "RUN-102", + "RUN-104" + ] + }, + "treatment_arm": "treatment" + } + ], + "multiple_comparison_policy": "none", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_inventory": { + "all_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104", + "RUN-105" + ], + "excluded_runs": [ + { + "policy_reference": "PT-002#analysis-plan", + "reason": "Synthetic failure retained for negative-result testing.", + "run_id": "RUN-105", + "status": "FAILED" + } + ], + "failed_run_ids": [ + "RUN-105" + ], + "included_run_ids": [ + "RUN-101", + "RUN-102", + "RUN-103", + "RUN-104" + ], + "missing_run_ids": [] + }, + "schema_version": "result-bundle/1.1" + } + }, + "review_artifacts": { + "RV-001": { + "acceptance_receipt": null, + "accepted_at": null, + "approval": { + "approved_at": null, + "approved_by": null, + "rationale": null, + "required": false, + "status": "NOT_REQUIRED" + }, + "completed_at": "2026-07-30T14:37:29.106354+00:00", + "completion_receipt": "RC-6E02CB1880A3", + "disclosure": { + "includes_credentials": false, + "includes_private_data": false, + "includes_source_code": false, + "includes_unpublished_results": true + }, + "program_id": "RP-001", + "result": { + "findings": [ + "PT-002 Analysis Spec matches EX-002, RUN-101 through RUN-105, replay_success, arms, and seeds.", + "RUN-105 remains canonical as FAILED and excluded with its registered reason.", + "RB-001 primary analysis includes only RUN-101 through RUN-104 and is scoped only to EX-002.", + "AS-001 records synthetic-data and Host-coverage limitations and does not promote the result to a general scientific claim.", + "PT-001 and EX-001 traces are byte-identical to the preserved Round 1 snapshots.", + "Schema validation, Artifact Sigil verification, canonical jq assertions, and Deep Doctor all passed." + ], + "recommendation": "REPAIR", + "residual_risks": [ + "The data are synthetic.", + "Paired differences have zero variance, so standardized effect size is unavailable.", + "IDE and Claude Code CLI Host validation remain incomplete.", + "External review remains unauthorized.", + "The first pilot Task completion was rejected as stale after canonical Run registration; the rejection is preserved and a fresh Snapshot-bound Task completed successfully." + ], + "summary": "The sealed Protocol, registered Runs, Alembic Result Bundle, Assessment, and preserved Round 1 evidence are internally consistent." + }, + "review_id": "RV-001", + "reviewer": { + "kind": "agent", + "name": "codex-local-review" + }, + "schema_version": "review-artifact/1.0", + "scope": { + "checks": [ + "PT-002 Analysis Spec equals the registered EX-002 Run contract.", + "RUN-105 remains FAILED and excluded rather than deleted.", + "RB-001 includes only RUN-101 through RUN-104 in the primary comparison.", + "AS-001 separates synthetic numerical facts from broader scientific interpretation.", + "Round 1 canonical objects remain present and unchanged." + ], + "summary": "Review the Round 2 repair for Protocol/Run/Experiment alignment, failed-Run preservation, Alembic scope, Assessment limitations, and readiness for a REPAIR Decision preview." + }, + "source": { + "execution": "local", + "host": "codex", + "provider": null + }, + "status": "COMPLETED", + "target": { + "commit": null, + "files": [ + "analysis-spec-round2.json", + "implementation-artifact-round2.json" + ], + "repository": "benchwork-trial" + }, + "task_id": "TK-275B79CB5D04" + } + }, + "review_requests": { + "RV-001": { + "approval": { + "approved_at": null, + "approved_by": null, + "rationale": null, + "required": false, + "status": "NOT_REQUIRED" + }, + "destination": { + "execution": "local", + "provider": null + }, + "disclosure": { + "includes_credentials": false, + "includes_private_data": false, + "includes_source_code": false, + "includes_unpublished_results": true + }, + "program_id": "RP-001", + "request_receipt": "RC-63A6E1866CF1", + "requested_at": "2026-07-30T14:35:12.190246+00:00", + "review_id": "RV-001", + "schema_version": "review-request/1.0", + "scope": { + "checks": [ + "PT-002 Analysis Spec equals the registered EX-002 Run contract.", + "RUN-105 remains FAILED and excluded rather than deleted.", + "RB-001 includes only RUN-101 through RUN-104 in the primary comparison.", + "AS-001 separates synthetic numerical facts from broader scientific interpretation.", + "Round 1 canonical objects remain present and unchanged." + ], + "summary": "Review the Round 2 repair for Protocol/Run/Experiment alignment, failed-Run preservation, Alembic scope, Assessment limitations, and readiness for a REPAIR Decision preview." + }, + "status": "COMPLETED", + "target": { + "commit": null, + "files": [ + "analysis-spec-round2.json", + "implementation-artifact-round2.json" + ], + "repository": "benchwork-trial" + }, + "type": "local_review" + } + }, + "runs": { + "RUN-001": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-001", + "schema_version": "run/1.2", + "seed": 1, + "status": "COMPLETED" + }, + "RUN-002": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-002", + "schema_version": "run/1.2", + "seed": 1, + "status": "COMPLETED" + }, + "RUN-003": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-003", + "schema_version": "run/1.2", + "seed": 2, + "status": "COMPLETED" + }, + "RUN-004": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-001#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-004", + "schema_version": "run/1.2", + "seed": 2, + "status": "COMPLETED" + }, + "RUN-005": { + "analysis_disposition": { + "included": false, + "policy_reference": "PT-001#analysis-plan", + "reason": "Synthetic failed run retained for negative-result validation." + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-001", + "metrics": {}, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-001", + "run_id": "RUN-005", + "schema_version": "run/1.2", + "seed": 3, + "status": "FAILED" + }, + "RUN-101": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-002#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-101", + "schema_version": "run/1.2", + "seed": 1, + "status": "COMPLETED" + }, + "RUN-102": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-002#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-102", + "schema_version": "run/1.2", + "seed": 1, + "status": "COMPLETED" + }, + "RUN-103": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-002#analysis-plan", + "reason": null + }, + "arm": "baseline", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": { + "replay_success": 0.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-103", + "schema_version": "run/1.2", + "seed": 2, + "status": "COMPLETED" + }, + "RUN-104": { + "analysis_disposition": { + "included": true, + "policy_reference": "PT-002#analysis-plan", + "reason": null + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": { + "replay_success": 1.0 + }, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-104", + "schema_version": "run/1.2", + "seed": 2, + "status": "COMPLETED" + }, + "RUN-105": { + "analysis_disposition": { + "included": false, + "policy_reference": "PT-002#analysis-plan", + "reason": "Synthetic failure retained for negative-result testing." + }, + "arm": "treatment", + "artifacts": [], + "experiment_id": "EX-002", + "metrics": {}, + "phase": "PILOT", + "program_id": "RP-001", + "protocol_id": "PT-002", + "run_id": "RUN-105", + "schema_version": "run/1.2", + "seed": 3, + "status": "FAILED" + } + }, + "workings": { + "WK-001": { + "history": [ + { + "at": "2026-07-30T10:13:15.842335+00:00", + "canonical_event_id": "CE-A53ADE916123", + "object_id": "WK-001", + "reason": "created", + "stage": "IMPLEMENTATION" + }, + { + "at": "2026-07-30T10:15:40.615528+00:00", + "canonical_event_id": "CE-32EAC70BE810", + "object_id": "AR-001", + "reason": "exit contract satisfied by artifact.registered", + "stage": "PILOT" + } + ], + "program_id": "RP-001", + "protocol_id": "PT-001", + "rite": { + "description": "A Working-bound canonical-event computational research study.", + "rite_id": "computational-study@0.2.1", + "schema_version": "rite/1.1", + "stages": [ + { + "exit_contract": { + "event_type": "artifact.registered", + "kind": "implementation", + "object_type": "artifact", + "same_program": true, + "same_protocol": true + }, + "name": "IMPLEMENTATION" + }, + { + "exit_contract": { + "event_type": "experiment.pilot_completed", + "object_type": "experiment", + "same_program": true, + "same_protocol": true + }, + "name": "PILOT" + }, + { + "exit_contract": { + "event_type": "analysis.computed", + "object_type": "result-bundle", + "same_program": true, + "same_protocol": true + }, + "name": "ANALYSIS" + }, + { + "exit_contract": { + "event_type": "assessment.recorded", + "object_type": "assessment", + "same_program": true, + "same_protocol": true + }, + "name": "REVIEW" + }, + { + "exit_contract": { + "event_type": "decision.sealed", + "object_type": "decision", + "same_program": true, + "same_protocol": true + }, + "name": "DECISION" + }, + { + "name": "COMPLETED" + } + ] + }, + "rite_id": "computational-study@0.2.1", + "rite_sigil": "sha256:1d942b9229ebd9ec54c3f6f1991e9a96efccdbc096bfc1776e78523632260ba8", + "schema_version": "working/1.1", + "stage": "PILOT", + "status": "ACTIVE", + "working_id": "WK-001" + }, + "WK-002": { + "history": [ + { + "at": "2026-07-30T14:29:40.337324+00:00", + "canonical_event_id": "CE-8077442B202A", + "object_id": "WK-002", + "reason": "created", + "stage": "IMPLEMENTATION" + }, + { + "at": "2026-07-30T14:31:26.180034+00:00", + "canonical_event_id": "CE-5026267DDA9D", + "object_id": "AR-002", + "reason": "exit contract satisfied by artifact.registered", + "stage": "PILOT" + }, + { + "at": "2026-07-30T14:33:22.827665+00:00", + "canonical_event_id": "CE-A3BAC0D1482A", + "object_id": "EX-002", + "reason": "exit contract satisfied by experiment.pilot_completed", + "stage": "ANALYSIS" + }, + { + "at": "2026-07-30T14:33:44.601684+00:00", + "canonical_event_id": "CE-081E7C2E7F43", + "object_id": "RB-001", + "reason": "exit contract satisfied by analysis.computed", + "stage": "REVIEW" + }, + { + "at": "2026-07-30T14:34:21.331930+00:00", + "canonical_event_id": "CE-823D9B8096DF", + "object_id": "AS-001", + "reason": "exit contract satisfied by assessment.recorded", + "stage": "DECISION" + }, + { + "at": "2026-07-30T14:39:42.281640+00:00", + "canonical_event_id": "CE-E1A982AA9E6F", + "object_id": "DE-001", + "reason": "exit contract satisfied by decision.sealed", + "stage": "COMPLETED" + } + ], + "program_id": "RP-001", + "protocol_id": "PT-002", + "rite": { + "description": "A Working-bound canonical-event computational research study.", + "rite_id": "computational-study@0.2.1", + "schema_version": "rite/1.1", + "stages": [ + { + "exit_contract": { + "event_type": "artifact.registered", + "kind": "implementation", + "object_type": "artifact", + "same_program": true, + "same_protocol": true + }, + "name": "IMPLEMENTATION" + }, + { + "exit_contract": { + "event_type": "experiment.pilot_completed", + "object_type": "experiment", + "same_program": true, + "same_protocol": true + }, + "name": "PILOT" + }, + { + "exit_contract": { + "event_type": "analysis.computed", + "object_type": "result-bundle", + "same_program": true, + "same_protocol": true + }, + "name": "ANALYSIS" + }, + { + "exit_contract": { + "event_type": "assessment.recorded", + "object_type": "assessment", + "same_program": true, + "same_protocol": true + }, + "name": "REVIEW" + }, + { + "exit_contract": { + "event_type": "decision.sealed", + "object_type": "decision", + "same_program": true, + "same_protocol": true + }, + "name": "DECISION" + }, + { + "name": "COMPLETED" + } + ] + }, + "rite_id": "computational-study@0.2.1", + "rite_sigil": "sha256:1d942b9229ebd9ec54c3f6f1991e9a96efccdbc096bfc1776e78523632260ba8", + "schema_version": "working/1.1", + "stage": "COMPLETED", + "status": "COMPLETED", + "working_id": "WK-002" + } + } +} diff --git a/tests/installer/test_installation.py b/tests/installer/test_installation.py index 3ad0ecf..89b134c 100644 --- a/tests/installer/test_installation.py +++ b/tests/installer/test_installation.py @@ -154,7 +154,10 @@ def test_release_plugin_archive_installs_atomically(self) -> None: ) installed = Path(result["path"]) self.assertEqual(validate_plugin(installed, PLUGIN_VERSION)["skill_count"], 7) - self.assertEqual((root / "data" / "plugins" / "current").resolve(), installed) + self.assertEqual( + (root / "data" / "plugins" / "current").resolve(), + installed.resolve(), + ) def test_archive_rejects_symlinks(self) -> None: with tempfile.TemporaryDirectory() as directory: diff --git a/tests/installer/test_lifecycle.py b/tests/installer/test_lifecycle.py index fe5a548..a5c9660 100644 --- a/tests/installer/test_lifecycle.py +++ b/tests/installer/test_lifecycle.py @@ -347,11 +347,16 @@ def test_status_and_doctor_without_installer_state(self) -> None: self.assertFalse(installation_status()["installed"]) with patch( "benchwork.install.manager.shutil.which", - return_value=str(Path(sys.executable).with_name("bwork")), + side_effect=lambda command: ( + str(Path(sys.executable).with_name("bwork")) + if command == "bwork" + else None + ), ): doctor = installation_doctor() self.assertTrue(doctor["ok"]) self.assertEqual(doctor["project_state"], "NOT_TOUCHED") + self.assertFalse(doctor["checks"]["codex"]["detected"]) def test_download_bounds_integrity_and_redirect_failures(self) -> None: with self.assertRaisesRegex(InstallationError, "HTTPS"): @@ -608,7 +613,7 @@ def test_project_plugin_merge_and_manager_rollback_preserve_unrelated_config(sel / "plugins" / "current" ).resolve(), - Path(installed["path"]), + Path(installed["path"]).resolve(), ) def test_repair_configures_hosts_path_and_project_uninstall(self) -> None: