Label: Reference execution Generated by: scripts/generate_paa_walkthrough_captures.py Read first: docs/assets/paa-walkthrough/README.md # Failure path: approval fails closed on tampered evidence A second motion proposes the declared demotion, binding the redacted gate-block artifact as its evidence. The generator then appends one byte to the stored evidence file, standing in for any modification after proposal. Approval re-hashes the bytes, finds the mismatch, and writes nothing: the motion stays proposed and the position stays hotl. The operator then rejects the stale motion; rejection is terminal. $ scout paa propose inbound_reply_surfacing --to hitl --evidence evidence/paa/reference/bundle/gate-block.json --actor operator-a --reason "reference execution: blocking evaluator fired" { "approved_at": null, "approved_by": null, "approved_reason": null, "declaration_version": 1, "evidence_ref": "evidence/paa/16a9c77147cc8b8336c830f99af2ef4e214e1fcef6bc8f35c3e724980253ba8f/evidence.json", "evidence_sha256": "16a9c77147cc8b8336c830f99af2ef4e214e1fcef6bc8f35c3e724980253ba8f", "executed_at": null, "from_position": "hotl", "motion_id": "00000000-0000-4000-8000-000000000002", "proposed_at": "2026-01-01T00:00:04.000000Z", "proposed_by": "operator-a", "proposed_reason": "reference execution: blocking evaluator fired", "rejected_at": null, "rejected_by": null, "rejected_reason": null, "scope": null, "status": "proposed", "task": "inbound_reply_surfacing", "to_position": "hitl" } The stored evidence file is modified here, outside the CLI. $ scout paa approve 00000000-0000-4000-8000-000000000002 --actor operator-b --reason "reference execution: attempted approval" paa approve error: evidence at /evidence/paa/16a9c77147cc8b8336c830f99af2ef4e214e1fcef6bc8f35c3e724980253ba8f/evidence.json has been tampered with: bytes hash to e45423b5672ac4ddff066e24d7cfe9bcd3ab34daf50ea935fc4e96602fddfa8c, expected 16a9c77147cc8b8336c830f99af2ef4e214e1fcef6bc8f35c3e724980253ba8f [exit status 1] $ scout paa show inbound_reply_surfacing { "current_position": "hotl", "declaration_version": 1, "deployment": "shadow", "initial_position": "hitl", "latest_position_event": { "actor": "operator-b", "created_at": "2026-01-01T00:00:03.000000Z", "declaration_version": 1, "event": "position_changed", "event_schema": "paa-autonomy-event/0.1.0-draft", "evidence_ref": "evidence/paa/b38c40982b34b130d1f790146b432467a8e9819a671f10b723fcb1ccafc20701/evidence.json", "evidence_sha256": "b38c40982b34b130d1f790146b432467a8e9819a671f10b723fcb1ccafc20701", "from_position": "hitl", "id": "00000000-0000-4000-8000-0000ffff0003", "motion_id": "00000000-0000-4000-8000-000000000001", "reason": "reference execution: second operator approved", "scope": null, "task": "inbound_reply_surfacing", "to_position": "hotl" }, "scope": null, "task": "inbound_reply_surfacing" } $ scout paa reject 00000000-0000-4000-8000-000000000002 --actor operator-b --reason "reference execution: evidence no longer matches its recorded hash" { "approved_at": null, "approved_by": null, "approved_reason": null, "declaration_version": 1, "evidence_ref": "evidence/paa/16a9c77147cc8b8336c830f99af2ef4e214e1fcef6bc8f35c3e724980253ba8f/evidence.json", "evidence_sha256": "16a9c77147cc8b8336c830f99af2ef4e214e1fcef6bc8f35c3e724980253ba8f", "executed_at": null, "from_position": "hotl", "motion_id": "00000000-0000-4000-8000-000000000002", "proposed_at": "2026-01-01T00:00:04.000000Z", "proposed_by": "operator-a", "proposed_reason": "reference execution: blocking evaluator fired", "rejected_at": "2026-01-01T00:00:05.000000Z", "rejected_by": "operator-b", "rejected_reason": "reference execution: evidence no longer matches its recorded hash", "scope": null, "status": "rejected", "task": "inbound_reply_surfacing", "to_position": "hitl" }