---
title: "Rainbow Journey — carte complète : démarrage rapide, chaos, reprise en main"
subtitle: "Mega-récit digeste pour FG : tout ce qui compte depuis le premier piano jusqu'à l'essai UI 2a, sans omettre les preuves ni les trous"
date: 2026-09-15
time: "02:02"
author: VFG / Rainbow Journey
publishedBy: idea
status: pub
tags: ["rainbowjourney", "devblog", "synthese", "mega", "orchestration", "gameplay", "reprise"]
---

Ce billet est écrit **pour toi**, FG. Tu as avancé très vite au début, tu as traversé une phase de chaos (plusieurs modèles, deux POC, docs qui mentent, pubs qui 401, ports qui trompent), et tu reprends la main. Ici : une seule lecture longue qui regroupe **tous** les articles publiés sur ce projet jusqu’au 15 septembre 2026 au matin, sans inventer de validation manquante.

Si tu n’as que cinq minutes : lis la **carte en trois actes**, les **invariants qui ne bougent pas**, et la **checklist ouverte**. Le reste est la mémoire détaillée.

---

## Carte en trois actes

| Acte | Quand | Ce qui se passe | Sensation |
| --- | --- | --- | --- |
| **I — Démarrage rapide** | 12 sept. après-midi → soir | Un prompt → un jeu jouable ; Lot 1 hot-path ; session DP1 ; canon produit ; second POC Chromatic River | Accélération, preuves qui s’empilent |
| **II — Chaos** | Soir 12 → 14 sept. | Deux mondes en parallèle ; docs qui se contredisent ; auth blog ; multi-agents / multi-ports ; Lot 2.G dans un ordre différent du plan ; quotas modèles | Bruit, faux diagnostics, « tout est vert » ≠ « c’est jouable » |
| **III — Reprise en main** | 13 sept. nuit → 15 sept. matin | Frontière humain/agents ; Lot 2.F puis 2.G réellement câblé ; docs vivantes v2 ; stabilisation piano/fumée ; essai UI 2a ; bench + guide modèles | Tu tranches, tu mesures, tu recentres |

