Math Challenge
Plus

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.

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