Vos agents IA écrivent le code. Je construis ce qui prouve qu'il peut partir en prod.
Pour les équipes qui ont déjà branché Claude Code, Codex ou Cursor : une preuve avant chaque fusion, dans votre dépôt et votre CI.
Prix fixe · 3 500 € HT au lancement · 3 places
01 La démonstration
Trois modifications de code, trois verdicts.
semctx, l'outil open source que j'ai écrit, lit chaque diff avant la fusion. Il signale ce qui met un contrat en risque, se tait quand rien ne change, et dit ce qu'il ne peut pas voir.
01Commentaire reformulé
src/greeting.ts
aucun signal
Aucun contrat touché. Un résultat muet n’est pas une garantie : les vérifications habituelles restent.
02Champ requis ajouté à une interface exportée
src/cart.ts
+ discountCents: number;WARN · contract_changed_without_test
Il demande un test qui couvre le nouveau champ ; il ne dit pas que le comportement est juste.
03Remise faussée d’un point
src/pricing.ts
- (100 - ratePercent)+ (100 - ratePercent - 1)
aucun signal · limite explicite
Vrai bug de prix, hors de ce que l’outil prouve : aucun invariant ne couvre le calcul. Test à écrire : 10 % de remise sur 10 000 centimes doit donner 9 000.
02 Le problème
Vos agents écrivent plus vite que votre équipe ne relit.
26 %
des développeurs, et autant de responsables engineering, classent la relecture et la validation du code généré comme le premier goulot qui empêche l'IA d'accélérer la livraison.
Le goulot n'est plus l'écriture, c'est la vérification. Et quand le même agent écrit le code, les tests et l'explication, une hypothèse fausse traverse les trois : les tests restent verts. Je construis ce qui rend la vérification rapide et fiable, dans votre dépôt et votre CI : l'IA propose, la preuve décide.
La revue est devenue votre goulot
PR de taille bornée, test rouge avant le correctif, revue indépendante, preuve attachée au commit final : vos développeurs relisent moins, et mieux.
Preuves : l'étude de cas, AssertLedger(nouvel onglet)
Vos agents ne connaissent pas votre code
Règles du dépôt, lexique métier, index de code, serveurs MCP : le contexte qui évite qu'un agent réinvente votre architecture.
Preuves : l'étude de cas, StacksFinder
Personne ne sait ce que l'IA a changé, ni pourquoi
L'impact de chaque diff calculé avant la fusion (PASS, WARN, BLOCK), la décision de l'agent figée avant le résultat, la provenance des changements, des portes en CI.
Preuves : semctx, Latent Compass(nouvel onglet)
Plus en profondeur : quand une décision est un calcul (planning, répartition, tarification), je construis le moteur, et c'est le solveur qui tranche, jamais le LLM. Page Optimisation.
03 Les instruments
Trois instruments, chacun avec ce qu'il ne prouve pas.
Autour de chaque modification faite par un agent, trois outils open source que j'ai écrits. Chacun publie ce qu'il démontre, et ce qu'il ne démontre pas.
Encre pleine : démontréContour : non établi Sources relues le 29 septembre 2026 · registre des affirmations
1 · Avant : la décision
Latent Compass
L'enregistreur de vol des décisions d'un agent : les options, les indices et le choix, figés avant que le résultat soit connu. Une boussole indique la direction sans prendre la barre.
Schéma — Les options et le choix sont figés avant que le résultat soit connu. - Démontré
- Contrats d'épisode stricts, journaux en ajout seul où une retouche silencieuse se détecte, banc d'essai hors ligne rejouable. Source : README latent-compass @f66dce1 (nouvel onglet)
- Non établi
- Un gain mesuré sur un agent réel. L'audit indépendant laisse le statut de preuve à
PROOF_WEAK/BLOCK. Source : README latent-compass @f66dce1 (nouvel onglet)
Première phase de recherche close sur
Code source et statut de preuve(nouvel onglet)KILL_DISCOVERY: pas assez de preuves pour entraîner un modèle, donc aucun modèle entraîné. Le refus fait partie du résultat. Source : README latent-compass @f66dce1(nouvel onglet)2 · Pendant : le changement
semctx
Relie chaque diff aux symboles, contrats, invariants et tests qu'il touche, et rend un verdict PASS, WARN ou BLOCK avant la fusion.
Schéma — Chaque diff est relié à ce qu'il touche, puis reçoit un verdict avant la fusion. - Démontré
- Des verdicts déterministes : la démonstration du chapitre 01 se rejoue. Sources : README semctx @11465f6 (nouvel onglet) · hoklims.github.io/semctx/demo (nouvel onglet) · evidence.json semctx 0.3.5 (nouvel onglet)
- Non établi
- Le comportement à l'exécution : l'analyse est statique, et son silence n'est pas une garantie. Sources : README semctx @11465f6 (nouvel onglet) · hoklims.github.io/semctx/demo (nouvel onglet)
3 · Après : le test
AssertLedger
Vérifie qu'un test de régression attrape vraiment le bug : le même test tourne sur le code corrigé, sur un défaut connu et sur un témoin neutre.
Banc d'essai
Le même test, trois versions du code. Choisissez celle qui tourne :
src/is-even.js · la bonne version
export function isEven(value) { return value % 2 === 0; }Test Résultat « deux est pair » assert.equal(isEven(2), true)réussite « renvoie un booléen » assert.equal(typeof isEven(2), "boolean")réussite Sur le code corrigé, les deux tests passent : rien ne permet encore de les départager.
src/is-even.js · parité inversée
export function isEven(value) { return value % 2 === 1; }Test Résultat « deux est pair » assert.equal(isEven(2), true)échec d'assertion « renvoie un booléen » assert.equal(typeof isEven(2), "boolean")réussite Sur le défaut connu, « deux est pair » échoue : il voit le bug. « Renvoie un booléen » passe encore : il ne le voit pas.
src/is-even.js · même résultat, autre écriture
export function isEven(value) { return (value & 1) === 0; }Test Résultat « deux est pair » assert.equal(isEven(2), true)réussite « renvoie un booléen » assert.equal(typeof isEven(2), "boolean")réussite Sur une écriture équivalente, les deux passent : l'échec précédent vient bien du défaut, pas d'un test trop fragile.
Verdict sur les trois versions
- WEAK_ORACLE
- « Renvoie un booléen » réussit partout, défaut compris : il ne détecte pas ce défaut.
- Retenu
- « Deux est pair » échoue sur le défaut seulement : la décision le sélectionne.
Exemple livré avec AssertLedger 1.1.1, reproduit tel que publié et relu contre le dépôt le 29 septembre 2026. Source : request.json AssertLedger v1.1.1 (nouvel onglet) - Démontré
- Un verdict, les observations qui le fondent et une preuve qui se rejoue sans modèle ni nouvelle exécution des tests ; version 1.1.1 publiée sur npm. Sources : README assertledger @b9407bf (nouvel onglet) · npm assertledger 1.1.1 (nouvel onglet)
- Non établi
- L'isolement de l'exécution (code de confiance seulement), d'autres cadres de test que
node:test(AssertLedger 1.3 annonce aussibun:test, non rejoué ici), la correction générale du programme. Source : README assertledger @b9407bf (nouvel onglet)
Dans la même lignée
- StacksFinder — recommandations de stack déterministes : le score décide, le LLM rédige ; servies aux agents par MCP.
- temper(nouvel onglet) — distillation de compétences pour agents de code, en local, relue par un humain.
- codex-wayfinder(nouvel onglet) — gouvernance menée par Codex pour des passations d'exécution manuelles vers Claude Code.
- top-down-diagnosis(nouvel onglet) — diagnostic de haut en bas pour agents de code, de l'intention à l'implémentation ; guide bilingue et gabarits.
Le même dispositif sur votre dépôt commence par le Diagnostic Agents : cinq jours, prix fixe.
04 En équipe et en production
La même exigence, en équipe et chez des clients.
Une équipe produit qui fait livrer ses agents sous preuve, et deux logiciels clients utilisés aujourd'hui, sur des données sensibles.
Des agents qui livrent sous preuve
Étude de casÉquipe produit · éditeur de logiciels B2B non nommé
Une PR à la fois, prouvée sur son commit final ; l'auteur n'accepte jamais son propre travail ; une règle de preuve ne se valide pas elle-même.
- En place · déclaré
- Quatre pratiques sur cinq.
- En cours · déclaré
- La CI fait foi, pas le texte de l'agent.
- Non établi · déclaré
- Les chiffres avant/après, en cours de mesure.
Déclaré, sans source publique : employeur non nommé.
ChoixLucide
En productionSaaS IA · compatibilité relationnelle · client
Architecture IA multi-fournisseurs avec repli automatique pour la génération de rapports, abonnements Stripe, programme de parrainage.
Le Petit Chêne
En production · déclaréLogiciel métier · secteur médico-social · client
Quota de présence glissant sur 90 jours calculé automatiquement, avenants PDF générés, numéros de sécurité sociale chiffrés, journal d’audit, plus de 900 tests.
« Guillaume a rendu ChoixLucide solide en production : architecture IA qui ne lâche pas, choix techniques clairs, délais tenus. Je le recommande. »
Autres travaux — Clairvox, AetherJudge, PokeForge, OCO : index des réalisations.
05 Offres
Commencer par cinq jours, à prix fixe.
Point d'entrée
Diagnostic Agents
Cinq jours pour mesurer votre revue, auditer votre setup d'agents et poser une première porte dans votre CI.
3 500 € HT prix de lancement · 3 places
Sprint d'installation
Trois à quatre semaines : contexte des agents, chaîne de revue, portes en CI, formation de l'équipe.
dès 15 000 € HT chiffré après le diagnostic
Tech lead IA fractionné
Un à deux jours par semaine pour tenir les portes et faire monter l'équipe.
dès 4 000 € HT / mois engagement mensuel
Les prix sont affichés pour que vous sachiez à quoi vous attendre avant d'écrire. Le sprint se chiffre à l'issue du diagnostic. Détail des offres et conditions.
06 Contact
Dites-moi ce qui coince.
En quelques lignes : vos agents, votre CI, ce qui bloque (la revue, les régressions, le contexte). Je vous dis si c'est mon terrain.
Un problème de calcul plutôt ? Le Diagnostic Calcul donne un verdict chiffré en cinq jours.