Compiler intention en preuve

broussaille dernière retouche · 26 juin 2026

Reflexion en cours, je pense a voix haute.

Le vrai problème, je crois, ce n’est pas de transformer une spec en tests. C’est de préserver le sens de l’intention sur toute la chaîne :

intention humaine
→ concepts métier
→ règles sémantiques
→ obligations vérifiables
→ données discriminantes
→ tests générés
→ observations réelles
→ preuve

Le bug qui me hante

Spec banale : « un utilisateur consulte les données de son organisation active ». Le système avait tout : une spec, un golden dataset, des tests, un jury LLM, une interface bien rendue. Et pourtant il a accepté ça :

liste vide → empty state valide → feature OK

Alors que la sémantique complète disait l’inverse : Alice membre de Org A, Org A contient A1 et A2, Alice consulte Org A, donc Alice doit voir exactement A1 et A2. Le LLM a jugé l’interface localement (« ça a l’air d’un empty state correct ») au lieu d’exécuter la logique fonctionnelle. Tout le reste découle de là.

L’idée

Arrêter de demander au LLM si la feature paraît correcte. Lui demander de compiler ce que “correcte” signifie, puis faire exécuter cette définition par des mécanismes déterministes. Le LLM devient un llm-compilateur-semantique, pas un oracle.

La chaîne que j’imagine, de la phrase au verdict :

Les statuts de preuve

Un test vert ne suffit plus. Une clause traverse des niveaux : EXTRACTED, ONTOLOGY_ALIGNED, DISAMBIGUATED, FORMALIZED, SEMANTICALLY_VALIDATED, ANSWERABLE, INSTANTIATED, GENERATED, EXECUTED, PROVEN, et enfin DISCRIMINATING (les contre-modèles plausibles sont rejetés). C’est ce dernier cran qui me paraît être la vraie preuve.

Formulation que je garde sous le coude

La Forge utilise le LLM comme compilateur sémantique pour transformer une intention en modèle ontologique et opérationnel explicite. Ce modèle est contraint par des policies déterministes, abaissé en IR exécutable, instancié sur des données discriminantes, puis relié par un graphe de provenance aux observations runtime qui prouvent ou invalident chaque propriété.

À creuser : est-ce que tout cet édifice tient pour une feature CRUD réelle de forge, ou est-ce que je sur-ingénie un cas (le bug RLS) qui se règle plus simplement ? Où est le seuil de rentabilité ? Liés : llm-compilateur-semantique, intent-formalization, webtestpilot, forge