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
- 300
- Dépôts actifs
- 8 / 8 suivis
- Régularité
- 37 / 72 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.
Vendre une capacité, montrer comment je décide, et rendre la robustesse visible
30 commitsDeux vagues livrées le même jour. La première refond l’accroche autour d’une capacité, ouvre les fiches projet, le journal d’architecture et les revirements. La seconde rend visible la robustesse déjà présente : santé par capacité, modes de panne rejouables, carte de l’écosystème, inspection technique, frontières de données et contrôles d’intégrité.
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 commitDV10 : libellé unique « Devenir partenaire » dans la navigation et le pied de page
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 commitRegles Gemini : garde-fous de couts et exclusions de lecture [skip ci]
1 commitPlanification : les taches quotidiennes partent a heure fixe [skip ci]
1 commitSante des sources : les textes d'un meme passage comptent pour une arrivee [skip ci]
1 commitEUR-Lex : concepts EuroVoc relus sur le thesaurus, textes fondateurs demandes par CELEX [skip ci]
1 commitSante des sources : une source ecartee est dite ecartee sur les surfaces publiques
1 commitRole de lecture publique : le script passe sur Supabase, ou postgres n'est pas superutilisateur
1 commitMCP public : initialize, tools/list et ping repondent sans base, tools/call dit que le serveur n'est pas ouvert
1 commitNoyau de distribution, famille DC : commission sur toutes les formules, relevés, registre horodaté, antériorité, convention version 3 publique
1 commitConnexion et compte : composants Clerk en francais, bouton Google lisible
1 commitHarmonisation du front sur la grammaire de la maison STRATA : socle, coquille, briques, etats, tarifs, mobile, accessibilite
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 : carte de partage de la FAQ sans affirmer que toutes les reponses sont sourcees
1 commitAcademy : identite de l'editeur, TVA en franchise, case de renoncement a l'achat, tuteur via Google
1 commitAcademy : reconstruction du front de septembre (lots 1 a 12)
1 commitAcademy : AS11 (ADEC-19), examen renomme sans doublon, accents des pistes, textes des PDF et courriels
1 commitCGU, CGV et partenaires alignés sur ESG Optimizer [skip ci] [skip actions]
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 Gemini du projet
1 commitRègles Gemini du projet
1 commitRègles Gemini du projet
1 commitRègles Gemini du projet
1 commitRègles Gemini du projet
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 commitReleve du depot : la taille des bases recreees par les tests n'est plus publiee, sinon le releve ne peut pas rester propre
1 commitMaintenance : CI suspendue faute de quota, portes passees en local, et retrait d'une instruction qui detruisait le depot
1 commitL'accueil cesse de répéter le même gabarit dix-sept fois [skip actions]
1 commitLa page d'accueil cesse de se lire comme une demonstration de composants [skip ci]
1 commitUn seul graphe de donnees structurees, et une offre a zero euro sur la plateforme entiere [skip ci]
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 commitLe favicon de Foundation existe enfin dans l'onglet [skip ci]
1 commitLa chaine repasse au vert : formatage du moteur readiness et empreintes reposees [skip ci]
1 commitentretien
1 commitentretien, changeset
1 commitcorrection, business-os
1 commitajout, business-os
1 commitajout, business-os
1 commitajout, business-os
1 commitajout, ui,pdf,auth
1 commitajout, core
1 commitajout, business-os
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 commitVerrous : les detecteurs de tirets longs ne contiennent plus le caractere qu'ils cherchent
1 commitEcheances : la fin d'un appel a reponses n'est plus proposee comme echeance de conformite
1 commitCollecte EFRAG : le pare-feu coupe les faux Chrome, la collecte se nomme
1 commitPasse de vérification DR et marque STRATA ESG sur tout le produit [skip actions]
1 commitMarque STRATA ESG sur le reste du site : signature du pied de page, contact, charte, données structurées [skip actions]
1 commitNoyau de distribution, famille DR : le programme Terreau STRATA ESG et ses deux voies [skip actions]
1 commitTerreau STRATA ESG : la marque s'écrit STRATA ESG, jamais le premier mot seul (DR1) [skip actions]
1 commitTerreau STRATA : jamais les deux voies sur une même page, hors la page d'entrée (DR14)
1 commitTerreau STRATA : les deux voies du programme partenaire ne se mélangent plus (DR14)
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 commitLinkedIn : la page entreprise STRATA ESG remplace le profil du fondateur pour l'organisation
1 commitPages de solution par profil, pied de page à sept colonnes et signature
1 commitPied de page : liens vers les tarifs, la vision et le programme partenaire du hub STRATA
1 commitPied de page : liens vers les tarifs, la vision et le programme partenaire du site mere [skip ci]
1 commitPied de page : liens vers les tarifs, la vision et le programme partenaire du hub STRATA [skip ci]
1 commitRéférencement et moteurs de réponse : llms-full.txt, speakable, IndexNow
1 commitChantiers 6 à 10 : états, mobile, accessibilité, source unique, référencement
1 commitAlignement sur ESG Optimizer et nettoyage des signatures de site genere [skip ci]
1 commitSchema carbone embarque dans le paquet API : l'image Docker ne contient que apps/api, la route cherchait la racine du depot et l'API tombait a l'import en production
1 commitRevelation au defilement : le HTML servi ne masque plus aucun contenu
1 commitCorrige la passerelle et le temoin d'enregistrement, et repose les accents
1 commitUne question sans reponse ne vaut plus zero, cent trois accents rendus, et le parcours e2e remis en marche
1 commitMigrations 018 a 030 concatenees pour l'editeur SQL Supabase : le pilote PostgreSQL est bloque sur le poste de travail
1 commitGel de surface : empreintes normalisees en LF avant hachage, sinon core.autocrlf fait echouer le gel sur Windows seulement
1 commitSC0 a SC14 et levee du gel de surface : registre carbone complet, produit auditable et non certifiable, base en region UE, douze ecrans de preuve au menu principal, lint etendu a tout le depot
1 commitGouvernance : registre des arbitrages
1 commitSortir du depot les sorties du parcours navigateur ecrites a la racine
1 commitHarmonisation visuelle de Foundation : un seul socle, quatre gardes executables
1 commitDeploiement : construction distante par defaut, et tri des lignes du comparatif sans droit backend
1 commitSocle graphique : jetons, anneau de focus, contrastes, etats d'ecran, comparatif complet, verrous de verification
1 commitRevue : relire la proposition avec son texte apres commit, et rendre le 500 sous la couche CORS
1 commitSortir du depot les fichiers deposes par l application Claude
1 commitBalayage des ecritures non commitees, oublie au commit precedent
1 commitLe profil partageable ne persistait rien : les trois ecritures ne commitaient pas
1 commitFV7 : distribution, canal machine, international et packs (FX0 a FX9, FG0 a FG8)
1 commitPerimetre de collecte : une source qu'on ne peut plus interroger sort, nommee et motivee
1 commitLegifrance : une source sans identifiants n'est plus presentee comme saine
1 commitCollecte : le BOFiP interrogeait l'API avec une date invalide, et le fonds initial n'etait pas constituable
1 commitBalayages : le .gitignore decide de ce que le balayage lit
1 commitDebloque le deploiement Vercel et etend le balayage des tirets aux SVG
1 commitCouvertures geographiques, navigation de la console, espace d'administration interne
1 commitLe noyau reglementaire, vagues VW1 a VW8 et refonte de l'echelle des paliers
1 commitAccueil : les six modules sont ouverts, la page en annoncait encore trois
1 commitEn-tete : la nav a six entrees se chevauchait sous 1280 px, elle bascule maintenant en menu compact
1 commitRoadmap de lancement : etat reel au 31 aout 2026, Foundation est en ligne, le domaine reste a poser
1 commitCSP : autorise les sous-domaines de l ecosysteme, l instance Clerk vivant sur esg-optimizer.fr
1 commitPerimetre de lancement : pages legales, identite visuelle, SEO et GEO, securite, purge et deduplication
1 commitCouches 5 a 8 : Materiality Lite, VSME Builder, ESG Observatory et passerelles
1 commitMise en ligne sur le domaine, et branchement de l’écosystème
13 commitsMigrations jouées en base, registre produits semé, domaine branché, passerelles de santé vers les produits, mentions légales écrites depuis ce que le code fait.
L'organisation est lue aussi dans la forme abregee des jetons Clerk v2, et l'API expose le commit deploye
1 commitLes verifications recoivent des noms de parametres et non des valeurs positionnelles
1 commitLa console exige un espace de travail et cesse de rejouer les refus
1 commitListe d'exclusion a la racine pour l'envoi des sources a Vercel
1 commitLe front se construit sur un dossier propre, avec un repli sur la construction distante
1 commitLe deploiement backend s'appuie sur GitHub, et la cle publique Clerk est verifiee avant le build
1 commitTests de fumee joues contre le site en ligne et non contre un build a cles factices
1 commitAPI servie par le domaine Railway tant que le certificat de api.watch est bloque
1 commitLe tableau de bord ne renvoie plus un 404 au visiteur non connecte
1 commitMise a jour du document d'exploitation: etat au 28 aout, nouvelle cible DNS, expediteur des courriels
1 commitControle des variables par resolution DNS plutot que par liste de mots
1 commitGarde-fou de configuration au demarrage, script de composition des URL, correction de la lecture des .env
1 commitPooler Supabase en mode transaction : desactivation des ordres prepares. Garde-fou du script de verification contre une base non locale
1 commitTraitement de fond sans Celery : executeur local de repli, refus explicite si une file Redis est configuree sans le paquet
1 commitPhase 9: production, base partagee scope, deploiement PowerShell, refonte DA console
1 commitRetrait des mentions OPCO, Qualiopi et certifiant non etablies
1 commitRetrait des trois faux temoignages et de la mention d'hebergement exclusivement europeen
1 commitReferencement : trois pages de contenu, donnees structurees completes, 22 images de partage, llms.txt
1 commitRefonte du site vitrine : marque STRATA ESG, these de la preuve opposable, hero pleine largeur, application de terrain
1 commitcorrection, business-os
1 commitajout, business-os
1 commitajout, business-os
1 commitajout, business-os
1 commitajout, business-os
1 commitcorrection, e2e
1 commitRetrait du repli chiffré
13 commitsSuppression de toute valeur de remplacement affichée quand une source ne répond pas. Une case vide qui dit pourquoi remplace un chiffre plausible.
ajout, core
1 commitRendu des tableaux dans les lecons texte
1 commitajout, academy
1 commitEmpreinte carbone partout, version de la Base Empreinte ADEME precisee
1 commitPage partenaires : programme, grille marque blanche, demarrage
1 commitChantier 0 : vocabulaire empreinte carbone. GHG Protocol nomme comme referentiel applique, Base Empreinte ADEME V23.11, BEGES ramene a l'article L229-25, aucune revendication de conformite Bilan Carbone(R)
1 commitSpike jetable Ecobalyse : mesure d'acces, de latence et de couverture EF
1 commitRefonte de l'agencement du site corporate, alignement du Stratemark et unification des courbes
1 commitSocle legal: identite editeur, hebergeur, region europeenne et sous-traitants
1 commitCI: figer le perimetre de regles ruff, les defauts de l'outil ont change
1 commitVoie 3 fournisseurs et webhook bidirectionnel OS
1 commitTaxonomie couverte, socle de donnees et chaine de preuve sur l accueil
1 commitTarifs: gabarit visuel par plan, icone dediee par benefice, badges d'offre
1 commitNettoyage des dépendances et configuration du linter
1 commitSocle légal, mentions, confidentialité et bandeau traceurs
1 commitPage tarifs alignée sur la grille canonique du 31 juillet 2026
1 commitMessage cockpit sur le hero et la vision
1 commitListe des produits alignée sur la doctrine cockpit
1 commitResource Center : plan de site exhaustif, listing rendu serveur, recherche et compteur fiabilises
1 commitBenchmark: rattache les scores au profil structurel et active la bascule des moyennes
1 commitajout, academy
1 commitNavigator: aligne le jeu de regles sur l'Omnibus publie et durcit le moteur
1 commitformat ruff sur line-length 100
1 commitcouche 1 : data model materiality, vsme et observatory
1 commitdocumentation, groupe
1 commitajout, groupe
1 commitcorrection, observabilite
1 commitmerge: aligne la branche sur main (Phase 1 fusionnee en squash)
1 commitentretien, base de données
1 commitajout, platform
1 commitajout, pilotage
1 commitPhase 8: qualite, observabilite, securite, RGPD
1 commitPasserelle: enveloppe porte le clerk_org_id pour le rattachement ESG Optimizer
1 commitPasserelle: bouton Pousser vers ESG Optimizer
1 commitLe hub devient une vitrine statique, sans compte ni paiement
1 commitFiabilise le test de tracabilite : defilement et normalisation du rendu
1 commitTunnel checkout direct depuis les tarifs et demo publique de tracabilite
1 commitFront: etats chargement/vide/erreur par ecran, bandeau des postes non resolus, tracabilite en evidence
1 commitBEGES: ventilation Scope 1 par type de source, biogenique sous-poste 5, facteurs de demo corriges
1 commitCouche 2 : dedup OCR, reconciliation de scope, type de source BEGES
1 commitFacteurs: version active unique par source, incertitude live, classification etendue
1 commitExports reglementaires par gaz et jeu de facteurs de demonstration verifie
1 commitVentilation par gaz et isolement du CO2 biogenique (BEGES, CSRD)
1 commitFerme le fail-open d'authentification et lie les organisations au tenant
1 commitJournalise sur le canal uvicorn, visible en production
1 commitJournalise la configuration du rate limit au demarrage
1 commitLecture tolerante des variables de configuration numeriques
1 commitRetire la route de diagnostic des proxys, valeur mesuree documentee
1 commitRate limit non contournable et quota d'usage par cle d'API
1 commitSEO: favicon.ico raster, apple-icon, manifest PWA, theme-color
1 commitPaywall: gating 402 exports/certification (core/scope3), etats verrouilles front, CTA tarifs, tests
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é.