endurance-coach-build-and-envlisted
Install: claude install-skill maxeskell/personal-training-app
# endurance-coach-build-and-env
**Use this when** you are bringing the coach up from zero — cloning, installing, getting `typecheck + test`
green, connecting AI Endurance (AIE) OAuth, optionally enabling Garmin, or unwedging a toolchain/account
problem that blocks setup.
**Don't use this when** the app already builds and you need to *run/serve/ship* it (see
`endurance-coach-run-and-operate`), look up an env var or add a flag (see
`endurance-coach-config-and-flags`), or triage a live data/OAuth failure on a running instance (see
`endurance-coach-debugging-playbook`).
Jargon, defined once:
- **AIE** = AI Endurance, the ML coaching platform this app reads its plan/thresholds/recovery from. The
**data spine** — required.
- **MCP** = Model Context Protocol, the tool-call transport the app uses to reach AIE and Garmin.
- **OAuth** = the browser-based login that mints and caches AIE access tokens.
- **tsx** = the TypeScript runner this project uses instead of compiling first; `npm run *` scripts are
`tsx src/…`.
- **ESM / Node16** = ES modules with Node16 module resolution (see `tsconfig.json`) — imports use `.js`
extensions even for `.ts` files. `"type": "module"` in `package.json`.
- **uvx** = the one-shot runner from Astral's `uv` Python tool-manager, used only to launch the Garmin
community connector.
> All commands below are copy-pasteable from anywhere — they `cd` into the repo first. The repo lives at
> `/Users/maxeskell/dev/personal-training-app` on the author's M