La question posée est celle de la part prise par un modèle de langage dans la fabrication de cette lecture, et un modèle précis a été nommé dans la question. La réponse tient en une ligne : un modèle a bien servi, ce n'est pas celui-là, et le dépôt le documentait avant d'être interrogé.
Ce qui suit n'est ni une défense ni une réclame. C'est l'état du dispositif, ses bornes, et l'endroit exact où il a échoué.
Oui, une IA a servi, et ce n'est pas celle qui a été nommée
Le travail est conduit avec Claude. Cela couvre tout : la lecture du corpus, les notes de lecture, la synthèse, la grille de transposition vers TURFu, et ce site.
Aucune étape du projet ne prétend avoir été faite à la main. Le dépôt tient l'historique complet de sa fabrication, commit par commit, et les artefacts de planification sont versionnés au même titre que les résultats.
Le modèle nommé dans la question n'a été employé à aucun moment, sous aucune forme.
Un second modèle a été employé exprès, comme contradicteur
Une objection écrite par celui qui rédige l'entrée n'est pas une objection. La passe adversariale de la grille de transposition passe donc par un modèle tiers, l'API OpenAI gpt-5, désignée dans tout le dépôt sous un nom propre pour qu'on ne la confonde jamais avec le rédacteur.
La décision est écrite, datée et bornée avant d'avoir servi : plafond d'appels pour la phase, plafond de caractères par appel, plafond de jetons de sortie, modèle enregistré. Les trois premières bornes sont vérifiées avant le réseau — un plafond vérifié après l'appel n'est pas un plafond, c'est un constat.
Chaque appel est journalisé : requête, réponse, jetons, horodatage. Les prompts et les réponses sont versionnés verbatim. Le coût plafond a été chiffré, puis recalculé sur mesure réelle, et il est resté sous le seuil au-delà duquel l'arbitrage serait remonté à l'humain.
sed -n '30,45p' docs/DECISION-IA-EXTERNE.md
.venv/bin/python bin/check-peter-g.py
Ce que le dispositif interdit à un modèle : produire un fait
La règle est écrite dans les instructions du dépôt et elle est étroite. Un modèle a le droit de résumer, de thématiser, de rapprocher, de rédiger. Il n'a pas le droit de produire une date, un décompte, une métadonnée ou une citation.
Le rempart n'est pas déclaratif. Une citation n'est valide que si un programme la retrouve comme sous-chaîne exacte du texte de preuve versionné, à la localisation déclarée. Une citation inventée, ou seulement recopiée de mémoire avec un mot de travers, ne passe pas le contrôle.
Le plafond de citation par document source est lui aussi mécanique, et il refuse dans les deux sens : il interdit de dépasser le quota, et il interdit d'allouer plus que la marge mesurée.
.venv/bin/python bin/check-refs.py
.venv/bin/python bin/citations-index.py --budget
La limite honnête du dispositif, et il faut la dire
Le contrôle qui garde la passe adversariale vérifie qu'une objection ne porte aucune référence et aucune URL : une objection est une hypothèse à instruire, jamais une mesure. Il attrape donc une objection qui prétend citer.
Il n'attrape pas un récit faux sans référence. Une objection creuse mais régulière passe, et le dépôt l'écrit à l'endroit où il calibre le contrôle. C'est une limite de forme, pas de fond, et elle n'est pas refermée.
Autrement dit : la vérification par sous-chaîne protège les citations, pas les raisonnements. Ce qui protège les raisonnements, c'est la lecture — et c'est précisément ce sur quoi l'avis de l'auteur serait utile.
Une fausse attribution a été en ligne sur ce site
Ce n'est pas une hypothèse de risque, c'est un fait daté. Entre deux plans de la phase 10, la jointure entre une citation et son passage se faisait sur un ordinal local au document au lieu de la localisation déclarée. Résultat : 74 citations désignaient un autre passage que celui sous lequel elles étaient publiées.
Le défaut a été trouvé par recomptage, corrigé par une jointure sur la localisation, et publié dans le bilan du site plutôt que tu. Le motif de la publication est simple : c'est la contrainte fondatrice du dépôt qui avait été violée, et un dépôt qui tait sa propre violation ne vaut plus sa contrainte.
C'est la meilleure réponse que ce travail puisse donner à la question posée. Le dispositif n'est pas infaillible ; il est fait pour que ses échecs deviennent visibles, datables et réparables.
grep -n "74 citations" site/BILAN.md
Ce qui est de l'auteur, et ce qui ne l'est pas
Les pages des années 2020 reproduisent, dans le corps du texte, des réponses de modèles de langage. Le dépôt les capture — les retirer casserait tous les ordinaux de bloc et donc toutes les citations — mais il ne les attribue jamais à l'auteur.
Leurs plages sont déclarées bloc par bloc. Une citation qui tombe dans une telle plage est une citation de tiers : plafond réduit, mention d'attribution obligatoire, et formulation imposée. Un contrôle bloquant refuse une citation de cette zone dont l'attribution serait vide.
La mesure qui commande toute lecture de cette tranche : sur 2024-2026, 86,3 % du texte capturé n'est pas de l'auteur, soit 52 195 mots sur 382 050.
grep -n "86,3" synthese/99-BILAN.md
grep -n "attribution_tiers" CONVENTIONS.md
Comment vérifier tout cela sans nous croire
Le dépôt est clonable, et rien de ce qui précède ne dépend d'une affirmation. Les douze contrôles bloquants sont énumérés nommément, les tests se rejouent hors ligne, et le site se reconstruit à partir des mêmes artefacts.
.venv/bin/python -m pytest -q
cd site && npm run build