Aller au contenu
Chapitre 11

Le brain fabrique

22–24 mars 2026

Chapitre 11 — Le brain fabrique

Sources vérifiées : git log Super-OAuth 2026-03-22→24 (34 commits) · git log OriginsDigital (6) · git log TetaRdPG (55) · git log Clickerz (9) · git log Sakuin 2026-03-25 (2) · git log brain : 0 commits Le brain repo n’a aucun commit sur cette période. Toute l’activité est dans les projets. C’est la preuve.


Dix jours que le brain se construit lui-même. Agents, protocoles, kernel, distribution, vitrine. Mais un système de coordination qui ne coordonne rien, c’est un jouet. Le jour 11, la question change : est-ce que le brain sait fabriquer ?

La réponse arrive en trois jours. Quatre projets. Quatre déploiements. Et zéro commit dans le brain repo. Le brain n’a pas besoin d’être modifié pour fonctionner. L’infrastructure est en place.


SuperOAuth — le moteur d’authentification

SuperOAuth ouvre le bal le 22 mars. Le brain connaît le projet depuis le jour 1 — c’est le moteur d’authentification, le service qui permet à tous les autres d’exister.

En une journée : tenant dynamique avec validation DB et cache Redis, serveur d’autorisation PKCE complet (/oauth/authorize + /oauth/token), frontend SvelteKit avec landing, dashboard, et six sections de docs. Le tout déployé en prod.

512d2d2 (22 mars 15:53) — feat(pkce): authorization server — /oauth/authorize + /oauth/token e99cc69 (22 mars 15:54) — feat(frontend): SvelteKit dashboard + landing + docs

Le soir, le système email sovereign apparaît — vérification d’email avant activation, merge de comptes par token. L’authentification n’est plus seulement sociale — elle est souveraine.

10fbc3c (22 mars 17:59) — feat: email sovereign accounts — verify email before activation, merge via token

La nuit du 22 au 23, dix fixes prod en rafale. Cascade save qui ne persiste pas les relations. Dashboard qui crash quand l’email est null. Unlink provider via DELETE direct au lieu d’un cascade save foireux. Duplicate nickname sur création OAuth. Le genre de bugs qu’on ne trouve qu’en prod, avec de vrais utilisateurs (même si l’utilisateur c’est toi sur tes propres projets).

9af5876 (23 mars 02:02) — fix: unlink provider uses direct DELETE instead of unreliable cascade save

30 commits. Un serveur d’authentification PKCE complet. En prod.


Les quatre clients

Puis la vraie démonstration : brancher les projets sur SuperOAuth. Le 24 mars, en une après-midi, deux projets reçoivent le login PKCE — OriginsDigital l’a depuis la veille, Sakuin suivra le 25.

OriginsDigital — une plateforme vidéo — reçoit le flow PKCE E2E en quatre providers (Discord, GitHub, Google, Twitch). Six commits, pipeline CI/CD.

TetaRdPG — un RPG web — reçoit le login à 13h01. Fix localStorage pour le PKCE verifier (cross-site redirects). Ajout Twitch comme quatrième provider. Déployé VPS.

8c6777c (24 mars 13:01) — feat: PKCE auth + CI/CD deploy

Clickerz — un idle game — même pattern, même heure (13h01 aussi — démarré en parallèle). Quatre providers. Settings page pour lier et délier. Save serveur autoritatif. Multi-tab sync.

91d1616 (24 mars 13:01) — feat: PKCE auth + CI/CD deploy

“chaque projet = un tenant SuperOAuth. Zero friction auth.”

Le pattern se répète tellement qu’il deviendra un toolkit : PKCE client, tenant bootstrap, token introspection NestJS — extraits en templates le 5 avril. Ce qui prenait un jour pour le premier projet ira plus vite pour les suivants.


TetaRdPG explose

Après le branchement auth, TetaRdPG ne s’arrête pas. L’après-midi du 24 mars est un marathon.

Sprint 4 : 15 achievements, trois community goals, hall of fame, profil joueur. Sprint 5 : système de quêtes complet — accepter, progresser, réclamer, arcs narratifs. Quêtes répétables hors pool. Rebalance endurance/damage/XP. HUD barre persistante. Système de soins renommé. Page achievements.

7651f3d (16:34) — feat(sprint5): quest system + arcs + rebalance endurance/damage/xp cfdc5c9 (17:03) — feat: HUD bar — stats persistantes sous le header

