I read this as a scoped test-repair task - I’ll inspect the Python/debugging guidance and the target module’s production seams, then modify only the authorized test file and verify the confirmed clusters without masking trainer-owned failures.


The target is currently coupled to a live home-directory package and several stale lifecycle shortcuts. I’ve also confirmed the worktree has unrelated in-progress changes, so I’ll preserve them and constrain all edits to the single authorized module.


Runtime evidence confirms three distinct stale-test causes: live package resolution, approvals created outside the mandatory Coach-v2 generation state machine, and date/UI assertions tied to obsolete surfaces. I’m moving into the scoped test-only implementation now, while leaving all trainer API failures untouched as the product lane’s RED set.


The repaired activation, reviewed-draft, customer-card, weekly lifecycle, owner-child, and initialized adaptive-service clusters now pass in isolation. I’m at the full-module verification phase to separate any remaining test defects from the intentionally untouched trainer RED failures.


I read this as a scoped test-repair task - the authorized test file is repaired and verified, with trainer-owned RED tests preserved.

Implemented only in `tests/gateway/test_nutrition_coaching.py`:

- Replaced live-profile imports with the repository-owned canonical profile package and readiness fixtures.
- Updated durable drafts to use genuine Coach-v2 generation, revision binding, approval, capability, and receipt lifecycles.
- Fixed deterministic KST dates, weekly reviewed-draft state assertions, child-draft approval, `button_rows`, schedule confirmation prerequisites, and real `AdaptiveOperatorService` initialization.
- Removed stale natural-language prose pins from repaired coverage.
- No production files, live state, skips, xfails, or commits touched.

Verification:

- Non-trainer module: **57 passed, 13 deselected**
- Full module: **57 passed, 13 expected trainer-owned failures**
- Ruff: passed
- Ty type check: passed with canonical profile search path
- Python compile: passed
- `git diff --check`: passed

Remaining expected product-lane failures:

- `test_trainer_route_is_exactly_isolated_from_customer_and_reserved_spaces`
- `test_private_trainer_menu_uses_live_assignment_and_opaque_customer_callback`
- `test_private_trainer_selection_rejects_group_and_wrong_trainer`
- Nine parameterizations of `test_trainer_launcher_accepts_human_friendly_commands_and_shows_customer_date`
- `test_registry_trainer_bridge_opens_scoped_trainer_session`

Architectural review: the file remains an inherited oversized gateway test suite at 2,344 pure LOC; splitting it was outside the exclusive one-file repair scope. New boundaries are typed, no error-suppression escape hatches were added, and the production-signature compatibility wrapper is the only justified high-parameter fixture seam.