# Journal de reprise

Ce fichier dit **où en est le travail et comment reprendre**. Il reste court : un lot fini y laisse
une note datée à la fin (§7), et quand le fichier dépasse quelques centaines de lignes, les notes
closes partent dans un journal d'archive daté (`archive/journal-AAAA-MM.md`). L'historique jusqu'au
30/10/2026 est dans [l'archive d'octobre](/archive/journal-2026-10). Les plans disent quoi faire et
pourquoi ([tableau de bord](/)), le [registre des décisions](/decisions) dit ce qui a été tranché.

Dernière mise à jour : 02/11/2026.

## 1. Règles de travail

- Branche `main`, sans worktree ni nouvelle branche. **Rien n'est commité ni poussé par un agent** :
  l'utilisateur commite et pousse lui-même, ou le demande en toutes lettres, une fois à chaque fois.
- Une seule stack, pas de dépendance en double ; un seul système de types, défini dans `@recit/core`
  et dérivé des schémas zod ; tout Markdown a un jumeau JSON typé, testé dans les deux sens
  (`AGENTS.md`).
- Les sources de récits (`examples/**/*.md|mdx`, `sites/*/stories/**`) ne passent jamais par oxfmt ;
  jamais de `pnpm fix` sur tout le dépôt.
- Plusieurs agents travaillent souvent en même temps sur le même arbre : relire un fichier juste
  avant de l'écrire, ne jamais défaire un changement qu'on n'a pas fait
  ([20 · Exécution multi-agent](/20-multi-agents)).
- À la racine du dépôt ne restent que `README.md`, `AGENTS.md` (et `CLAUDE.md`, un lien vers lui) et
  `LICENSE.md`. La documentation des contributeurs est dans `.github/`, les audits dans
  `sites/plans/audits/` ([page Audits](/audits)), les plans ici.

## 2. Où en est le projet

| Bloc                                                   | État                                                                               |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------- |
| P0 à P4 : fondations, deck, sites, modèle, motion      | ✅ 24 et 25/10                                                                     |
| Audit technique (163 constats, 20 lots)                | ✅ écrit le 25/10, lots menés du 25 au 27/10 (archive, §6)                         |
| Plan 18, applications desktop et mobiles               | ✅ lots APP0 à APP11, 29/10                                                        |
| Plan 19, style Mantine et CSS modules                  | ✅ 30/10                                                                           |
| Plan 21, tests et Storybook                            | ✅ 30/10                                                                           |
| Audit de design (44 constats)                          | ✅ 30/10 ; D-02 et D-34 corrigés le 30/10, D-01 le 02/11                           |
| Déploiement Vercel des 7 sites                         | ✅ en production ; DNS et certificats en cours de propagation (§3)                 |
| Retrait du framework d'origine des licences et du site | ✅ 02/11, commité (`2d48673`)                                                      |
| Plans 22 à 29 (P5 à P12)                               | 📝 écrits le 02/11, statut « proposé » : à relire et accepter                      |
| **P5, l'alpha**                                        | prochaine phase, [22 · Alpha publique](/22-alpha) ; aucune publication npm sans go |

## 3. Depuis la dernière note de l'archive (30/10 au 02/11)

- **Vercel.** `scripts/vercel.js` (CLI épinglé en 65.7.0) : `pnpm vercel:login`, `vercel:project`
  (crée ou met à jour le projet `recit-<site>`, le relie au dépôt GitHub, `--domain`, `--deploy`),
  `vercel:deploy[:prod]` (build local puis `--prebuilt`, refus d'un arbre modifié en production),
  `vercel:domains`. Chaque `sites/*/vercel.json` porte `ignoreCommand: npx nx-ignore <site>`. Les
  sept projets sont en production. L'adresse git du dépôt est celle du compte Vercel (plan Hobby :
  un commit d'un autre auteur bloque le déploiement).
- **Domaines.** `recit.dev` est géré par les serveurs de noms d'IONOS (retour depuis Vercel DNS le
  02/11 à 19:45 UTC) : apex en `A 216.198.79.1`, sous-domaines en CNAME vers
  `<id>.vercel-dns-017.com`. Vercel les déclare tous valides. Le registre `.dev` garde les serveurs
  de noms 6 h en cache : jusque vers 01:45 UTC le 03/11, les résolveurs qui avaient appris
  l'ancienne délégation (Cloudflare 1.1.1.1 entre autres) répondent SERVFAIL ou NXDOMAIN, et les
  certificats de `docs`, `components`, `motion`, `plans` et `vision` attendent. `recit.dev` redirige
  vers `www.recit.dev` (308) : à inverser dans le projet `recit-www` si l'apex doit être l'adresse
  principale.
- **Audit de design.** D-02 (`hsla(var(--border))` invalide) et D-34 (halo de focus de `ui/Button`)
  corrigés le 30/10 (`01d04ef`) ; toutes les références Linux régénérées le 02/11 (1 476 tests, 558
  captures changées), ce qui règle D-01.
