I read this as an independent, read-only F5 release-provenance audit - I’ll inspect the sealed evidence and repository state, run only non-mutating validators with the candidate-bound interpreter, and adjudicate every clause against immutable candidate-specific proof.


The sealed candidate and cleanup artifacts are present, while the workspace itself is intentionally not a Git worktree. I’m narrowing the audit to the receipt-declared live paths and candidate-bound tools so unrelated host Telegram services and generic project names are not misclassified as Task26 authority.


A material provenance discrepancy has surfaced: the Task27 hash manifest no longer matches its controller, even though the cleanup receipt itself has the stipulated hash. I’m now distinguishing whether that is an out-of-scope mutable Task27 tooling artifact or invalidates the cleanup chain, while executing the two sealed delivered-root verifiers and validating archive/journal chains directly.


I read this as an independent, read-only F5 release-provenance audit - I verified the canonical cleanup state and sealed candidate directly, excluding stale evidence.

# F5 verdict: PASS

**Confidence: 0.97**

Every F5 clause is satisfied for candidate:

`d1109d8f78aaccf949ec4f664d9e62584c3cca33032030518bc3e2d712239112`

## Direct verification

Candidate-bound interpreter:

- Python `3.12.9`
- Executable SHA256: `d9bc96d1ad0161db7ebdc8fdbc690530a9c29299feb2001cba6b29072e2a9051`

Commands:

```bash
$PY -I "$DELIVERED/verification-tools/independent_verify_candidate.py" "$DELIVERED"
```

Result: exit `0`, `TASK26_INDEPENDENT_CANDIDATE_PASS`

```bash
$PY -I "$DELIVERED/verification-tools/task26_frozen_bootstrap.py" "$DELIVERED"
```

Result: exit `0`, `TASK26_FROZEN_BOOTSTRAP_PASS`; nested `ACTUAL_INSTALLED_GOLDEN_PATH_PASS`.

The verifier confirmed:

- Candidate: `d1109d8f...39112`
- Expected state: `9c6e574bb2f6f9532c6edbef80119a5ab3182889c744a5a1dd6c7c0aa967385d`
- Hermes wheel: `f8b3c779c58435dd33f8f9bbc89e9823bd09f81367a27366c6d678270c1860b1`
- Profile wheel: `a56da2417df0912f3fe407c0b78befd7362207d1c8a35271000af46701ba79d2`
- Ty wheel: `932d4552233cfbaa325ddc3db5982150a37f437cf94a332eb3869052148bfe4c`
- Product binding: `72fa416b447c48327993ab03482892572104887acef4b64eac98285d2d4e0e48`
- Prefreeze seal: `257498e6aa2db7107ee24223a29b09f2e26c3d493869dc21206688be24b037b9`
- Postfreeze seal: `3002d815d7523c2971c990544d92c1f0d16fd51781f83d9d636ef6336b5878f6`
- Delivered seal: `54be54cf89720057486596a21941ec5d456a1c54148f66dbde0475503a752f67`
- Receipt seal: `52b7de2d30d99f38db6f73ad70ebe9a21c99449348f069cf3d1f29f5cab745c8`

## Live cleanup state

Using the candidate-bound interpreter and the cleanup controller’s read-only inventory functions:

- Customer disabled: `true`
- AI consent granted: `false`
- Customer workflow directory: absent
- Bootstrap authority directory: absent
- Delivery off: `true`
- Active/pending/unknown/orphan authority: `0/0/0/0`
- Every authority category: `0`
- Archive verified: `true`
- Journal committed: `true`
- Terminal: `true`

Gateway:

```text
LoadState=loaded
ActiveState=inactive
SubState=dead
MainPID=0
```

Exact `/proc`, FD and watcher scan:

```json
{"matching_fds":[],"matching_processes":[],"matching_watchers":[]}
```

No matching timers, cron/at jobs, or listening sockets were found.

## Archive and journal integrity

Cleanup receipt:

