2.9 KiB
2.9 KiB
Phase 3 Gate
Do not build the Dockerized web app until these checks are complete.
Local Evidence
Run:
uv run python scripts/local_check.py
Required result:
- All local checks pass.
debug/local_checks.jsonis written.
This proves only that the checkout is internally consistent. It does not prove Garmin account, Garmin Connect, or Edge 1030 behavior.
Garmin Account Evidence
Run:
uv run python scripts/probe_garmin.py report --dump-json
Required result:
- Garmin login succeeds, including MFA if required.
debug/probe_report.jsonis written.- Normal workouts are visible or the report clearly records why they are not.
- Coach/adaptive plan discovery either finds a matched workout for today/tomorrow or clearly shows that step extraction is missing.
Optional offline analysis:
uv run python scripts/analyze_dump.py debug/coach_workout_today.json --date today --clone-dry-run
If Coach tasks are visible but no step arrays are found, run:
uv run python scripts/probe_garmin.py coach-endpoints --date today --dump-json
Required result for exact cloning:
- At least one response contains
workoutSegmentsorworkoutSteps.
Current account evidence from June 16, 2026:
- The active
FBT_ADAPTIVEcycling Coach plan is visible. - The
Sprintworkout is visible as a dated Coach task and calendar item. - Browser network analysis found
/gc-api/workout-service/fbt-adaptive/<workoutUuid>, which returnsworkoutSegmentsandworkoutSteps. - CLI access works through the equivalent Connect API route
/workout-service/fbt-adaptive/<workoutUuid>. clone_today_workout.py --dry-runsucceeds from the CLI and preserves the visible step structure.
Edge 1030 Evidence
Run:
uv run python scripts/probe_garmin.py dummy --date tomorrow --schedule
Then sync and test on the Edge 1030.
Required result:
- Dummy workout appears in Garmin Connect.
- Dummy workout appears under
Training > Workouts. - Dummy workout appears under
Training > Training Plan > calendar icon > scheduled date. - Dummy workout can start while normal Edge navigation is active.
Clone Evidence
Only run if Coach/adaptive inspection shows plausible steps:
uv run python scripts/clone_today_workout.py --date today --dry-run --dump-json
uv run python scripts/clone_today_workout.py --date today --schedule
Required result:
- Dry-run payload passes local validation.
- Scheduled clone appears in Garmin Connect.
- Scheduled clone appears on the Edge 1030.
- Clone can start while normal Edge navigation is active.
Decision
Build Phase 3 only if either:
- Dummy scheduling and Coach clone scheduling both work, or
- Dummy scheduling works and we explicitly choose a fallback architecture because Coach extraction is unavailable.
If dummy scheduling fails, fix or replace the Garmin Connect scheduling path before building the web app.