{
  "blocker_count": 0,
  "confidence": 0.99,
  "evidence": {
    "absent_roots": [
      "/home/cube/projects/richard/traning coach/.omo/evidence/nutricoach-v150-combined/task-v15r71-build-r3-a",
      "/home/cube/projects/richard/traning coach/.omo/evidence/nutricoach-v150-combined/task-v15r71-build-r3-b",
      "/home/cube/projects/richard/traning coach/.omo/evidence/nutricoach-v150-combined/task-v15r71-inputs-r3",
      "/home/cube/projects/richard/traning coach/.omo/evidence/nutricoach-v150-combined/task-v15r71-receipts-r3",
      "/home/cube/.hermes/migrations/nutricoach-v1.5.0-combined/live-transaction-preseal-v15-runtime-authority-r71",
      "/home/cube/.hermes/migrations/nutricoach-v1.5.0-combined/preflight-v15-runtime-authority-r71",
      "/home/cube/.hermes/migrations/nutricoach-v1.5.0-combined/live-authorization-v15/nutricoach-v150-v15-runtime-authority-r71",
      "/home/cube/.hermes/migrations/nutricoach-v1.5.0-combined/live-executions-v15/nutricoach-v150-v15-runtime-authority-r71",
      "/home/cube/.hermes/migrations/nutricoach-v1.5.0-combined/observer-r71",
      "/home/cube/.hermes/profiles/dualcoachtest/.strict-runtime/a41c97c8-v150"
    ],
    "adversarial_rejections": {
      "missing_required_overlay": {
        "exit_code": 1,
        "rejected": true,
        "sentinel": "NUTRICOACH_V150_CANDIDATE_FAIL:successor overlay path set is invalid"
      },
      "mutated_member": {
        "exit_code": 1,
        "rejected": true,
        "sentinel": "NUTRICOACH_V150_CANDIDATE_FAIL:wheel_inventory: hash mismatch artifacts/build-1/hermes_agent-0.17.0-py3-none-any.whl"
      },
      "occupied_successor": {
        "error": "successor_exists",
        "exit_code": 1,
        "preserved_bytes_modes_inventory": true,
        "rejected": true
      }
    },
    "ambient_registry": {
      "r1_r2_r3_candidate_digests_present": 0,
      "registry_and_ledger_digests_match_authority_receipt": true
    },
    "authoritative_candidate": {
      "candidate_digest": "a41c97c8a467b0308b9f50ac072cc3adae1c2d47ca515b76f123e7c1debee9be",
      "evidence_inventory_count": 1,
      "file_count": 362,
      "immutable_modes": true,
      "input_inventory_count": 6,
      "manifest_sha256": "a019f0b9a0bf1a393d2d307d0e755251a140e3449058077632209e2101090766",
      "qualification_sha256": "797300a684ed08db168a77b1c611cdb04a2c7f1090a577a18b7cfa58a2952c02",
      "root": "/home/cube/projects/richard/traning coach/.omo/evidence/nutricoach-v150-combined/task-v15r71-candidate-r3",
      "source_inventory_count": 349,
      "tree_digest": "6310a71806d393f66e104f6de32d311e32c203d3a6d70947099bdd079c01dce9",
      "wheel_inventory_count": 4
    },
    "cleanup": {
      "disposable_fault_copies_removed": true,
      "retained_roots_modified": false,
      "task_owned_temp_files_removed": true
    },
    "conclusion": "The exact immutable r3 candidate is complete, currently source-bound, independently verifiable, adversarially fail-closed, absent from ambient authority, and safe as the sole Todo9 input.",
    "forbidden_effects": {
      "commits": 0,
      "customer_messages": 0,
      "customer_updates": 0,
      "git_or_github": 0,
      "network": 0,
      "runtime_or_observer_creation": 0,
      "service": 0
    },
    "immutable_predecessors": {
      "r1": {
        "candidate_digest": "aa377308a8967fb8e2557f5283b1c67e5fec0ad2410ce2bee3b4835888cae14f",
        "file_count": 362,
        "immutable": true,
        "tree_digest": "03c7a6b241e301904180a523a82e679ed82c25ed54e06c320b6cfa65b9090501"
      },
      "r2": {
        "candidate_digest": "54550d75a31055f40a293d444a17fdd463ace784ca16e0cb0137cd695f7ab37e",
        "file_count": 362,
        "immutable": true,
        "tree_digest": "90ec738593b74a40e3dadde8816191754601e176c236e14d283815d6510bbb9b"
      }
    },
    "package_manifests": {
      "hermes_lock_sha256": "d6f3ad43c208cff1b9397ac4d6b74f0564d3b0d2b28f8a38386f3558bd4bf18f",
      "hermes_pyproject_sha256": "6b45a680fcc0ad20f93fe15c0262a621ab2e7ae554c9c41c1078e92c68adb5d2",
      "profile_lock_sha256": "8ddc4e8d36f5b6b49a60d3704acadc14318b1a9d7eeef4090df3aa03cecb87bf",
      "profile_pyproject_sha256": "7c48641ec198f539aa4af1f2000254b76a2915fd1b8f143f5b118ad662e4fb1e"
    },
    "predecessor_exclusion": {
      "r1": "blocked tombstone",
      "r2": "excluded typed fixture only",
      "r3": "sole Todo9 selection"
    },
    "qualification": {
      "candidate_input_verifier": "CURRENT_CANDIDATE_INPUT_PASS:overlay=47 source=349",
      "candidate_verifier_exit_code": 0,
      "candidate_verifier_output": [
        "{\"candidate_digest\": \"a41c97c8a467b0308b9f50ac072cc3adae1c2d47ca515b76f123e7c1debee9be\"}",
        "NUTRICOACH_V150_CANDIDATE_PASS"
      ],
      "exact_final_sentinel": "NUTRICOACH_V150_CANDIDATE_PASS",
      "manifest_and_qualification_bound": true,
      "physical_inventory_complete": true,
      "status": "QUALIFIED_PENDING_LIVE_AUTHORIZATION"
    },
    "source_freeze": {
      "all_exact_receipt_hashes_match_before_and_after": true,
      "files": 10,
      "independent_canonical_hash_stream": "021853af062c0d61a525aab17f2f4bcd5b9a005e5786cbfc4d16b28f6498d77e",
      "receipt_opaque_hash_stream": "6a289c279376b5b2ceb45fa8bd70bebcf688a59280b1a7e2c2f628b742a537e8",
      "unchanged": true
    },
    "static_and_tests": {
      "basedpyright": "0 errors, 0 warnings, 0 notes",
      "closure_sealer_verifier_suite": "19 passed in 0.93s",
      "compile": "COMPILE_PASS:10",
      "lsp": {
        "errors": 0,
        "files": 10
      },
      "ruff": "All checks passed",
      "ty": "All checks passed"
    },
    "successor_overlay": {
      "all_current_source_bindings": 47,
      "paths": 47,
      "source_only_bindings": [
        "dualcoach/profile/tests/test_multi_customer_migration.py",
        "scripts/nutricoach_v150_runtime_ops.py",
        "tests/gateway/test_nutrition_coaching.py"
      ],
      "wheel_member_bindings": 44
    },
    "todo1_through_7_authority_binding": {
      "affected_tests": 301,
      "audit_blockers": 0,
      "candidate_digests_in_registry": 0,
      "profile_tests": 1093,
      "qualification_ledger_sha256": "ae1dc8689887655ed23262cbe562b2e288637cc5f5ef7345718509a864be999f",
      "receipt_sha256": "6e94581628fe76849eb654ecc785cf610b207afeb62e57f9b649a70e3f1c7610",
      "registry_sha256": "4c3b042f4ae059365c3476f78ab7bc373771788d9f0ab689126f6149bd1994df",
      "todo_receipts_rehashed": 11
    },
    "todo9_selection": {
      "candidate_digest": "a41c97c8a467b0308b9f50ac072cc3adae1c2d47ca515b76f123e7c1debee9be",
      "candidate_manifest": "/home/cube/projects/richard/traning coach/.omo/evidence/nutricoach-v150-combined/task-v15r71-candidate-r3/manifest.json",
      "candidate_root": "/home/cube/projects/richard/traning coach/.omo/evidence/nutricoach-v150-combined/task-v15r71-candidate-r3",
      "sole_selection": true
    },
    "wheels": {
      "a_b_byte_identical": true,
      "all_four_crc_pass": true,
      "all_four_record_digest_size_and_count_pass": true,
      "expected_hashes_match": true,
      "package_metadata_match": true,
      "reports": {
        "artifacts/build-1/hermes_agent-0.17.0-py3-none-any.whl": {
          "crc": "PASS",
          "member_count": 1045,
          "name": "hermes-agent",
          "overlay_bindings": 23,
          "record_count": 1045,
          "record_verified": 1044,
          "sha256": "17d5db319f9355a427c5b46cc4ea9a896d348c585793df085c170921e1ee2829",
          "tag": "py3-none-any",
          "version": "0.17.0"
        },
        "artifacts/build-1/physique_checkin_cli-0.1.0-py3-none-any.whl": {
          "crc": "PASS",
          "member_count": 123,
          "name": "physique-checkin-cli",
          "overlay_bindings": 21,
          "record_count": 123,
          "record_verified": 122,
          "sha256": "2f1cae9ff6262f5c823dd41c68bc999dca71c56000bef6dc0a0268ab07c19c4f",
          "tag": "py3-none-any",
          "version": "0.1.0"
        },
        "artifacts/build-2/hermes_agent-0.17.0-py3-none-any.whl": {
          "crc": "PASS",
          "member_count": 1045,
          "name": "hermes-agent",
          "overlay_bindings": 23,
          "record_count": 1045,
          "record_verified": 1044,
          "sha256": "17d5db319f9355a427c5b46cc4ea9a896d348c585793df085c170921e1ee2829",
          "tag": "py3-none-any",
          "version": "0.17.0"
        },
        "artifacts/build-2/physique_checkin_cli-0.1.0-py3-none-any.whl": {
          "crc": "PASS",
          "member_count": 123,
          "name": "physique-checkin-cli",
          "overlay_bindings": 21,
          "record_count": 123,
          "record_verified": 122,
          "sha256": "2f1cae9ff6262f5c823dd41c68bc999dca71c56000bef6dc0a0268ab07c19c4f",
          "tag": "py3-none-any",
          "version": "0.1.0"
        }
      }
    }
  },
  "repro": {
    "candidate_verifier": "PYTHONDONTWRITEBYTECODE=1 UV_OFFLINE=1 .venv/bin/python -B scripts/verify_nutricoach_v150_candidate.py --base '<r3>/inputs/base-manifest.json' --successor '<r3>' --manifest '<r3>/manifest.json'",
    "faults": "Under one TemporaryDirectory only: append a wheel member and require hash rejection; remove tests/gateway/test_nutrition_coaching.py from overlay while rebinding its input hash and require path-set rejection; invoke sealer on an occupied successor and require successor_exists with exact sentinel bytes/modes/inventory preserved.",
    "independent_audit": "Recompute canonical derivation/tree/inventories and current-source bindings; validate all four ZIP CRCs, every RECORD row, metadata, 47 overlay bindings (44 wheel members plus 3 source-only members), Todo receipts/counts/blockers, registry absence, and effect-root absence.",
    "strict_static": [
      ".venv/bin/ruff check --no-cache <10 frozen Python files>",
      ".venv/bin/ty check --no-progress <10 frozen Python files>",
      "/home/cube/.local/bin/basedpyright <10 frozen Python files>",
      "python -B -c 'compile each of the 10 frozen files'"
    ],
    "tests": "NUTRICOACH_V150_CANDIDATE_ROOT='<r3>' PYTHONDONTWRITEBYTECODE=1 PYTHONPATH='<work>/dualcoach/profile:<work>' .venv/bin/python -m pytest -q -p no:cacheprovider tests/test_nutricoach_v150_v15_closure.py tests/test_verify_nutricoach_v150_candidate.py"
  },
  "schema": "nutricoach-telegram-checkin-stepper-task-8-adversarial-verify-v1",
  "task_id": "st_01a05ad0",
  "verdict": "confirmed"
}
