# Construire ton plan d'entraînement (guide auto-coaching)

Tu construis **ton propre** plan via l'API/MCP Goatching, à partir de **tes
données réelles**. Tu déposes un brouillon, tu le relis dans l'app, et **c'est
toi qui publies**. Ce guide condense la méthode ; suis-le pour un plan sûr et
utile.

> Principe n°1 : **minimiser le risque de blessure**. En cas de doute entre deux
> volumes, prends le plus bas. La progressivité prime sur l'ambition.

> **Point de départ rapide (optionnel)** : `generate_my_plan_draft` génère un
> premier jet déterministe (rampe/plafonds/variété calculés depuis ton
> historique réel) et l'écrit directement dans ton brouillon. Ce n'est qu'un
> point de départ : relis-le, ajuste ce que les chiffres ne capturent pas
> (blessure récente, contrainte de calendrier), puis publie toi-même quand tu
> es prêt.

---

## 1. Pars de tes données réelles (pas du déclaratif)

Avant de planifier, lis et calcule (via l'API : `GET /v1/profiles/$UID`,
`GET /v1/activities?user_id=$UID`) :

- **Volume réel** des 4 et 8 dernières semaines par sport (h, km, D+).
- **Plus longue sortie** (km et durée) des 30 derniers jours — c'est ton
  plafond de départ.
- **Régularité** : séances/semaine effectives, coupures récentes (> 2 semaines
  d'arrêt = reprends *sous* le niveau antérieur).
- **Blessures** du profil : toute zone citée = prudence spécifique (progression
  de volume encore plus lente).
- **Seuils** disponibles (FC repos/max, allure seuil, FTP) : n'utilise une cible
  que si la donnée existe (sinon le `validate` échoue).

## 2. Dimensionne (les chiffres qui comptent)

- **Rampe de charge** : +2,5 pt de CTL/semaine (débutant, reprise, > 45 ans,
  historique de blessure) à +3–5 pt/sem (confirmé sain). En pratique : volume
  hebdo **+5 à +10 % max**, pas chaque semaine.
- **Sortie longue** : **jamais > +10 %** de la plus longue des 30 derniers jours
  (garde-fou le plus étayé). Le D+ suit la même règle en trail.
- **Décharges** : mésocycles **3:1** (3 sem de charge, 1 allégée à −40/50 % de
  volume, intensité conservée). **2:1** pour masters (> 45 ans), débutants, ou
  historique de blessure.
- **Repos** : ≥ 1 jour/semaine, toujours. 2 pour débutants/masters.
- **Affûtage** : 8–14 j (3 sem pour marathon/ultra), volume −40 à −60 %,
  **intensité et fréquence maintenues**, décroissance progressive.
- **Écart cible/réel** : si l'objectif de volume est loin du réel, NE planifie
  pas la cible d'emblée — monte à la rampe ci-dessus, quitte à ne l'atteindre
  qu'à mi-plan.

## 3. Distribution d'intensité (selon niveau et volume)

| Profil | Distribution |
|---|---|
| Débutant, < 3–4 h/sem | Quasi tout facile (Z1–Z2) + 1 touche de qualité/sem |
| Intermédiaire | Pyramidal (beaucoup Z2, du seuil, peu de Z5) |
| Confirmé, volume élevé | Base pyramidale → polarisé (~80 % facile) en spécifique |

Séances dures : **max 2/semaine**. Débutants purs : run-walk, temps plutôt que
distance. Alterne dur/facile (monotonie faible).

## 4. Périodisation

`base` (volume Z2, force) → `build` (seuil, côtes, allure course) → `peak`
(simulation, plus longue sortie) → `taper`. Mésocycles de 3–4 semaines avec
décharge intégrée.

**Trail/ultra** : le vrai stress est la **descente** (dommages excentriques =
facteur limitant n°1). Intègre progressivement des descentes courues, de la
marche rapide en côte, du D+ progressif. Sur ultra, entraîne l'alimentation
(jusqu'à ~90 g glucides/h).

## 5. Rends-le ludique (varié)

Même qualité, formes différentes, d'une semaine sur l'autre :
- **VMA/Z5** : 30/30 → côtes courtes → 400 m → fartlek pyramidal.
- **Seuil** : 2×15 min → 3×8 min → 20 min progressif → cruise 5×5 min.
- **Endurance** : nature vallonnée → plat cadence → progressive Z1→Z2.
- **Repères** (identiques toutes les 3–4 sem, athlète frais) : ex. « Repère —
  5×1000 » pour objectiver la progression.

Évite d'incrémenter bêtement les répétitions (8×400 → 10×400 = ennui).

## 6. Le contrat PlanDoc

Unités canoniques : durée en **secondes**, distance en **mètres**, allure en
**sec/km**, puissance en **watts**, FC en **bpm**, RPE 1–10. Schéma complet :
`goatching.fr/plan.schema.json` ; exemple : `goatching.fr/plan.sample.json`.

- Cibles : `zone` (1–5, résolues depuis ton profil), `range` {low, high} ou
  `value`. `pace`/`power`/`hr` seulement si la donnée de seuil existe.
- Jours de repos : un workout `sport: "rest"`, ou un jour sans séance.
- Si `availability` est renseigné dans ton profil, ne planifie que sur ces
  jours (sinon le `validate` refuse).

## 7. Garde-fous serveur (le `validate` les vérifie)

Volume hebdo ≤ objectif × 1,15 ; ≥ 1 jour de repos/semaine ; cibles de zones
calibrées ; tailles bornées (≤ 1000 séances, ≤ 50 répétitions/bloc, …). Une
violation = à corriger avant publication. Le `validate` **flague** pour te faire
réfléchir — traite chaque alerte, ne la contourne pas.

## 8. Signaux d'alarme (mets-les dans les descriptions)

- Douleur qui **modifie ta foulée** = stop immédiat.
- Douleur qui persiste **> 24–48 h** après une séance = réduis.
- Sommeil 7–9 h = levier de récupération n°1.

---

Flux MCP typique : `get_my_profile` → `list_my_activities` → (construis le
PlanDoc) → `create_my_plan` → `update_my_draft` → `validate_my_plan`, puis
**relis dans l'app et publie toi-même**. Ne publie jamais sans t'être relu.
