project· en cours
Provefab · Issues en entrée, pull requests vérifiées en sortie
Horiot Studio a construit Provefab, un service qui transforme des issues GitHub étiquetées en pull requests vérifiées par les tests et relues par un second modèle, publié en 2026.
Contexte
Provefab tourne comme un service sur un Mac. On pose l’étiquette provefab sur une issue GitHub, Provefab la prend en charge au passage
suivant (toutes les trois minutes par défaut) et ouvre une pull request
qui arrive au vert, relue par un second modèle, avec ses preuves. La
pull request attend ensuite un clic humain.
Le code est écrit par des agents IA existants, Claude Code, Codex ou Pi, chacun par sa propre CLI non modifiée, connecté avec votre abonnement ou votre clé d’API. Jev, le classifieur de TypeSafe, évalue chaque issue (nature, difficulté, périmètre, risque de relecture) pour que chaque étape tourne sur le modèle le moins cher capable de la faire : d’abord les abonnements, puis les clés d’API par ordre de prix, avec des prix mis à jour chaque jour.
Les agents proposent, Rust décide
Tout ce qui tranche l’issue est du Rust déterministe : les checks du dépôt (formatage, lint, tests, vos propres commandes), le commit, le push et la pull request. Pendant l’implémentation, chaque appel d’outil de l’agent passe par un garde-fou. La relecture est confiée à un modèle d’un autre fournisseur que celui qui a écrit le code.
Provefab parle sur GitHub, dans des commentaires qui commencent toujours par « Posted by Provefab », et suit l’avancement par étiquettes : à faire, question posée, pull request ouverte, fusionnée, ou arrêtée avec la raison. L’étiquette est l’autorisation : c’est elle qui permet aux agents de passer du temps sur le texte d’une issue.
Le cœur est publié sous licence FSL. Une édition Pro ajoute un second relecteur, des politiques de fusion et des rapports de coût par dépôt et par modèle.
Pourquoi c’est ici
Le risque de l’IA dans le code n’est pas qu’elle écrive mal, c’est qu’on ne sache pas ce qui a été vérifié. Provefab tient une ligne simple : un modèle peut proposer, seul un contrôle déterministe peut accepter, et un humain garde le dernier clic. C’est la même discipline que j’applique aux outils livrés aux clients.