{
  "schema": "task26-final-provenance-repaired-candidate-v1",
  "recorded_at_utc": "2026-08-14T09:32:25Z",
  "verdict": "FAIL",
  "verdict_scope": "Final Task26 provenance/release-readiness adjudication for repaired candidate 2a0cd32e only. No authoritative candidate PASS, graph, release binding, or Task27 action is created.",
  "candidate": {
    "digest": "2a0cd32e520b092ec5208a2ae5fa9499d310428cc71ce07c31746c01ce4583cb",
    "snapshot_root": "/home/cube/projects/richard/hermes-agent/.task26-owner-v1-snapshots/task26-owner-v1-2a0cd32e520b",
    "snapshot_manifest_sha256": "06ffc1e2505451ca77dad630cd2e1e635f10644236d9ac875660474846008a29",
    "snapshot_digest": "8c16597464484ea415ec30a5d1c052763acf701043fe61187b0fb443ac1ed907",
    "candidate_manifest_sha256": "85b2058c53d0dee0ddcbbf597673988ac1a68d517c7811eef67889881bf1c87a",
    "v4_repair_receipt": {
      "path": ".omo/evidence/task26/task26-owner-v1-repair-v4-final-receipt.redacted.json",
      "sha256": "abe0cb62863c4681f77eb00a558270bbc2b8198d357588dbe7686511b7308033",
      "bytes": 2715,
      "mode": "0600"
    },
    "source_checkpoint": {
      "path": ".omo/evidence/task26/task26-owner-v1-recovery-readiness-checkpoint-v3.redacted.json",
      "sha256": "13143e28934a331a671bc89cadd6cdf05848e676bd58ef093f92d4a1ae940b0c",
      "bytes": 2353,
      "mode": "0600",
      "classification": "SOURCE_ANCESTRY_ONLY: it authenticates recovered predecessor e880, not a READY reviewer checkpoint for candidate 2a0."
    }
  },
  "authenticated_passes": {
    "snapshot_graph_path_and_permissions": "PASS: 40 committed regular-file leaves; root/directories 0500, leaves 0400, verifier 0500; no symlinks or candidate bytecode caches",
    "pre_and_post_snapshot_authentication": "PASS: manifest 06ffc1 and candidate 2a0 authenticate before and after local read-only binding verification",
    "repair_receipt_to_snapshot_to_source_checkpoint_chain": "PASS",
    "candidate_leaf_and_fixture_binding": "PASS: all 28 candidate source bytes match their manifest, and fixture names candidate 2a0",
    "successor_derivation": "PASS: authenticated successor projection reproduced successor-records.json exactly",
    "installed_wheel_entrypoint": "PASS: offline installed wheel returned draft_created against a disposable fixture copy",
    "wheel_source_and_runtime_closure": "PASS: 11 wheel members match source; closure has zero forbidden tokens and zero unexpected dynamic modules",
    "focused_tests": "PASS: 25 focused tests and 2 Task24 integration tests passed in a byte-identical disposable snapshot copy",
    "task22_to_task25_and_adverse_integrity": "58 of 59 declared Task22-25/adverse/archive references match retained byte and mode commitments"
  },
  "blocking_findings": [
    {
      "code": "CANDIDATE_VERIFIER_NOT_REPRODUCIBLE_CLEAN",
      "severity": "blocking",
      "detail": "The v4 repair receipt claims ruff=pass, but rerunning the declared ruff command against a byte-identical disposable copy of the sealed candidate exits 1: F401 unused typing.Mapping import at owner_v1/src/hermes_owner_v1/contracts.py:7. The same rerun reports three ty diagnostics. A clean candidate verifier cannot be attested."
    },
    {
      "code": "TASK24_TASK25_ADVERSE_CONTROL_MODE_DRIFT",
      "severity": "blocking",
      "detail": "The retained Task24/Task25 final-candidate manifest declares .omo/evidence/task26/verify-task24-task25-final-candidate.py mode 0700, but its current mode is 0600. Its bytes match, but its declared permission commitment does not."
    },
    {
      "code": "NO_CANDIDATE_BOUND_FIVE_LANE_PASS_SET",
      "severity": "blocking",
      "detail": "Only the v4 repair receipt names candidate 2a0. No fresh objective, quality, security/privacy, hands-on, and provenance PASS receipt set is bound to it; the current Task26 objective, quality, security, and provenance task records remain running. The plan requires all five lanes PASS."
    },
    {
      "code": "HANDOFF_LEDGER_NOT_RECONCILED_TO_2A0",
      "severity": "blocking",
      "detail": "The handoff and 89-record valid ledger contain neither candidate 2a0, manifest 06ffc1, nor repair receipt abe0cb. The latest Task26 ledger event remains the prior 96e1 candidate-unavailable NO-GO and its saved handoff hash differs from current handoff bytes."
    },
    {
      "code": "TASK22_TO_TASK25_HISTORICAL_ONLY_FOR_2A0",
      "severity": "blocking",
      "detail": "Task22-25/adverse material is integrity-retained, but it was not rerun as lifecycle execution of candidate 2a0 and cannot become its candidate-bound release attestation."
    }
  ],
  "atomic_graph_decision": {
    "authoritative_graph_created": false,
    "reason": "Fail-closed: reproducible quality, historical evidence permission, five-lane PASS, handoff/ledger, and candidate-bound lifecycle gates are not all satisfied.",
    "proposed_graph_path": ".omo/evidence/task26/task26-owner-v1-2a0cd32e-immutable-candidate-graph.json"
  },
  "handoff_ledger_observation": {
    "handoff_sha256": "1bd012f9e8db4970a1c2b6fdc3297ff2fd354908ddbe3ab895dcc4828e34da06",
    "handoff_state": "NO-GO; Task27 must not start",
    "ledger_sha256": "aeca62010766da261bbf52b5ab5b1b1f3916a9f42b8cacb9c53d23558ad4eaa3",
    "ledger_record_count": 89,
    "latest_task26_event": "provenance-reseal-candidate-unavailable",
    "latest_task26_verdict": "NO-GO",
    "ledger_has_candidate_2a0": false
  },
  "non_actions": {
    "candidate_snapshot_moves_or_deletions": 0,
    "candidate_snapshot_writes": 0,
    "git_actions": 0,
    "task27_actions": 0,
    "live_profile_service_telegram_provider_delivery_actions": 0,
    "network_actions": 0
  },
  "redaction": "No customer prose, model output, raw callback data, route identifiers, credentials, or live-profile payloads are included.",
  "mode_required": "0600",
  "receipt_digest": "e8d22e75889edba67a1c45d079811e385adee19b146b936df01bd8a784327c05"
}
