I read this as an independent onboarding-readiness audit - I will inspect the installed wheel and rehearsal evidence, run only isolated tests, then report an unconditional pass or concrete blockers.


I read this as an independent onboarding-readiness audit - I am completing isolated verification of lifecycle, activation, and routing controls.


I read this as an independent onboarding-readiness audit - I am returning the release decision.

**BLOCKERS — blocker_count: 2**

1. **Bootstrap state escapes the profile root.** A symlinked `<profile>/data` is accepted; `customer invite` writes its ledger outside the profile. This bypasses the profile-boundary protection enforced later by onboarding.

2. **Invite authority sources accept symlinks.** Symlinked `config.yaml` and `customers/registry.json` are accepted, letting external files determine the issued bot link and owner binding.

Verified in disposable, network-blocked wheel tests: token TTL/expiry, DM-only claim, single use, duplicate/capacity rejection, private draft rejection, consent/finalization/activation gates, and 9 lifecycle tests passed. Candidate authority and rehearsal evidence also passed.