endurance-coach-config-and-flagslisted
Install: claude install-skill maxeskell/personal-training-app
# Endurance Coach — config and flags
**Use this when** you need the effect, default, consumer file, and safety class of any environment
variable / feature flag in this repo; when adding a new flag (the definition-of-done); or when auditing
whether config has drifted (a var read in code but undocumented, or documented but dead).
**Don't use this when** the task is *operating* the app (starting the dashboard, `npm run ship`, the
launchd services) → **`endurance-coach-run-and-operate`**; or *setting up from a fresh clone*
(Node/OAuth/Garmin auth) → **`endurance-coach-build-and-env`**. This skill is the catalog and the
add-a-flag/drift discipline, not the runbook.
Repo root everywhere below: `/Users/maxeskell/dev/personal-training-app`.
---
## Jargon, defined once
- **env var / flag** — a `NAME=value` line in `.env` (gitignored; copy from `.env.example`) or exported
in the shell. The app reads it via `process.env.NAME`.
- **`config.ts`** — `src/config.ts`, the central typed config object. It is the *primary* parser: it
reads most env vars, applies defaults, and exports a frozen `config`. A handful of files read
`process.env` directly by design (listed below) — `config.ts` is not the *only* parser.
- **safety class** (this skill's column): **production** = safe default, meant to be tuned; **advanced**
= works but you must know what you're doing (local LLM, embeddings, tunnels); **security** = widens the
attack surface if set — safe default is OFF/localhost.
- **MOD