Math Challenge est ouvert : le code, le plan et la recherche
Le dépôt, le plan complet et les 47 recherches sont publics — y compris celles qui contredisent le produit, et l’exécution où notre propre flotte d’auditeurs s’est trompée.
Ce qui est ouvert
Deux liens. Publics tous les deux aujourd’hui, vérifiables tous les deux dans un navigateur sans compte.
-
Le dépôt
Le produit, la flotte d’auditeurs, les migrations et la documentation interne vivent dans un seul dépôt public. Il n’existe pas de seconde copie arrangée pour les visiteurs.
-
Le tableau
Le plan entier tient sur un tableau de projet public : 18 éléments avec des critères d’acceptation vérifiables, des trois phases du site aux treize phases du produit. Deux de ces dix-huit ne sont pas du travail : ce sont les tensions que nous n’avons pas résolues, notées au grand jour à côté du reste.
Les 47 recherches, y compris celles qui contredisent le produit
Quarante-sept recherches, environ 157 000 mots, avec des sources numérotées et des limites déclarées. Elles sont publiées entières, et cela inclut les passages où les preuves vont contre ce que nous construisons : la commande initiale demandait quelque chose d’addictif, et la recherche a passé des semaines à la contredire.
Les affirmations que nous n’avons pas pu confirmer auprès d’une source primaire portent la marque [unverified] dans le texte — 18 marques réparties sur 14 des documents. Elles restent visibles au lieu d’être effacées en silence, parce qu’une recherche qui cache ses points faibles n’est pas une preuve, c’est de la publicité.
La flotte d’auditeurs, et ce qu’elle a le droit de dire
Aujourd’hui, 31 des 39 auditeurs prévus existent. Huit sont déterministes et bloquent chaque commit ; parmi eux : les sept locales au complet, les secrets, le poids du bundle, la palette d’Ignia, aucun champ de texte libre dans une table d’enfant. Les vingt-trois autres sont des auditeurs adversariaux à LLM, chargés de trouver la violation et non d’approuver, et chacun doit citer la décision ou la recherche qu’il fait appliquer. Un constat qui cite un identifiant inexistant est écarté mécaniquement.
Les constats sont écrits en SARIF 2.1.0, la norme OASIS, et téléversés à la main vers GitHub code scanning : ce projet n’utilise pas d’intégration continue, et c’est une décision, pas un manque. Chaque constat arrive ancré à un fichier et à une ligne que n’importe qui peut lire.
Ce qui a mal tourné la première fois que nous l’avons lancée
La première exécution complète de la flotte adversariale a rendu deux verdicts bloquants. L’un était fabriqué : l’auditeur a cité une décision qui existe bel et bien, puis a affirmé qu’un fichier disait versión là où le fichier dit versão. Citation réelle, preuve inventée, et le constat est sorti classé comme bloquant. La moitié des constats bloquants de cette exécution était du bruit.
Le correctif n’a pas été un meilleur prompt. C’est une couche déterministe qui extrait chaque chaîne que l’auditeur dit avoir vue et vérifie qu’elle figure réellement dans ce qu’on lui a montré. Si aucune n’y figure, le constat cesse de bloquer.
Ce que cette couche ne sait toujours pas faire, dit avant que quiconque le suppose : un auditeur qui paraphrase au lieu de citer ne laisse aucune chaîne à vérifier. On détecte la fabrication littérale, pas l’interprétation erronée — c’était l’autre défaillance de cette même exécution, et celle-là n’a pas de correctif déterministe.
La licence : AGPL-3.0
Le dépôt contient un fichier LICENSE avec la Licence publique générale Affero de GNU, version 3. Cest un copyleft fort de réseau : quiconque lexécute comme service doit publier ses modifications. Cest précisément le but. La banque ditems est le produit — cest là que réside lessentiel du travail réel — et la promesse de ce projet est quil atteigne celui qui ne peut pas payer. Une licence permissive laisserait quelquun prendre le moteur et la banque, les fermer et les facturer.
Ce que cela coûte, dit franchement : lAGPL fait fuir des entreprises qui pourraient contribuer, et beaucoup linterdisent par politique interne. Ce compromis a été assumé volontairement.
Pourquoi cela vaut la peine
Publier la recherche est la stratégie, pas un geste de transparence. Ce qui coûte vraiment, c’est de publier les erreurs : le tableau porte encore la note selon laquelle la phase F0 a été marquée close alors qu’un de ses propres critères — le 0-RTT — n’avait jamais été vérifié, et cela n’est ressorti que parce que quelqu’un a redemandé. Un tableau qui montre sa propre erreur vaut plus que n’importe quelle déclaration de valeurs.
Vérifiez-le vous-même
Clonez le dépôt et lancez la flotte. Chaque chiffre de cette page sort de cette commande ou du tableau public. Aucun n’a été écrit de mémoire.
git clone https://github.com/kilowatto/math-challenge
node audits/run.mjs