{
  "schema": "task26-runbook-binding-receipt-v3",
  "created_utc": "2026-08-15T14:05:00Z",
  "task": "st_01a0054e (task26-runbook-rebind-2e, v3 readiness supersession)",
  "candidate": "2e0894eac92bc396cc4723bf1f18ebc653b95018dd41574df435941c235da925",
  "wheel_sha256": "af4a9d0a1ffffb6eb7551c1d6dc2b32853ca6d024332a4f8f5702bbf992f141b",
  "plan_sha256": "7ace03c6dad33d2fc3ef223621cbca68a150fde8429932138e252fb8498ac582",
  "actor": "8527916639",
  "documents": {
    "task26-golden-path-2e0894ea-v3.md": "ff230719eb5a69ae821bb0a4d58356d59b2803c490d692659a197e22083793c7",
    "task26-recovery-runbook-2e0894ea-v3.md": "e62691493d2a75c312dd248a07bbc52f7f1d98d4acd701b824bbaf5edf8bdd3a",
    "lint_runbooks_v3.py": "e3cead7d116173858d6ee4450c5744cdec8ef7b4c68ffa875a431ba09292fd13",
    "lint-results-v3.json": "becb7b7128c996f79c93f3ab388e22477cf904ba55d6914c64250eeaa35c7eb0"
  },
  "supersedes": {
    "task26-golden-path-2e0894ea-v2.md": "633d5c25ce70cb9ab5d19c434122b14b46fb7108962ab6e453ce6ab3ede1848f",
    "task26-recovery-runbook-2e0894ea-v2.md": "6024c26ccae3cad7fcf46a77bca8607d73293a92ddb3dcf8fa5a278361869f1d",
    "runbook-binding-receipt-v2.json": "9d0ad49cce10e49bf5f621b587cd0a8a8c1eaa7e3dc9242e52e1aae5e6bbc27e",
    "task26-golden-path-2e0894ea.md": "1f55b8f967c6564113574d41bf1c15ce977d35c38b5687f1623ba37f235a7bdb",
    "task26-recovery-runbook-2e0894ea.md": "f4f2d2347b4b68a080b9c437a813accbef8c4bcc471cbf21d67ffff31e56f89b",
    "runbook-binding-receipt.json": "0e81c98b9f4e10b4a569fa1e38d32037ea985f119eba3213685cd391d605a574",
    ".omo/evidence/dualcoach-golden-path-contract.md": "32a379d855c6e5af978bd9886e3bf49c616c7c20f1c1d5f100c19d8adfc5eb4a",
    ".omo/evidence/dualcoach-recovery-runbook.md": "ae2f5f9046c06f8f0b42693be5aa0d9c31cada8024ae1e5ab8ba19a3cf10f6fc"
  },
  "preservation": "append-only; v1, v2, and the original runbooks remain byte-identical (re-verified at v3 authoring); the v1 pair is hash-bound by the sealed invite harness and must never change",
  "v3_closures": {
    "B3_provider_readiness": {
      "status": "CLOSED",
      "raw_receipt_sha256": "8278dde4efa8bcd366fce873ccc07f651818275238b67452b9e6cb93c67afd6d",
      "payload_receipt_sha256": "6aeaaab42e0030b0f626037d7b9ef6661ec93fb57fd991c843967c1fc695905c",
      "receipt_index_sha256": "16acf1b355715379ad526433803353e1f34c418e9560fc1466f3f77f951df919",
      "profile_snapshot_unchanged": "7d163cb01708869d617efeadd852f7e6ec4f963a94c50d19b104cc849483c171",
      "request_attempts": 1,
      "billable": true,
      "store": false,
      "total_tokens": 26,
      "digest_domain": "receipt candidate_digest f9a46172386333a0067f43695fb1429a043a606f04baceb06e8c59b90c36235c is the provider command digest from module gateway/platforms/dualcoach_admin.py (sha256 0e9b4b1f0449d8351602598fead3ef01b8616e230c147e44db79667284ceae49, byte-identical in wheel and runtime venv); a different domain from candidate envelope digest 2e0894ea",
      "correct_invocation": "HERMES_HOME=/home/cube/.hermes/profiles/dualcoachtest /home/cube/projects/richard/hermes-agent/.venv/bin/dualcoach_admin provider-auth check --allow-billable-active-probe (profile-bound HERMES_HOME mandatory)"
    },
    "G12_invite_harness": {
      "status": "CLOSED",
      "harness_sha256": "2826b1baf97918829f80d41722ec6534f933e57efa52345353cdb366cac314fb",
      "permission_seal_sha256": "c4e857894ebd8b2e96289ea70d7cdcdd38cdad1c72cc7b1c86f33a5d2de7d171",
      "approval_receipt_sha256": "c7fc477141259087e8e9dd6520b2066eda3bab20dc6e2f625942431b6830c187",
      "verification_receipt_sha256": "c2a6393f2ccf67ab6872f83e03793af72ea21b7df2e616c7cc2256c566c6b2c0",
      "tests_sha256": "68f6f72f773265a3e889b5ab2024425caa7eb1fd0cf4f612379fd7203293185b",
      "reproduction": "6/6 tests PASS with Ruff, LSP, and py_compile clean, reproduced at v3 authoring with the runtime venv interpreter",
      "ordering": "stale gateway.lock is permitted only as sealed pre-reset input; the harness refuses to run while the lock exists; post-reset harness dry-run and verify are mandatory before prepare"
    },
    "B6_cleanup_controller": {
      "status": "CLOSED",
      "controller_sha256": "8b03fa714304b34a7f19dc9b077d8fbd54e7f7bc46232bf8d5bc65ae7b873ff5",
      "contract_v2_sha256": "7b6a1aa54b58d6e7e6733a963772e220a903ffae5a3e0e6d089283af13e097db",
      "permission_v2_sha256": "cb06310270868da5dfc3c1d292b0ccedd5f3021d0f211576449c96649fa4730b",
      "test_receipt_sha256": "90fcb04be789fd519d6bb83f9ba659927721e9d272594de84329c42c3529ed18",
      "independent_verification_receipt_sha256": "d8d818cdfd2a22b088064b216136bfdee050b096a5b7fdcc9fb6f5958312dd05",
      "readiness_receipt_sha256": "fab6322753cccca614e1ee83bf5221013185662a74c86f5d19563e38f0fc0d2b",
      "live_rejection_receipt_sha256": "769db2bd5c39e405176ecb438d05ad0f10c538ee53c6c7849e809123f91ecb88",
      "exact_execute_command_sha256": "78d7474df421f26ec4d106fa378270f60e57178553c3423fad717698c0fd5b22",
      "exact_verify_command_sha256": "e6888d62915b4b57b22b2769ebf46a7a1ee57d0d4ad7c4d5c1502bffc895ebdf",
      "reproduction": "21/21 tests PASS with Ruff, compile, and LSP clean, reproduced at v3 authoring with the runtime venv interpreter",
      "semantics": "archives the full bootstrap ledger byte-exact with the ACTIVE row preserved; forbids ACTIVE-to-fake-terminal mutation; strict lifecycle gates listed in Golden Path Section 14"
    }
  },
  "v3_corrections_to_v1_v2": [
    "G5 module pin set replaced with the seven real wheel members and digests recomputed from the sealed wheel (v1/v2 named three non-existent paths and stale digests)",
    "runtime venv is /home/cube/projects/richard/hermes-agent/.venv (no profile-local .venv exists); deployment and all CLIs use it",
    "unit file path corrected to /home/cube/.config/systemd/user/hermes-gateway-dualcoachtest.service (sha256 0b46e887 unchanged)",
    "lifecycle CLIs corrected: checkin_cli.readiness_cli --profile-root --customer-key; customer_admin real subcommands only (activate takes --profile-root --data-root --checklist-evidence; disable takes the customer key with no reason flag)",
    "generation is event-driven (atomic enqueue at check-in completion); the v1/v2 hermes_cli.nutrition_review_service request-generation CLI does not exist and is void",
    "provider-auth invocation requires the profile-bound HERMES_HOME; digest-domain clarification recorded permanently"
  ],
  "semantic_checks_enforced": [
    "no manual gateway.lock deletion anywhere; pre-reset G8 demands only no-active-holder plus contract scope; post-reset G15 demands lock absence",
    "execution ordering chain: pre-reset arm -> execute/verify -> harness dry-run/verify -> deployment/loaded-byte proof -> observe before prepare/Start -> lifecycle -> disable/stop -> cleanup execute/verify",
    "exactly one invite preparation (sealed maximum), one accepted Start claim (sealed maximum), one customer DM delivery",
    "no recovery shortcuts; fail-closed cleanup with strict ACTIVE lifecycle gates; no open gate remains"
  ],
  "lint": {
    "script": "lint_runbooks_v3.py",
    "script_sha256": "e3cead7d116173858d6ee4450c5744cdec8ef7b4c68ffa875a431ba09292fd13",
    "results_sha256": "becb7b7128c996f79c93f3ab388e22477cf904ba55d6914c64250eeaa35c7eb0",
    "checks_total": 177,
    "checks_failed": 0,
    "runs": 2
  },
  "verdict": {
    "task_verdict": "PASS",
    "decision_complete": true,
    "open_blockers": [],
    "readiness_token": "READY_FOR_REHEARSAL_PREFLIGHT",
    "executable_today": true,
    "notes": "All v2 external gates (B3, G12, B6) are closed with sealed, independently re-verified evidence; v1/v2 stale commands and pins corrected; semantic deadlock checks pass; execution must follow the Golden Path v3 ordering exactly."
  },
  "self_sha256": "343bdf28fe71fd7bbc6dd82232141184a67228d63e7a1387c48de942ecc3b846"
}