- **Retrait du framework d'origine (option B du 02/11).** Plus aucune mention de son nom ni de son
  éditeur dans les fichiers suivis : licences (© 2026 vguerand, plus la ligne d'emaki là où son code
  vit), READMEs, pied de page des sites (`© 2026 Récit · MIT License`), `NOTICE.md` réécrit, plans
  00 et 17 supprimés, commentaires et pages vision réécrits ; plan de version `prerelease` pour les
  12 packages publiés. L'historique git n'est pas réécrit.
- **Plans réorganisés (02/11).** Ligne de statut commune en tête de chaque plan, vérifiée par
  `scripts/check-plans.js` dans `pnpm check` ; tableau de bord dans l'index ; ce journal raccourci ;
  registre des décisions ; audits déplacés dans `sites/plans/audits/` (résumés sur la page
  [Audits](/audits)) ; fichiers de la racine rangés (§1) ; plans 22 à 29 écrits pour les phases P5 à
  P12.

## 4. Défauts connus et points ouverts

1. **La boucle de rechargement de `/index` (e2e `site-i18n`), cause trouvée le 02/11, pas encore
   corrigée.** Dans `examples/site-i18n`, la redirection `/` → `/index` et la page de doc `index`
   s'écrivent dans le même fichier, `dist/index.html` (`packages/site/src/vite/prerender/worker.ts`,
   nom de fichier calculé l. 33). Les workers prérendent en parallèle et le dernier gagne : quand
   c'est la redirection, `index.html` vaut `window.location.href="/index"` et se recharge sans fin.
   C'est la « boucle sans script » mesurée le 27/10 (archive). Correctif proposé : une page gagne
   toujours sur une redirection qui vise le même fichier, avec un avertissement au build et un test.
   Le même défaut peut toucher un site déployé.
2. **La réorganisation des plans du 02/11 n'est pas commitée** (le reste l'est jusqu'à `2d48673`).
   Un push sur `main` redéploie les sept sites.
3. Captures darwin d'avant la migration (STY9.3), à régénérer sur un Mac.
4. Avant/après des thèmes `warm-editorial` et `saas-product` : décision de l'utilisateur en attente.
5. Relecture des traits `inferred` de Broc (`annexes/broc/`).
6. Plans 22 à 29 à relire ; leurs questions ouvertes sont à l'utilisateur.

## 5. Suite, dans l'ordre

1. Commit de la réorganisation par l'utilisateur (point 2 ci-dessus).
2. Correctif de la collision redirection et page du prérendu (point 1), puis `pnpm verify:e2e`.
3. Relecture et acceptation de [22 · Alpha publique](/22-alpha), puis ses lots.
4. P6 à P12 dans l'ordre de [06 · Feuille de route](/06-roadmap), un plan accepté avant chaque phase
   : [23 · Report](/23-report), [24 · Webtoon](/24-webtoon), [25 · Book](/25-book),
   [26 · Roadmap](/26-roadmap), [27 · Calendar](/27-calendar), [28 · Stories](/28-stories),
   [29 · Version 1.0](/29-version-1).

## 6. Comment reprendre

1. Lire ce journal, puis le [tableau de bord](/) et le plan de la phase en cours.
2. Regarder l'état réel : `git status`, `pnpm check`, `pnpm test`, et `pnpm verify` avant de
   déclarer une phase finie.
3. Pour un travail à plusieurs agents, suivre [20 · Exécution multi-agent](/20-multi-agents) : un
   lot par agent, des fichiers attribués, une note ici à la fin de chaque lot.

## 7. Notes des lots

Chaque lot fini ajoute ici `### <lot> — <titre> — <date>` : ce qui est fait, comment c'est vérifié
(commandes et résultats), ce qui reste.

### PLANS — Réorganisation des plans et plans 22 à 29 — 02/11

- Ligne de statut en tête des 28 plans, `scripts/check-plans.js` (dans `pnpm check`, 5 tests) et
  tableau de bord généré dans l'index (`--write`) ; registre des décisions (46 lignes) ; journal
  coupé, l'historique dans `archive/journal-2026-10.md` ; audits dans `sites/plans/audits/` et page
  Audits ; racine réduite à `README.md` (qui reprend `context.md`), `AGENTS.md`, `CLAUDE.md` et
  `LICENSE.md`, le reste dans `.github/` ; `pets.md` archivé.
- Plans 22 (alpha) à 29 (1.0) écrits par quatre agents d'après le code, statut « proposé ». Les
  écarts qu'ils ont relevés avec `08` sont listés en tête de `08` ; les autres sont corrigés
  (`SETUP.md`, `03`, `15`, `AGENTS.md`) ou restent des questions ouvertes de leur plan.
- Corrigé au passage : le modèle de rendu motion s'appelle `film` dans l'aide de `recit convert`, la
  référence CLI des docs, le README et `describe_format` de `@recit/mcp` et la description de
  `@recit/motion` (plan de version `version-plan-cli-convert-film`).
- Vérifié : `pnpm check` vert ; tests de `scripts/`, du CLI et du MCP verts ; typecheck de
  `@recit/mcp`, `@recit/site-kit`, `@recit/cli` ; références de `site-plans` régénérées (12 pages
  ajoutées à `ALL_PAGES`), puis `e2e/site-plans.spec.ts` rejoué : 90 passés. `site-docs` et
  `site-motion` inchangés.
