CONSTRUCTION / JOURNAL
Ce que j’ai construit,
commit par commit.
Un message de commit ne prouve rien à qui n’est pas dans le code. Un titre écrit librement ne prouve rien non plus. Ce journal fait la seule chose honnête entre les deux : il regroupe des commits réels sous des titres relus, et il garde la matière brute à un clic.
dépôts réellement lus sur 8 suivis. Les autres sont nommés plus bas.
Lire les décisions ↗La vue lisible regroupe les commits par chantier, avec un titre écrit et relu. La vue brute donne les messages de commit tels quels. Je ne vous demande pas de me croire sur le premier : le second est à un clic.
- Contributions
- 89
- Dépôts actifs
- 1 / 8 suivis
- Régularité
- 11 / 14 jours
Journal public des dépôts, filtrage du bruit appliqué.
Dépôts ayant au moins une contribution sur la période lue.
Jours portant au moins une contribution, sur l’étendue observée.
Il n’y a volontairement ici ni fréquence de déploiement, ni délai de mise en production, ni taux d’échec, ni temps de rétablissement. Ce dépôt n’a pas d’intégration continue : ces valeurs ne sont pas mesurées, et les afficher reviendrait à les inventer.
Fusion : scripts MyDAD, agent Clerk et reconstitution [skip ci]
1 commitScripts MyDAD : agent explicite vers l'API Clerk, deux-points échappé dans la reconstitution
1 commitFusion : MyDAD courriels sous marque et dossiers actifs comptés depuis le branchement [skip ci]
1 commitMyDAD : courriels sous marque, dossiers actifs comptés depuis le branchement, consolidation
1 commitFusion : V14 Juridiction, registre, juridiction de l'entité, pack France, plafond de chaîne de valeur [skip ci]
1 commitV14 Juridiction, passe finale : en-tête de proposition, revue d'allégation, bande d'engagements de l'accueil [skip ci]
1 commitVague V14 Juridiction : registre, juridiction de l'entité, refus explicite, balayages, obligation nationale, pack France, plafond de chaîne de valeur
1 commitContrôle avant compilation exécuté en environnement Node
1 commitRevue de la branche, vitesse, requêtes servies et nettoyage du dépôt
1 commitNoyau de distribution, familles DV et DM : pages problème, pages partenaires, règle éditoriale, badge, vitesse
1 commitNoyau de distribution, familles DK et DS : kit apporteur, grille, signal et diagnostic
1 commitExemptions typées pour la couche 14 et la console d'administration
1 commitCouches 9 et 14, contrôle d'administration, formation contextuelle et balisage ESEF
1 commitNoyau de distribution, famille DC : commission sur toutes les formules, relevés, registre horodaté, antériorité, convention version 3 publique
1 commitRelance de la compilation Vercel (echec transitoire du chargement de police Google)
1 commitRevue de securite : authentification, organisations, SSO, webhooks et SSRF
1 commitAcademy : AS11 (ADEC-19), examen renomme sans doublon, accents des pistes, textes des PDF et courriels
1 commitSuivi des dossiers actifs en administration, SEO et GEO du site public, dock Copilot fiabilisé [skip actions]
1 commitSO7 et SO2 : parcours au navigateur des pages publiques, registre v2 produit
1 commitSO7 : le Quick Check se fait au clavier
1 commitSO7, parcours clavier : repères de focus lisibles et bouton de retour en haut hors tabulation quand il est masqué
1 commitV13 Fondation : PS6, SO0, SO1, SO2, SO6, SO7, MD0, MD2, CGU 1.1, reprise de l'incident du 23/09
1 commitRègles de sécurité Gemini
1 commitReconstruction des modifications du 23/09 après la suppression : IRO-2 anglais, normalisation des réponses DifferenceBoard et ImpactBoard
1 commitSauvegarde du travail non commité restauré le 23/09/2026
1 commitRègles de travail pour Gemini CLI
1 commitLG0, passe de relecture : aucun code de langue brut à l'écran [skip actions]
1 commitLG0 : le concept canonique n'a pas de langue, INV-60 tenu et bloquant [skip actions]
1 commitFusion : recette MyDAD du 22 septembre, HOSMONY sans niveau [skip actions]
1 commitRecette MyDAD du 22 septembre : un superviseur HOSMONY ouvre VSME et CSRD sans niveau [skip actions]
1 commitFusion : retours de recette MyDAD du 21 septembre [skip actions]
1 commitRetours de recette MyDAD du 21 septembre : niveau N3/N4 strict, livrables toujours consultables, refus Clerk nommé [skip actions]
1 commitFusion : alignement du perimetre Afrique sur la refonte Europe [skip actions]
1 commitRemise a niveau sur main avant la fusion de l'alignement Afrique [skip actions]
1 commitLe module Afrique rendait au-dessous de l'Europe, écran par écran [skip actions]
1 commitFusion : onze pages publiques rendues lisibles sans compte [skip actions]
1 commitOnze pages proposées aux moteurs demandaient un compte pour être lues [skip actions]
1 commitFusion : ouverture commerciale Afrique, le contrat et les surfaces [skip actions]
1 commitLe balayage des surfaces exigeait un IBAN, pas un bénéficiaire [skip actions]
1 commitVirement : la pro forma nomme enfin le bénéficiaire [skip actions]
1 commitOuverture commerciale Afrique : le contrat qui manquait, et neuf surfaces qui mentaient [skip actions]
1 commitFusion : maintenance du week-end, correction juridique du plafond [skip actions]
1 commitPlafond de chaîne de valeur : le bon texte, le bon périmètre, et la fin du droit de refus général [skip actions]
1 commitL'accueil cesse de répéter le même gabarit dix-sept fois [skip actions]
1 commitL'accueil perdait tout son rendu serveur : cinq écarts d'hydratation, et la garde qui les refuse [skip actions]
1 commitCI désarmée, marche à suivre des tests en local, et nettoyage du dépôt [skip actions]
1 commitFusion : facturation finance, couche F9 [skip actions]
1 commitFacturation finance renumérotée F9 (F6 reste le mode due diligence) et alignée sur les hypothèses de prix de la roadmap Finance [skip actions]
1 commitFusion : chantier F6, facturation du portefeuille financeur [skip actions]
1 commitChantier F6 ouvert : facturation du portefeuille financeur à la contrepartie active [skip actions]
1 commitFusion : titre d'onglet, enseigne reposée après Next [skip actions]
1 commitTitre d'onglet : l'enseigne est reposée à chaque réécriture du titre par Next [skip actions]
1 commitFusion : essais en production, accents et titres d'onglet [skip actions]
1 commitEssais en production : textes servis accentués (risque physique, types de financeurs, confidentialité), titres d'onglet sans marque doublée [skip actions]
1 commitFusion : chantier Finance F0 à F5, noyau DR et arbitrage DEC-15 [skip actions]
1 commitPasse de vérification du chantier Finance (F0 à F5), corrections avant mise en production, et arbitrage DEC-15 rendu [skip actions]
1 commitCouche F5 livrée (portefeuille financeur) et fermeture des points ouverts F0 à F4, avec la reprise depuis le socle et la navigation par hubs [skip actions]
1 commitPasse de vérification DR et marque STRATA ESG sur tout le produit [skip actions]
1 commitNoyau de distribution, famille DR : le programme Terreau STRATA ESG et ses deux voies [skip actions]
1 commitFusion : retours de recette MyDAD des 16 au 18 septembre [skip actions]
1 commitMyDAD : retours de recette des 16 au 18 septembre (niveaux N3/N4, statut, remontée, liaison de compte, contrôle des données saisies, plan effectif, navigation partenaire)
1 commitFusion : le rapport garde le dossier de son brouillon [skip actions]
1 commitConstruire un rapport : le dossier client du brouillon se decide une fois et se garde [skip actions]
1 commitProfil entreprise MyDAD : menu de consultation, aucune ecriture affichee, etat vide ; onglet Acces partenaires [skip actions]
1 commitFusion : robustesse de la file de remontee MyDAD [skip actions]
1 commitRemontee MyDAD : robustesse de la file, six defauts corriges [skip actions]
1 commitInventaire du perimetre MyDAD : Mes dossiers clients rouvert pour la jonction, parcours ENTREPRISE en consultation [skip actions]
1 commitJonction MyDAD, controle du 15 septembre : parcours ENTREPRISE, espace cabinet, evenements hors boucle [skip actions]
1 commitIntegration lot C : remontee universelle des livrables vers la Suite MyDAD [skip actions]
1 commitLot C : file de remontee des livrables vers la Suite MyDAD [skip actions]
1 commitIntegration : migration du lot G renumerotee 092 (le lot C suit en 093), revue de config.py du 14 septembre [skip actions]
1 commitTypage : les deux erreurs pre-existantes de millesimes.test.tsx et un drapeau d'expression inutile [skip actions]
1 commitIntegration : tests de phase-in alignes sur ESRS 1 revise (122 a 127) [skip actions]
1 commitJonction MyDAD : clef remplacee sous le meme kid relue une fois, plafond compris ; message de plafond exact
1 commitCouche 19 : tests de phase-in alignes sur ESRS 1 revise, paragraphes 122 a 127 [skip actions]
1 commitIntegration jonction MyDAD : jeton hors du middleware Clerk, ecrans de retour sans impasse, regles du depot
1 commitIntegration lot F : ecrans du tunnel, securite et ergonomie [skip actions]
1 commitIntegration lot G : identite, cycle de vie, revocation [skip actions]
1 commitLot G, superviseur sans perimetre : l'etat est servi par /auth/me et dit a l'ecran ce qui manque [skip actions]
1 commitLot G, cycle de vie : revocation collante et symetrique, retrogradation des roles, SIREN et type de tenant bornes, messages sous enseigne [skip actions]
1 commitJonction MyDAD : accord grammatical du message environnement incoherent [skip actions]
1 commitLots D et E : appels sortants robustes, horloge mesuree, JWKS plafonne, plafond SSO lisible [skip actions]
1 commitLot F : ecrans du tunnel MyDAD, securite du retour et ergonomie du sejour [skip actions]
1 commitLot G, H2 et H3 : les cles d'API passent par la garde MyDAD, la connexion locale ne prolonge plus un compte ne de la jonction [skip actions]
1 commitLot G, C1 : la jonction MyDAD n'adopte plus un compte existant sur la seule adresse declaree [skip actions]
1 commitJonction MyDAD, lot A : reference de correlation de bout en bout, trace persistante des etapes, route admin de lecture [skip actions]
1 commitLot B : sonde des typeRapport reellement acceptes par le depot MyDAD [skip actions]
1 commitLot H : simulateur local de la Suite MyDAD pour la recette de la jonction [skip actions]
1 commitPerimetre de navigation MyDAD : le menu du 30 juillet, sans EcoVadis [skip actions]
1 commit
Ce que ce journal ne montre pas
Les 8 dépôts suivis ont tous répondu, et la liste vient du registre.
Les huit dépôts du groupe vivent sur deux propriétaires. Un jeton de lecture à portée fine n’en couvre qu’un seul, donc sept entrées sur huit au mieux. Le seul jeton qui couvrirait les huit donnerait aussi l’écriture, et ce n’est pas un compromis que je fais pour un feed.
FRISE D’INGÉNIERIE
12 décisions, et ce qu’elles ont coûté.
Le journal ci-dessus dit ce que j’ai fait. Cette frise dit pourquoi le système a cette forme. 3 d’entre elles sont des revirements : j’avais tranché dans un sens, et j’ai changé d’avis en payant le retrait.
- LIVRAISON
La robustesse déjà présente devient visible
Matrice de santé par capacité, huit modes de panne rejouables par une commande, frontières de données explicites, dix contrôles d’intégrité calculés.
Trace
apps/web/lib/health/, scripts/failure-drill.mjs, scripts/integrity.mjs - LIVRAISON
La provenance devient inséparable de la valeur
Aucun composant n’accepte plus un nombre nu. Il accepte une affirmation qui porte sa source, sa méthode et sa date. Le registre des preuves ouvre.
Trace
apps/web/lib/proof/, migrations 0003 et 0004 - DÉCISION
Échouer explicitement plutôt que répondre sans source
L’assistant refuse de produire une réponse quand la recherche documentaire ne rend rien. Soixante-six lignes, et le comportement le plus important du site.
Trace
commit 3d10bef, apps/web/app/api/chat/route.ts - LIVRAISON
Mise en ligne, migrations jouées, écosystème connecté
Domaine branché, base migrée, registre semé, passerelles de santé actives vers les produits, mentions légales écrites depuis ce que le code fait.
Trace
migrations 0001 et 0002, apps/web/lib/ecosystem/gateways.ts - DÉCISION
Nommer la nature d’une panne plutôt que l’afficher comme une absence
Une panne d’un produit et une panne de la sortie réseau de ce site cessent de se ressembler. Chaque tentative de sonde porte sa nature d’échec.
Trace
table ecosystem_probes, migration 0003_data_class.sql - REVIREMENT
Retrait du repli chiffré
Plus aucune valeur de remplacement. Une source qui ne répond pas produit une absence qui se nomme, et un test refuse désormais tout repli.
Trace
commit 21e483b, verrouillé par tests/layer-d.test.tsx - DÉCISION
Registre de produits en base plutôt qu’en dur
La liste des produits et de leurs dépôts quitte le code pour la base. Ajouter un produit cesse d’être un déploiement.
Trace
commit 24eb785, table ecosystem_products - REVIREMENT
Cockpit d’un ensemble plutôt que vitrine d’un produit
Le site cesse de vendre un produit et se met à lire l’ensemble du groupe. Registre de produits, divisions, sorties tracées.
Trace
commits c881705 et 4116d14 - REVIREMENT
Le moteur de calcul quitte le cockpit
Neuf cent une lignes de calcul ESG et de tests retirées d’un site dont ce n’est pas le métier. Le calcul appartient au produit, pas à la vitrine.
Trace
commit 56d1f7c, 901 lignes retirées sur 1 182 - DÉCISION
Un repli chiffré plutôt qu’une case vide
Position initiale : quand une source ne répond pas, afficher une valeur plausible pour ne pas laisser de trou dans l’interface.
Trace
position remplacée le 12 août 2026 - DÉCISION
Architecture initiale du dépôt
Monorépo, une application web, des paquets partagés, une base unique. Les moteurs de calcul restent en dehors, dans les produits qui les portent.
Trace
turbo.json, pnpm-workspace.yaml, packages/ - DÉCISION
Récupération documentaire plutôt que réentraînement
L’assistant cite des passages retrouvés dans un corpus au lieu d’avoir appris le contenu. Une réponse devient vérifiable, et une source manquante devient un refus.
Trace
apps/web/lib/ai/retrieval.ts, migration 0000_init.sql
LE RAISONNEMENT COMPLET
Chaque décision, avec ses options.
Le journal d’architecture donne pour chaque décision les options écartées, le compromis accepté et son degré de réversibilité.