# 04 — Endpoints Markdown par page (`.md`)

> **Spec** : Per-page Markdown source endpoints — tier **recommended**
> **Verdict** : 🔴 **FAIL** · **Priorité : P2**
> **Effort estimé** : 0,5-1 jour (le pipeline markdown existe déjà — preuve : `/llms-full.txt`)

## Constat

- `/tarifs.md` → **404** ; `/blog/nouvelles-especes-frelons.md` → **404** (les pages HTML correspondantes existent en 200).
- Aucun `<link rel="alternate" type="text/markdown">` dans le head (18 balises `<link>` énumérées sur l'accueil, zéro de ce type).
- Pas de négociation de contenu `Accept: text/markdown` (hors de portée d'un site statique, et non exigé — le suffixe `.md` suffit à la spec).

## Pourquoi c'est applicable ici (pas un N-A)

Le site **génère déjà du markdown propre depuis son contenu Gatsby au build** — `/llms.txt` et `/llms-full.txt` en sont la preuve. Émettre un `.md` par page est un coût marginal, pas une capacité à construire. Bénéfice : un agent qui veut le contenu d'une page précise (l'article frelons, la page tarifs) récupère la source propre en une requête au lieu de parser 240 Ko de HTML Gatsby — moins de tokens, moins d'erreurs d'extraction, plus de chances d'être cité fidèlement.

## Correctif

1. **Au build Gatsby**, pour chaque page à forte valeur (a minima : articles de blog, pages services, `/tarifs` ; idéalement les 665), émettre `public/<slug>.md` à côté de `public/<slug>/index.html`, depuis la même source markdown que `llms-full.txt`.
2. **Servir avec le bon type** — sur Vercel (`vercel.json` ou `vercel.ts`) :
   ```json
   { "headers": [{ "source": "/(.*).md", "headers": [{ "key": "Content-Type", "value": "text/markdown; charset=utf-8" }] }] }
   ```
3. **Déclarer l'alternate dans le head de chaque page** :
   ```html
   <link rel="alternate" type="text/markdown"
         href="https://www.abc-guepes.com/tarifs.md"
         title="Tarifs — source Markdown">
   ```
4. Référencer la convention dans `/llms.txt` (« chaque page est disponible en markdown en ajoutant `.md` à son URL »).

## Vérification

```bash
curl -sI https://www.abc-guepes.com/tarifs.md                        # 200, text/markdown
curl -s  https://www.abc-guepes.com/blog/nouvelles-especes-frelons.md | head -5   # markdown propre, pas de HTML
curl -s  https://www.abc-guepes.com/tarifs | grep 'text/markdown'    # link rel=alternate présent
```
- Cohérence : le contenu du `.md` = contenu de la page HTML (générés depuis la même source).
