endurance-coach-change-controllisted
Install: claude install-skill maxeskell/personal-training-app
# Endurance Coach — change control (the constitution)
**Use this when** you are about to change ANY code, config, doc, profile field, or write path in this
repo — to classify the change and route it through the right gate before you commit.
**Don't use this when** you need to *operate* the app (ship mechanics, services → `endurance-coach-run-and-operate`),
*diagnose a live break* (`endurance-coach-debugging-playbook`), check *whether a past fix already settled a
question* (`endurance-coach-failure-archaeology`), or prove a *statistical* finding
(`endurance-coach-validation-and-qa`, `endurance-coach-n1-validation-campaign`).
The repo is a **local-first, single-athlete AI endurance coach** at
`/Users/maxeskell/dev/personal-training-app` (TypeScript, ESM, Node ≥20, run via `tsx`; no database, flat
JSON under `data/`). Jargon defined once as it appears. Everything below is verified against the repo on
2026-07-04 — see **Provenance and maintenance** for the re-check commands.
---
## 0. The one-paragraph mental model
Every change lands the same way: **branch → make the change WITH its docs → run the green gate → commit →
ship.** Four gates stand in the way, and no change may route around any of them:
| Gate | What it protects | Where it lives |
|------|------------------|----------------|
| **Green-before-commit** | Nothing broken ships | `npm run typecheck && npm test` (must pass locally) |
| **Propose→confirm write gate** | No AI Endurance (AIE) write fires without explicit