I read this as a read-only forensic audit - I’ll inspect the rehearsal artifacts, independently validate receipts, rollback invariants, installed-wheel contents, and operation logs, then return an evidence-backed PASS/FAIL without touching live state.


The artifact summary is internally consistent so far; I’m now checking the stronger invariants directly rather than trusting `report.json`, especially receipt-directory deletion, snapshot byte restoration, replay denial, and what the wheel’s registry-evolution branch actually validates.


I read this as a read-only forensic audit - I verified the rehearsal artifacts and candidate bindings without edits or live actions.

## PASS

Evidence:

- **Success path**
  - `success/execution/phase.json`: `COMMITTED`
  - `success/ledger/authorization-consumed.json`: `CONSUMED / SUCCEEDED`
  - Activation receipt is valid v4: `version: 4`, `state: committed`, `recovery_required: false`.
  - Receipt audit, policy, customer projection, owner, and staff-membership digests recompute correctly.
  - Registry and receipt both bind `max_enabled_customers: 5` and candidate `ab3a61dd...81f7a`.
  - Installed production startup smoke completed in the recorded 12-stage success sequence.

- **All 12 fault cases**
  - Every case ends `ROLLED_BACK`.
  - Every authorization ledger is `CONSUMED / FAILED`.
  - Every activation receipt and its newly created `customer-activation-receipts` directory are absent.
  - All four protected preflight files match their recorded SHA-256 values after rollback.
  - For the 11 post-snapshot faults, snapshot bytes exactly equal restored live-shaped files; the `stop` fault occurs before snapshot creation.
  - Consumed ledgers make replay fail at reservation, leaving phase journals `ROLLED_BACK`.

- **Live bytes**
  - `report.json` records `live_source_unchanged: true`.
  - Independent comparisons found no protected-file mismatch in any rollback case.

- **Registry-evolution fix**
  - Installed `checkin_cli/customer_admin.py` SHA-256 is `027c03b4...75cd86`, exactly matching both the candidate wheel member and its installed `RECORD`.
  - Installed code contains the migration-only `allow_registry_evolution=True` validation followed by v4 receipt rebuilding and strict validation against the evolved registry.
  - Candidate wheel builds are reproducible: both SHA-256 `7651bc8b...c9d9af`.

- **No external/customer-facing operations**
  - Rehearsal report records `network_namespace: loopback-only`.
  - Controller postcondition rejects any network, Telegram, or provider event.
  - Execution targets are isolated rehearsal profiles; no live customer profile or live service was used.
  - No provider, Telegram, or customer-facing operation evidence was generated.

Primary summary: `.omo/evidence/nutricoach-v150-combined/task-v14r17-rehearsal/report.json` reports all 13 cases `PASS`.