Repo : [FGDidou/RainbowJourney](https://github.com/FGDidou/RainbowJourney). Version applicative citée sur `main` : **0.1.0**. Blog live : [blog.vfg.lol](https://blog.vfg.lol) (catégorie `rainbowjourney`).

---

## Acte I — Démarrage rapide

### Le produit en une phrase

Rainbow Journey est une app **locale** (React / TypeScript / Vite / Three.js / Tonal / Zod) : tu joues au piano MIDI, le paysage répond, des suggestions apparaissent, tu peux relire **visuellement** ce que tu as joué. Pas de compte, pas de serveur applicatif pour les suggestions, pas de modèle distant dans la boucle de jeu. Chrome / Edge + Web MIDI. Mode Demo sans instrument.

Le piano réel utilisé : **Bird DP1**, 88 touches. Chaîne typique : MIDI OUT DIN → interface USB → PC. Le **son local du DP1 n’est pas filtré** par le logiciel (trajet OUT piano → IN interface → USB). Le soft est un miroir, pas un moteur audio de remplacement.

### Invariants posés dès le premier jalon (et toujours vrais)

- **MIDI OUT désarmé par défaut** ; armement = choix de port + action explicite ; jamais d’armement auto depuis import / preset / démo / replay.
- **Note Off attaché à l’attaque par FIFO** : même si la gamme change pendant l’appui, le relâchement suit la décision d’attaque.
- Sources **physiques / pointeur / démo** distinctes ; Panic + nettoyages (port, onglet, déco, relecture).
- Filtre gamme / masque : **sans transposition** ; note hors masque bloquée si filtre actif ; **hors gamme jouable** quand le filtre est off — **jamais de punition**.
- Suggestions : faits musicaux **distincts** des évocations subjectives ; aucune émotion universelle promise.
- Relecture : **visuelle uniquement** (pas d’audio, pas de MIDI OUT) ; journal source préservé.
- Libellés UI en **ASCII** ; documentation vivante en **français accentué**.

Runtime : singleton (Web MIDI, horloge logique ~25 ms avec avance sur note MIDI, journal, relecture). React via `useSyncExternalStore`. Particules / rubans hors de l’état React. Éditeur : dizaines de valeurs numériques + interrupteurs d’effets. Sessions JSON versionnées ; IndexedDB + localStorage ; snapshots ~5 s ; checkpoints manquants ; risque de perte de la dernière tranche.

### Premières preuves (12 sept. soir)

Sur le premier jalon documenté : **12** tests unitaires / 4 fichiers ; **4** Playwright ; tsc / lint / build OK. Bugs instructifs déjà nommés : berge miroir (normals), viewport mobile, timestamps liés au rendu (corrigé par horloge logique), ~3 FPS en Chromium **software** ≠ GPU D3D11.

**Non mesuré dès le début (et souvent encore ouvert)** : latence touche→son matérielle ; sessions 10–30 min en percentiles CPU/GPU/mémoire ; garantie 1080p60.

### Lot 1 — hot-path et robustesse

Après le tag `v0-astra-tango`, cible : densités MIDI réelles (~30 notes/s), 60 FPS sans GC hoquet, persistance sans perte.

Problèmes trouvés puis traités :

- `notify()` trop agressif → 88 touches qui se mettent à jour ;
- allocations `Vector3` massives par frame ;
- `filter().slice(-128)` coûteux ;
- settings Zod / effets lourds dans le journal ;
- IndexedDB open/close + `structuredClone` toutes les 5 s.

Correctifs marquants : boucles / caches 3D ; notify coalescé rAF + `notifyNow()` pour les actions user ; caches `notes` / `next` / `harmony` sur `dataVersion` ; `Key` mémoïsé ; intervalles 13–24 demi-tons en français ; stabilisation d’accords **40 ms** ; singleton IDB `rainbowjourney` ; coalescence settings ; a11y (ARIA, Escape, trap modal, ErrorBoundary ASCII).

Preuves Lot 1 : Vitest **25**/4 suites (contre 12) ; Playwright **8** (dont a11y) ; CI OK.

### Session collaborative piano réel

Branchement Bird DP1. Frictions produit : MIDI non persisté ; pas de reset global (Panic = notes seulement) ; suggestions trop denses ; « même note » trop présente ; textes peu lisibles.

Choix visuels : pas de cloches / arcs `sin(π)` ; **filaments d’eau** comme langage ; note tenue en bas puis coulée ; passerelle pleine largeur. Livré côté produit : AZERTY ; Accords on/off ; DEMO LIVE ; quotas montantes / équiv / descendantes ; `emotionCopy` + recherche émotions ; bande Safe ; TOP NOTES ; canon `GAMEPLAY.md`.

Process chaos déjà visible : itérations **sans commit**, puis rattrapage en **6 lots** chronologiques. Clôture citée : **52** unitaires + tsc ; E2E **non** rejoué sur la tranche visuelle.

Encore ouverts à ce stade : hologramme 3D (stub) ; scores « roguelike » non punitifs ; MIDI persist / reset / courbe vélocité ; DEBUG collab ; seuils silence / répétition.

### Canon produit (théorie → paysage)

- Tonique + gammes (majeur / mineur / penta+ / penta− / masque libre).
- Suggestions = **directions** (rôles), 2–4, diversifiées.
- Trois modes couleur ; faits ≠ évocations.
- Canon spatial : gauche/droite ≈ hauteur ; profondeur ≈ temps ; rayon tenu jusqu’à Note Off puis traînée ; silence = limite de phrase (seuils à trancher).
- **Safe** = visualisation de style (retour de notes / petits intervalles / stabilité de degré), **pas** un fail.
- Ambition scores % styles (méta) : non punitive, pas encore un système complet.
- Hologramme rivière : **intention documentée**, pas livré en 3D.
- Triple signal (intensité / émotion session / émotion motif) : direction, pas produit fini.

### Chromatic River — le jumeau de la même nuit

Même prompt, autre chaîne d’agents. Scène vénitienne / gondole. **Aucun son produit** par le soft. Palette **OKLCH** à L/C constants sur 12 pitch classes. Octave = 13ᵉ intervalle (≠ unisson). Degrés indexés en demi-tons (corrige un bug pentatonique). Fantômes : ~4 « forts » + filigrane ; 13 glyphes. Presets Aube / Nocturne. Stats d’enchaînements = miroir, pas score.

### Décision stratégique du face-à-face (22:45)

Deux POC, un prompt. Rainbow Journey = socle produit (TS, tests, CI, sessions). Chromatic River = scène forte, théorie précise, peu d’outillage.

À l’audit RJ, **trois défauts hot-path encore présents** malgré 60 tests verts cités :

1. notify logique toutes les **25 ms** même sans changement ;
2. stabilisation 40 ms dans un getter qui mute pendant le rendu (dépend du défaut 1) ;
3. rubans : 10 segments × plafond **1024** → au-delà d’environ **102** traces, ce sont les **récentes** qui perdent le ruban.

Décision : **garder RJ comme base** ; porter de CR la théorie / glyphes / bouées / fontaine ; canal vénitien = décor optionnel. Ordre : assainir hot-path → théorie → fantômes clavier → suggestions monde → décor → mesurer FPS (aucun des deux n’avait de mesure FPS fiable).

### Émotions et catalogue de paramètres

Recherche « science-informed » : consonance / tension / valence ; pas 12 émotions uniques garanties ; contour culturel ; majeur/mineur surtout occidental ; émotion = attente / tension / résolution. UI autorisée à dire souvent / tendance / parfois / contexte (indices ~70 / 60 / 50 / 40). **Refuse** « tristesse à 87 % ». Expression personnelle du joueur **prime**.

Catalogue croisé RJ/CR : 7 intentions + Expression 0–5 ; table intervalles ; 3 modes couleur ; réglages musicaux (tonic, scale, mask, radius, phraseGap, quotas…) ; **28** effets registre + 6 interrupteurs ; tables Aube/Nocturne CR ; descente = mélange ~82 % + lueur −15 %. Outil anti-drift, pas une promesse de ressenti.

### Orchestration de la première nuit

Chronologie approximative du 12 :

- GPT / Astra : socle RJ `v0-astra-tango` ;
- Copilot : Lot 1 puis finitions / HUD / devblogs ;
- Kimi : Chromatic River `v0-kimi` (créatif 3D, néglige tests) ;
- Claude Opus : contrats + vagues A/B/C d’audit CR (12 paquets étanches).

Quatre règles tirées : contrats **zéro chevauchement** de fichiers ; audit croisé ; boucle tsc / vitest / Playwright ; publication = `whoami` + Admin API (pas `git push` seul).

---

## Acte II — Chaos

Le chaos n’est pas « les agents sont nuls ». C’est la **perte de synchronisation** entre : ce qui est écrit, ce qui est mergé, ce qui est joué, ce qui est publié, et quel serveur tu regardes.

### Chaos publication

Le blog `blog.vfg.lol` est **dynamique**. Un `git push` ne recharge pas l’index live. Faux diagnostics en chaîne :

1. publish vers `127.0.0.1:5220` (admin local) au lieu du live ;
2. clone `RAPPORT-EXPERIENTIEL` en retard (pas `--live` / `--password`) ;
3. labels d’agents (`idea`, `kimi`…) ≠ secrets API — seul `whoami` tranche 401 vs 200.

Leçon : **sonde d’identité avant le Markdown**. Live et Git ont deux rôles. Ne pas auto-publier tous les handoffs (« tout rapatrier ≠ tout exposer »).

### Chaos « vert ≠ vrai »

Les audits le martèlent :

- Suites vertes RJ, mais bugs d’usage (IDB fermée trop tôt ; notify groupé trop lent pour les clics → `notifyNow`).
- Piège rendu software ~3 FPS.
- Protocole collab DP1 en **14 étapes** : MIDI non persisté, pas de reset global, vélocité à revoir, DEBUG manquant — priorités joueur, pas hotfix panique.
- CR : checks navigateur riches ; MIDI physique **non** vérifié (doublures) ; FPS faussé si la boucle est suspendue.
- Discipline obligatoire : **prouvé / observé / intention** — ne pas confondre.

### Chaos documentaire (~36 h, 56 docs, ~6000 lignes, 6+ modèles)

Constats d’audit :

- 634–850 lignes à lire avant le code ;
- TODO / HANDOFF périmés (G.10 / G.13 / G.16 encore « pas encore » alors qu’intégrés) ;
- HANDOFF qui cite 110 tests alors que `main` en a davantage ;
- codes Lot1 / A1 / H1 qui collisionnent ;
- pas d’`AGENTS.md` unifié au début ;
- `src/` plat ; settings touchés partout.

Errata connus : « Roland FP-1 » écrit par erreur → **Bird DP1** ; prompts « 89 tests » faux. Choix FG pour la sortie : archive par lot ; zones **sans** déplacer les fichiers tout de suite ; une source multi-outils ; FR accentué hors UI.

### Chaos Lot 2.G

Le journal du 13 à 04:30 annonce 2.G en **phase 0** : PR draft #6–#9, merge prévu **A3 → A4 → A2 → A1**, ports worktrees 5178–5181, duo Kimi/Cursor (GLM retiré).

L’ordre **réel** d’intégration fut **A3 → A2 → A1 → A4**. A4 avait besoin d’un raccord orchestrateur dans `runtime.ts` (`83c2ebc`). Sans ce câblage, l’historique multi-attaques pouvait exister en module **sans** être consommé par la boucle de jeu — feature « livrée » mais morte.

Contenu réellement sur `main` :

| Code | Canon | Livré |
| --- | --- | --- |
| A3 | G.13 | Vérification documentaire des axes — **pas** un nouveau rendu 3D |
| A2 | G.10 | Scores de style / ambiance non punitifs |
| A1 | G.16 | Hot-path partiel (mesures CPU ≠ perception GPU) |
| A4 | G.6 | Historique multi-attaques + cache suggestions, câblé runtime |

### Chaos ports et checkouts

Le 14 septembre, `5173` a servi un **autre** projet (« notes-blocs ») pendant que l’essai Rainbow Journey devait tourner sur **`http://localhost:5183/`**. Playwright est passé en serveur isolé 5183. Diagnostiquer le mauvais checkout = chaos silencieux.

Collision Windows : `degreeCorridors.ts` vs `DegreeCorridors.tsx` sur FS insensible à la casse → renommage `corridorHelpers.ts`.

### Chaos quotas modèles

Benchmark du soir 14→15 : 5 tâches × modèles ; **10 OK + 5 fails** quota « Other Models ». Self-reports `LLM_STATS_V1` (chars/4) = **boussole**, pas facture. Totaux 10 OK cités : ~660 s murales, ~82 k tok in estimés, ~6,7 k tok out, ~110 k chars, 83 outils. Claude lean sur T1/T2 ; Grok lourd sur audits ; paires gpt/claude seulement sur T1–T2 avant bascule forcée.

---

## Acte III — Reprise en main

### Frontière humain / agents (nuits du 13)

Tu as écrit la règle claire :

1. **Ralentir** → jouer → trancher → accélérer.
2. Agents : ce qui est **spécifié et vérifiable** (persist MIDI, courbe vélocité, DEBUG SSE, tests, baseline perf, HUD mobile…).
3. Toi : oreille, œil, préférences produit, quiz DP1, feeling trail/bloom, hologramme / fusion CR **après** fondation jouée.

Lot **2.F** livré dans la nuit : P1 persist entrée MIDI ; P2 vélocité → taille/opacité ; P3 DEBUG overlay + SSE borné (200 events) ; P4 sauté (déjà couvert mobile) ; P5 baseline CPU. Extras : palette OKLCH + `ghostRank` ; dés / socles / notice enfant. Chiffres cités à 04:30 : Vitest **110/110**, Playwright **10/10**.

Ce qui restait volontairement humain : suite quiz DP1 ; périmètre reset (P6) ; retests feeling ; seuils motif / hologramme.

### Documentation vivante v2

Le plan d’archive vivante a été **exécuté puis mergé** : séparation vivant / archive / journal / zones / catalogues ; `docs:test` **33**/0 ; `docs:check` 0 erreur / 14 warnings d’empreintes d’archives ; index stables ; navigation racine corrigée vers STATUS, CHANGELOG, ARCHITECTURE, TESTS, ROADMAP… Release de la **base de travail** documentaire — distincte de la publication blog live.

### Stabilisation ingame (14 sept.) — crédibilité du doigt

Objectif : ce que tu touches doit être vrai.

| Symptôme | Correction |
| --- | --- |
| Touches mortes (skin invisible) | Surface cliquable + focus clavier |
| Passerelle non cliquable | Même clavier interactif projeté (3 skins) |
| Double réaction | Eau décorative ; fumée = trace de note |
| Fumée qui saute au Note Off | Continuité géométrique puis déplacement |
| Particules malgré zéro | Zéro = zéro instance |
| MIDI qui « revient » | Numéro de requête ; anciennes ouvertures ignorées |
| Suggestions qui recalculent | Cache hors horloge, lié aux faits musicaux |

Bouton **Piano et fumee** : profil lisible (pas d’armement MIDI caché).

**Écoulement continu** : tête qui avance, queue au clavier pendant l’appui ; après Note Off, mêmes distances aux deux extrémités ; vitesse = `Vitesse du voyage × Ecoulement` ; eau et fumée partagent l’onde GLSL ; plafond **128** traînées ; anciens sliders « hauteur / attaque du jet » morts (nettoyage éditeur encore à faire).

Preuves handoffs : Vitest **154 → 159** ; Playwright **12 → 13** sur 5183 ; docs:test 33 ; pas de validation DP1 revendiquée.

### Essai UI in-game 2a — reprendre le visage du jeu

Branche `essai/ui-ingame-2a`. Cadre design 1280×800. **Sans** rewrite des axes Three.js « rivière qui monte ».

Livré en deux vagues documentées :

**Vague T1–T3**

- Topbar `RAINBOW` / `JOURNEY` (Cinzel), chip `DO MAJEURE · 7 DEGRES`, CSS scopé `.topbar`, témoin REC.
- `DegreeCorridors` remplace le Piano dans `Journey` (éditeur intact).
- `SuggestionStrip` ancré sur `laneCenterX` ; panneau DIRECTIONS masqué par défaut pour profils neufs ; **une** géométrie (`corridorHelpers`).

**Vague design complet (15 sept. 01:30)**

- `PouchRow` : pochettes 84×74 ancrées sur les couloirs, respiration du plus rempli.
- `RiverOverlay` SVG plein cadre : rubans de `y=800` à `y=150`, deux passes halo/courant ; `prefers-reduced-motion` coupe le flow ; **pas** de rewrite 3D.
- Panneaux `DERNIERE NOTE` / `JOURNAL` (accents `#52d6d1` / `#7cf59a`) branchés sur `runtime.lastNote` / `runtime.journal` ; `safePct` affiche `—` si aucun échantillon.
- D-STATE : `pouchCounts` / `climbers` / `lastNote` / `journal` + `settleClimbers` dans `tick()` sans réécrire le routage MIDI.

Contrôles cités sur cette vague : tsc / lint / build OK ; Vitest **215/215** (30 fichiers) ; Vite :5183 HTTP 200 ; **pas** Playwright sur cette passe. Hors livré : climbers DOM visibles ; pulse `rjFill` ; gate FG pixel 1280×800 ; migration layouts persistés ; push `main` sans ton ordre.

### Reprendre aussi l’orchestration des modèles

Le bench + le guide pratique te donnent une recette :

- **Claude** (si quota) : lecture ciblée, peu de fichiers.
- **Inherit / Composer** : fallback fiable hors Other Models.
- **Grok** : audits larges (coût contexte / durée).
- **GPT** : réflexion large **avec** budget fichiers imposé.
- Une tâche par agent ; paires A/B ; ≤2 parallèles si tu mesures ; plan de relance quota ; aligné `AGENTS.md` (ne pas charger journal / node_modules par défaut).

---

## Fil rouge — ce qui ne doit plus se diluer

1. **Le piano fait le son** ; le soft fait le miroir.
2. **Pas de punition** ; hors gamme autorisé selon filtre ; faits ≠ émotions.
3. **MIDI OUT** conscient ; FIFO Note Off ; relecture visuelle only.
4. **Vert automatisé ≠ joué** ; DP1 et feeling restent ta porte.
5. **Un serveur d’essai identifié** (5183 pour cet essai) ; pas le checkout du voisin.
6. **Publier = Admin API + mot agent** ; Git = miroir.
7. **Une géométrie de couloirs** partagée (suggestions, paquets, rivière SVG).
8. **Docs vivantes courtes** + archives datées ; errata plutôt que réécriture sournoise.

---

## Checklist ouverte (reprendre ici)

### Humain (toi)

- [ ] Suite quiz DP1 (intervalles → extrêmes → pédale → latence → enregistrement / relecture → accessibilité).
- [ ] Feeling : vélocité, bloom, styles Safe / explore, fumée / écoulement.
- [ ] Trancher P6 reset (périmètre exact).
- [ ] Gates visuels essai UI 2a (1280×800) : topbar, couloirs, suggestions, paquets, rivière SVG, panneaux.
- [ ] Décider si / quand merger `essai/ui-ingame-2a` sur `main`.

### Technique / produit encore ouvert

- [ ] Hologramme 3D (toujours vision / stub selon les billets).
- [ ] Climbers DOM + polish `rjFill` sur l’essai 2a.
- [ ] Nettoyage éditeur des paramètres morts (« jets »).
- [ ] Checkpoints session / perte dernière tranche.
- [ ] Mesures latence matérielle + sessions longues + FPS réel (pas software).
- [ ] Fork / portage sélectif Chromatic River (plan existant, hors urgences).
- [ ] Rotation / gestion secrets blog (caviardage doc ≠ rotation live attestée).

### Orchestration

- [ ] Respecter zones + contrats de fichiers.
- [ ] Vérifier quota Other Models avant vague gpt/claude.
- [ ] Ne pas confondre « PR draft » et « câblé dans runtime ».

---

## Chronologie condensée (aide-mémoire)

| Moment | Événement |
| --- | --- |
| 12 · 18:00 | Fondation RJ jouable documentée |
| 12 · 19:00 | Chaos auth blog (endpoint / clone / secret) |
| 12 · 20:30 | Lot 1 hot-path |
| 12 · 21:00 | Session DP1 / rivière joueur |
| 12 · 22:00–23:59 | Canon, CR, face-à-face, audits, émotions, catalogue, orchestration |
| 13 · 00:30 | Frontière humain / agents |
| 13 · 04:30 | Lot 2.F livré ; 2.G ouvert en PR |
| 13 · après-midi | Audit docs → plan archive vivante |
| 13 · 18:45 | Docs v2 validées / mergées / releasables |
| 13–14 | Lot 2.G intégré (ordre réel A3→A2→A1→A4, câble `83c2ebc`) |
| 14 · journée | Stabilisation piano / fumée / écoulement |
| 14 · soir | Essai UI 2a T1–T3 ; bench modèles |
| 15 · 00:45–01:30 | Guide modèles ; design 2a complet (pouch / river SVG / panels) |
| 15 · 02:15 | Ce mega-récit |

---

## Index des articles sources (tous)

Chaque point ci-dessus s’appuie sur ces billets (catégorie `rainbowjourney` sur le blog) :

1. [Du piano MIDI à une vallée qui écoute](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-rainbow-journey-du-piano-a-la-vallee-lumineuse.md.html)
2. [Publier n’est pas un git push](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-publication-blog-auth-et-articles-manquants.md.html)
3. [Lot 1 hot-path](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-rainbow-journey-lot-1-optimisations-et-robustesse.md.html)
4. [Session collab rivière / joueur](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-rainbow-journey-session-collaborative-riviere-joueur.md.html)
5. [Théorie → paysage](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-rainbow-journey-la-theorie-qui-devient-paysage.md.html)
6. [Chromatic River](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-chromatic-river-la-ville-qui-repond-a-vos-accords.md.html)
7. [Deux POC, un prompt](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-2324_deux-poc-un-prompt-rainbowjourney-face-a-chromatic-river.md.html)
8. [Deux rivières, un piano](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-deux-rivieres-un-piano-tableau-vivant.md.html)
9. [Recherches et audits](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-recherches-et-audits-ce-qui-a-ete-verifie.md.html)
10. [Orchestration multi-modèles](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-orchestration-agents-modeles-retro-et-guide.md.html)
11. [La partie émotions](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-la-partie-emotions.md.html)
12. [Catalogue paramètres](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-12-catalogue-parametres-emotion-visualisation-synesthesie.md.html)
13. [Humain vs agents](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-13-plan-travail-humain-agents-pourquoi.md.html)
14. [Journal Lot 2.F / 2.G](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-13-journal-journee-avancement-lot2f-lot2g.md.html)
15. [Audit docs archive vivante](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-13-audit-docs-archive-vivante-contexte-agents.md.html)
16. [Session finale docs v2](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-13-session-finale-architecture-docs-v2-merge-release.md.html)
17. [Lot 2.G vraiment intégré](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-14-lot-2g-integre-ce-que-la-nuit-a-vraiment-livre.md.html)
18. [Stabilisation piano / fumée / écoulement](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-14-stabilisation-ingame-piano-fumee-ecoulement.md.html)
19. [Essai UI 2a T1–T3](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-14-essai-ui-ingame-2a-topbar-couloirs-suggestions.md.html)
20. [Benchmark tokens / modèles](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-15-benchmark-agents-cursor-tokens-contexte-durees.md.html)
21. [Guide modèles Cursor](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-15-guide-modeles-cursor-taches-agentiques.md.html)
22. [Essai UI 2a design complet](https://blog.vfg.lol/devblog/posts/rainbowjourney/2026-09-15-essai-ui-ingame-2a-design-complet-paquets-riviere-panneaux.md.html)

---

## Phrase de clôture

Tu n’as pas « raté » la phase chaos : tu as produit trop vite pour que la mémoire tienne sans architecture. La reprise en main, c’est exactement ça : **une checklist humaine**, **un serveur connu**, **des docs qui ne mentent plus**, **un UI d’essai aligné sur un design**, et **des agents remis à leur place** — spécifier, mesurer, câbler, puis te laisser jouer.

*Miroir local : `RainbowPiano/docs/devblog/`. Ce billet ne remplace pas STATUS ni le quiz DP1.*