20 commits entre 13h et 17h36. Le game designer — un agent forgé pour l’occasion — structure les mécaniques pendant que le code suit.


Clickerz mûrit

Le même après-midi, Clickerz reçoit son save serveur avec autorité. Le game state ne vit plus seulement dans le navigateur — le serveur fait foi. La synchronisation multi-onglets arrive : save on blur, reload from server on focus. Un délai de 500ms pour laisser le blur finir avant le focus reload.

8ce54bf (14:30) — feat: server-authoritative save — wait for server before game starts 79ac1b0 (14:43) — feat: multi-tab sync — save on blur, reload from server on focus

Et un garde-fou crucial : ne jamais sauvegarder l’état par défaut sur le serveur. Si le jeu n’a pas fini de charger, ne pas écraser la progression avec un state vide.


Sakuin — de l’idée à la prod

Le cinquième projet arrive le 25 mars, après les trois jours de feu. Sakuin — un tracker manga gamifié pour un ami qui ne sait pas encore que ça existe.

f1cff74 (25 mars 01:43) — init: scaffold complet Sakuin — backend NestJS + frontend SvelteKit + CI/CD + deploy VPS 108f021 (25 mars 02:43) — feat: Sprint 1 core tracker + SuperOAuth PKCE E2E

Scaffold et deploy VPS dans le même commit. Sprint 1 une heure après — core tracker avec PKCE E2E. Deux commits. Un projet en prod avec login, de zéro.

Sakuin n’est pas juste un projet de plus. C’est la preuve que le pattern fonctionne : du “j’ai une idée” au “c’est en prod avec login” en une session. Pas parce que le code est simple — parce que le brain connaît la stack, les agents savent déployer, le toolkit porte déjà le consumer SuperOAuth NestJS et les workflows de deploy.


Fin du troisième jour. Le tableau de bord :

SuperOAuth     → serveur PKCE complet, email sovereign, 30 commits, 10 fixes prod
OriginsDigital → E2E 4 providers, pipeline CI/CD
TetaRdPG       → 55 commits le 24 mars (20 entre 13h01 et 17h36), quêtes + achievements + HUD, déployé VPS
Clickerz       → save autorité, multi-tab, 4 providers, déployé VPS
Sakuin         → de zéro à prod en 2 commits (25 mars)

Et dans le brain repo : zéro commits. Le brain n’a pas eu besoin d’être touché. L’infrastructure était prête. Les agents savaient quoi faire. Le kernel tenait. C’est la différence entre un outil qu’on utilise et un système qui fonctionne.

Le brain n’est plus un projet. C’est un multiplicateur. Chaque heure investie dans le kernel — les agents, les toolkits, les protocoles — se rembourse à chaque nouveau projet. L’infrastructure invisible qui rend le reste possible.

“j’en ai rêvé, le brain l’a fabriqué”


Ce qui a été construit

  • SuperOAuth PKCE server — authorization server + SvelteKit frontend + email sovereign (512d2d2→e8f5cc8, 22-23 mars)
  • 4 clients PKCE — OriginsDigital (22-23 mars), TetaRdPG et Clickerz en une après-midi, (+ Sakuin le 25) (8c6777c+91d1616, 24 mars 13:01)
  • TetaRdPG Sprint 4+5 — 15 achievements, quêtes + arcs, HUD, 17 commits (8ee5080→4d25469, 24 mars)
  • Clickerz — save autorité, multi-tab sync, settings providers (8ce54bf→8cc9fda, 24 mars)
  • Sakuin — de zéro à prod en 2 commits (f1cff74→108f021, 25 mars)

Décisions clés

  • Un tenant, un projet. Chaque application = un tenant SuperOAuth. Le pattern d’auth est résolu une fois pour toutes.
  • Toolkits extraits. Les patterns récurrents deviennent des templates réutilisables. Le cinquième projet profite des quatre premiers.
  • Le game designer. Un agent spécialisé forgé pour TetaRdPG. Le brain ne code pas les mécaniques — il les pense d’abord.
  • De l’idée à la prod en une session. Sakuin prouve que l’infrastructure brain transforme le ratio effort/résultat. Le goulot n’est plus technique — il est créatif.
  • Zéro commit brain. L’infrastructure est prête. Les projets avancent sans toucher au kernel. C’est le test ultime.

Citations

“chaque projet = un tenant SuperOAuth. Zero friction auth.”

“j’en ai rêvé, le brain l’a fabriqué”