- Path: `.omo/evidence/task27/task27-live-cleanup-receipt.json`
- SHA256: `7848def41100aa4f4ef27239dfaae3cc634d5ad2b24df7966d4d80838f692a3a`
- Permission seal: `b7d9dd391735913915627e94a759095b9ae10aeb5086ac458e6af422327c7f94`
- Operation: `e90fcc341e9f49c2a2c57ce46dd50c12`
- Status: `COMMITTED`

Canonical customer archive:

- Manifest: `816a59cca0bf2f652270673af6842e5d4ad9b6a41f93810d682f374c12bc2704`
- Journal: `53a9bdbbadd49fab009c940e3ee512bf0f43d520491e7904613b5dbfb63a997e`
- All three archived files matched manifest size and SHA256.
- Journal chain valid: `prepared -> copied_verified -> source_pruned -> committed`.

Bootstrap archive:

- Manifest: `e4f5b5c9d376ad11bbcd9248f7293c5e8866189f0a7a055ba3c260781296049f`
- Journal: `9b431b6e4ccb5aa53267bc2a894b15c4c00574cdd9bcc5efb901bcc7ed24d23a`
- Source/archive digest equality:
  `e6d0a5b61178d8870878b6f275841f7da6d18353add8cd64282594a2ebb192f0`
- Journal chain valid through `committed`.
- Both archive trees: zero symlinks, zero writable entries; directories `0500`, files `0400`.

The migrated claim session is preserved in the immutable archive and bound to session `cb_mYUoMIsk_CRzSDKYpPE9dg`. Historical cleanup receipts were present and coherent:

- Post-lifecycle cleanup: `PASS`
- Profile reset: `PASS`, bootstrap covered, other profiles unchanged
- Task25 rehearsal archive: 23 scopes, digest `644d74b05bc8115f9e3aeeba035188da195a7de18f1bc737648931d64bf43bcf`

## Profile and evidence isolation

Other-profile snapshot exactly matches sealed preflight:

- Aggregate: `9096c74dac8583eb8186f37fcb15ac06ff13795269979af808dd0855d85b51b6`
- Quarantine profile: `eddf21f8b17b85a0002b1cb9bbdc7881dc1190efae0ed17a2e53d6b9a7bf7bcb`
- Physique Coach: `0b593d81c6a7b0e9ab18e3c0842e06188776c1f2a1bc6e4e08a920771800a899`

Delivered, prefreeze, and postfreeze-receipt roots each have:

- Root mode `0500`
- Zero writable paths
- Zero symlinks

No verifier-created temporary runtime remained.

## Reviews and trainer-free state

`.omo/evidence/task26/task26-v38-final-six-lane-review.json`

- SHA256: `b063e92d5c8e60de3067794edd68412c676ebbaf2b0f942793d6ee41dc15ddf6`
- Six reviewers: all `PASS`
- One candidate and one delivered root throughout
- `all_lanes_pass=true`
- `task26_complete=true`

Delivered runtime scan found:

- Trainer-named artifacts: `0`
- Python/JSON/YAML runtime files containing `trainer`: `0`

## Residual findings

- `.omo/evidence/task27/receipt-hashes.sha256` is a **stale pre-authorization rehearsal manifest**: it expects controller hash `d57c...aa29`, while the authorized cleanup used controller `8aee...443`. It also predates and omits the authorized dry-run and cleanup receipt. I rejected this manifest and did not use it as proof. The current controller hash independently matches the committed cleanup receipt and ledger line 174.
- The earlier `NO_GO_PENDING_LIVE_CLEANUP` suspension receipt remains as historical evidence. Cleanup remediation is complete, but release-verdict reissuance remains gated on the parent’s complete fresh F1-F5 wave.
- Unrelated host Telegram services and old historical Task26 scratch artifacts exist, but exact candidate/profile process, FD, socket, watcher and scheduled-job scans are zero.

**Blockers: none for F5.** No source, profile, or evidence files were modified; no service, Telegram/provider, delivery, activation, commit, or push action occurred.