Bilan de la phase 7
Un critère n'est pas tenu parce qu'on l'affirme. Chacun des six critères de sortie de la phase 7
est reproduit ci-dessous mot pour mot depuis .planning/ROADMAP.md, suivi de la commande qui le
vérifie, de la sortie de cette commande, et d'un verdict. Toutes les commandes ont été rejouées
le 2026-09-02, hors ligne, depuis la racine du dépôt, avec .venv/bin/python.
Aucun verdict de ce fichier n'est adossé à une lecture. Là où une commande ne suffisait pas — le critère 1 impose un ordre, le critère 3 impose qu'un contrôle morde — deux commandes sont données plutôt qu'une, et la seconde est celle qui pourrait faire échouer la première.
Critère 1 — la méthode est commitée avant le premier résultat
«
synthese/00-methode.mdest commité avant le premier fichier de résultats (vérifiable par l'historique git) et énonce quoi est mesuré, comment, et avec quelles limites »
C'est un critère d'ordre, pas de contenu : une phrase du document affirmant « ceci a été écrit d'abord » ne prouverait rien. Trois commandes, parce qu'un ordre se prouve dans les deux sens et que « commité avant » n'a de valeur que si le commit ne portait que ce fichier.
(a) Le premier ajout dans synthese/ est bien la méthode.
git log --diff-filter=A --format='%H %ad' --date=iso --reverse -- synthese/ | head -1
f67d7b7fe63feaf0808a68b693a1f209350d399f 2026-09-01 23:36:04 +0200
(b) Ce commit ne portait qu'un seul fichier.
git show --name-only --format= f67d7b7
synthese/00-methode.md
(c) Tout autre fichier de synthese/, tools/ et parcours/ lui est postérieur. La commande
suivante date le premier ajout de chacun des 32 fichiers écrits de la phase, et les trie :
for f in synthese/*.md tools/*.md parcours/*.md; do
printf '%s|%s\n' "$(git log --diff-filter=A --format='%ad %h' --date=iso -- "$f" | tail -1)" "$f"
done | sort | head -4
2026-09-01 23:36:04 +0200 f67d7b7|synthese/00-methode.md
2026-09-02 00:00:07 +0200 7ae931c|synthese/DEROGATIONS-LABORATOIRE.md
2026-09-02 00:22:45 +0200 d46fac1|synthese/14-diachronie-2010-2019.md
2026-09-02 00:24:47 +0200 7e1fc52|synthese/13-diachronie-2000-2009.md
Marge mesurée : 24 minutes et 3 secondes entre la méthode et le fichier suivant, lequel est le
registre de dérogations créé vide par 07-02 — donc pas un résultat non plus. Le premier
résultat de la phase, synthese/14-diachronie-2010-2019.md, arrive 46 minutes et 41 secondes
après la méthode.
Le seul autre commit touchant synthese/00-methode.md avant les résultats est ab0c553
(§4.3, valeurs de forme republiées lisibles) : lui aussi ne porte qu'un fichier, conformément au
corollaire de CONVENTIONS §12.1 — une révision de la méthode est elle-même un événement daté,
motivé et commité seul. Le premier commit reste intact, donc la démonstration d'antériorité aussi.
Verdict : tenu. Prouvé par l'historique, pas déclaré.
Critère 2 — zéro échec de check-refs, statistique sur l'unité éditoriale, double publication au-delà de 1,3
« La synthèse transversale et la synthèse diachronique existent,
bin/check-refs.pyy passe avec zéro échec, et toute statistique publiée est calculée sur l'unité éditoriale (V7) et non sur l'URL — quand les deux divergent d'un facteur > 1,3, les deux valeurs sont publiées côte à côte avec l'explication de l'écart »
(a) Les fichiers existent.
ls synthese/1*.md synthese/2*.md
synthese/10-diachronie-1962-1979.md synthese/14-diachronie-2010-2019.md
synthese/11-diachronie-1980-1989.md synthese/15-diachronie-2020-2026.md
synthese/12-diachronie-1990-1999.md synthese/20-transversale.md
synthese/13-diachronie-2000-2009.md synthese/21-ligne-1976-2026.md
synthese/22-angles-morts-et-couverture.md
(b) Zéro échec de check-refs.
.venv/bin/python bin/check-refs.py ; echo "code $?"
OK — 898 citation(s) vérifiée(s) dans 147 fichier(s), 7 contrôles passés.
code 0
Chaque citation est vérifiée comme sous-chaîne du texte capturé versionné, et C7 vérifie de
surcroît qu'une référence de corps et la citation qu'elle nomme portent le même identifiant.
(c) La règle du facteur 1,3 est appliquée dans les deux sens — et c'est le point qui la rend crédible : elle discrimine. Les six relevés dénombrent chacun leur tranche avant tout comptage.
| Relevé | URL de contenu | Unités éditoriales | Rapport | Les deux valeurs publiées ? |
|---|---|---|---|---|
| 1962-1979 | 361 | 278 | 1,299 | juste sous le seuil — une seule valeur en statistique, le rapport est publié pour montrer la mesure |
| 1980-1989 | 414 | 121 | 3,42 | oui, avec l'écart expliqué (repliement de séries) |
| 1990-1999 | 1 080 | 295 | 3,66 | oui, avec l'écart expliqué (repliement de séries) |
| 2000-2009 | 653 | 594 | 1,10 | seuil non franchi ; les deux valeurs sont publiées quand même, « parce que la mesure devait être faite » |
| 2010-2019 | 371 | 371 | 1,00 | seuil non franchi ; aucune série à replier |
| 2020-2026 | 297 | 214 | 1,39 | oui — et l'écart n'est pas un repliement de série : 84 PDF dérivés des mêmes pages |
La cause de l'écart n'est jamais canonique, et le tableau le montre : trois franchissements du seuil pour trois causes distinctes. Le cas de 1962-1979 à 1,299 est celui qui prouve que la règle n'est pas décorative — le seuil n'a pas été « arrondi » pour se dispenser d'une double publication, ni forcé pour s'en donner le mérite.
La règle s'applique aussi à nous : synthese/22-angles-morts-et-couverture.md publie
95 pivots sur 1 836 unités = 5,2 % et 95 sur ≈ 2 869 URL = 3,3 %, rapport 1,56, côte à
côte. corpus/COUVERTURE-THEMATIQUE.md publie les quatre colonnes — unités et URL, des deux
côtés — pour les 48 familles, et non pour les seules dix qui franchissent le seuil.
Verdict : tenu.
Critère 3 — le fichier de laboratoire isole le matériau, et un contrôle automatisé le vérifie
«
synthese/90-laboratoire-falsifiable.mdexiste et isole les extensions numérologiques, polyédriques et géométriques ; aucune de ces références n'apparaît dans les sections opératoires (contrôle automatisé sur la liste des documents concernés) »
(a) Le fichier existe et porte ses deux versants distincts.
test -f synthese/90-laboratoire-falsifiable.md && grep -c '^## ' synthese/90-laboratoire-falsifiable.md
4
(b) Le contrôle passe sur le dépôt réel.
.venv/bin/python bin/check-synthese.py ; echo "code $?"
check-synthese : OK — 31 fichier(s) contrôlé(s) sur 32 parcouru(s), 11 contrôles passés (S-1..S-4, V-1..V-3, L-1..L-4).
code 0
(c) Et voici la commande qui vaut réellement quelque chose : la preuve que le contrôle mord.
Un contrôle qui sort en code 0 sur un dépôt propre ne prouve rien tant qu'on ne l'a pas vu refuser.
07-02 a écrit les fixtures avant le contrôle, et elles sont rejouables :
.venv/bin/python bin/check-synthese.py --racine tests/fixtures/synthese/cas-labo-en-section-operatoire ; echo "code $?"
synthese/30-lecture.md:7 · L-2 · « polyèdre » sous « ## Ce qui est utilisable tel quel ». Le matériau de laboratoire est légitime dans le fichier des heuristiques et dans les sections d'évaluation ; il est exclu des sections opératoires, qui sont celles où le lecteur cherche ce qui est utilisable tel quel. La règle est de rangement, pas de censure (synthese/00-methode.md §4.2)
ÉCHEC — 1 erreur(s) sur 2 fichier(s).
Les lexiques, les sections opératoires et les vocabulaires clos sont publiés dans synthese/00-methode.md §4 et §5, et lus par ce script ; ils ne se corrigent pas ici. Une dérogation au rangement du laboratoire s'écrit dans le registre ET sur la ligne, jamais dans l'un seulement.
code 1
Le fichier ne s'appelle pas comme le plan qui l'a commandé, et c'est un arbitrage, pas un
accident. 07-CONTEXT.md proposait 90-heuristiques-de-comprehension.md ; 07-10 a retenu
90-laboratoire-falsifiable.md, qui est le vocabulaire du critère ci-dessus et celui de tout le
reste du dépôt — DEROGATIONS-LABORATOIRE.md, L-1..L-4, documents_laboratoire,
lexique_laboratoire. Motif publié en synthese/00-methode.md §4.2 (ancre #nom-du-fichier).
Sept fichiers commités ont continué à nommer l'ancien chemin jusqu'au 2026-09-02 ; 07-14 les a
soldés et CONVENTIONS §12.3 porte la révision datée correspondante. Le contrôle, lui, n'a
jamais été concerné : il lit le nom dans la clef fichier_heuristiques de la méthode.
Verdict : tenu.
Critère 4 — aucune hiérarchisation par quantité publiée ; la position dans le corpus renvoie au graphe ou à un jugement nommé
Le critère du ROADMAP, cité mot pour mot — et ce bilan ne tranche sur la position d'aucun document dans le corpus : il faudrait le graphe de citations complet, que ce dépôt ne construit pas, et 95 pivots lus sur 1 836 ne permettent pas de le reconstituer.
« Aucune hiérarchisation par volume de publication n'apparaît nulle part ; toute affirmation de centralité renvoie soit au graphe de citations, soit à un jugement éditorial nommé comme tel »
(a) Les trois contrôles V-1, V-2, V-3 passent — inclus dans les 11 contrôles du critère 3
ci-dessus. V-1 applique la liste interdite sans réserve, V-2 exige l'un des trois marqueurs de
00-methode.md §3 pour tout emploi de la liste conditionnée, V-3 exige que le marqueur
graphe traîne son avertissement — et réciproquement, qu'un avertissement déclaré sans marqueur
soit refusé. La distinction entre les deux listes est le cœur de ce critère : on interdit la
quantité, on encadre la position.
(b) La commande de recherche brute — amendée, et voici pourquoi. Le plan 07-14 prescrivait :
grep -rniE "le plus prolifique|thème dominant|le plus traité" synthese/ tools/ parcours/
Cette commande rend cinq lignes, toutes dans synthese/00-methode.md. Ce n'est pas un échec du
critère : c'est le fichier qui publie le lexique, et il ne peut pas proscrire huit tours sans les
écrire. L'exemption est déclarée dans la méthode elle-même (fichiers_exemptes_lexique, une entrée,
justifiée en §4) plutôt que codée dans le contrôle — sinon elle s'étendrait un jour à un second
fichier sans que personne ne le voie.
La commande prescrite avait un second défaut, plus grave pour ce dépôt : elle recopie trois
termes du lexique dans un fichier tiers, alors que CONVENTIONS §12.2 interdit exactement cela.
Une commande de vérification qui fige sa propre copie du lexique cesse de vérifier le lexique le jour
où celui-ci change. La commande retenue lit les huit termes dans la méthode :
TERMES=$(sed -n '/^lexique_volume:/,/^lexique_centralite:/p' synthese/00-methode.md \
| grep -o '"[^"]*"' | tr -d '"' | paste -sd'|' -)
grep -rniE "$TERMES" synthese/ tools/ parcours/ --exclude=00-methode.md ; echo "code $?"
code 1
grep sort en code 1 : aucune occurrence dans les 29 fichiers écrits de la phase, hors le
fichier qui publie le lexique. Les huit tours sont couverts, pas seulement les trois du plan.
Verdict : tenu après amendement de la commande de vérification — le critère lui-même est
inchangé, seule la commande qui l'atteste a été corrigée, et dans le sens plus exigeant : huit termes
au lieu de trois, lus dans la méthode au lieu d'être recopiés.
Critère 5 — cinq familles, une fiche au moins par famille, six rubriques, outil distingué du discours
«
tools/<slug>.mdcouvre les cinq familles minimales (dialogue/conférence, désaccord et dilemmes, réseaux et organisation, métaphore cognitive, visualisation) avec au moins une fiche par famille, chaque fiche portant ses 6 rubriques imposées et distinguant explicitement « ce que l'outil fait » de « ce que Judge en dit » »
(a) Les cinq familles, et leur effectif réel. Le vocabulaire est clos et vérifié par S-2.
grep -h '^famille:' tools/*.md | sort | uniq -c
2 famille: desaccord-dilemmes
3 famille: dialogue-conference
3 famille: metaphore-cognitive
2 famille: reseaux-organisation
2 famille: visualisation
Ces douze lignes ne sont pas douze fiches : tools/README.md en porte une. Le décompte exact
est donc 11 fiches — desaccord-dilemmes 2, dialogue-conference 2, metaphore-cognitive 3,
reseaux-organisation 2, visualisation 2 — et chacune des cinq familles en a au moins une. Le
répertoire ne prétend pas à une couverture égale : tools/README.md publie la couverture famille par
famille, y compris quand elle est mince, et explique la minceur de visualisation par la nature
du matériau plutôt qu'en la comblant.
Cette commande a trouvé un défaut réel, et c'est sa seule justification d'exister.
tools/README.md publiait 2 · 3 · 3 · 2 · 2 et rangeait ways-of-looking.md en
desaccord-dilemmes, representation-en-reseau.md en reseaux-organisation. Le champ famille:
des deux fiches dit metaphore-cognitive et visualisation. La cause est écrite dans l'index
lui-même : il a été rédigé à partir des noms fixés dans les plans 07-11 et 07-12, « sans les
avoir lues », tandis que les fiches ont reçu leur famille après lecture. Règle appliquée, celle
de corpus/DERIVE.md : quand une prévision et une lecture divergent, la lecture fait foi.
07-14 a corrigé l'index et y a inscrit la correction datée. Le total de 11 et le plancher d'une
fiche par famille étaient vrais avant comme après ; c'est la répartition qui était fausse, et
seule une commande pouvait le voir.
(b) Les six rubriques, sur chaque fiche.
for f in tools/*.md; do echo "$(grep -c '^## ' $f) $f"; done
6 tools/README.md 6 tools/graphe-problemes-strategies.md
6 tools/cartographie-des-co-occurrences.md 6 tools/metaphore-instrument-cognitif.md
6 tools/conference-transformative.md 6 tools/representation-en-reseau.md
6 tools/desaccord-configure.md 6 tools/reseau-tensegrite.md
6 tools/dialogue-configure.md 6 tools/voies-metaboliques.md
6 tools/dilemmes-et-alternance.md 6 tools/ways-of-looking.md
S-4 vérifie que ce sont bien les six rubriques imposées — Intention, Entrées requises,
Procédure, Conditions de validité, Texte source, Verdict de transposabilité — et non six titres
quelconques.
(c) La distinction outil / discours.
grep -L "### Ce que Judge en dit" tools/*.md ; echo "code $?"
grep -L "### Ce que l'outil fait" tools/*.md ; echo "code $?"
code 1
code 1
Aucun fichier ne manque à l'appel. Le plan 07-14 attendait que tools/README.md ressorte de
cette commande ; la mesure dit qu'il ne ressort pas, parce qu'il porte lui aussi les deux
sous-titres. Le résultat est plus fort que le résultat attendu, et c'est la mesure qui est
publiée ici. S-4 impose ces deux sous-titres sous la rubrique ## Procédure et sous la rubrique
## Texte source respectivement : la distinction n'est pas typographique, elle est structurelle.
Verdict : tenu.
Critère 6 — trois à cinq parcours ordonnés, motivés, chiffrés, et un README lisible en cinq minutes
« 3 à 5 parcours guidés existent, chacun ordonné, motivé, chiffré en temps de lecture ; le
README.mdpermet à un tiers de comprendre en 5 minutes le contenu, la construction et l'usage de la base »
(a) Cinq parcours, dans la fourchette.
ls parcours/0*.md | wc -l
5
(b) Chacun est chiffré, et le chiffre est reproductible. Ce n'est pas une estimation : le temps
est mesuré sur corpus/text/, c'est-à-dire sur le texte de preuve versionné, à la convention
publiée de 200 mots par minute.
grep -h '^minutes_total:' parcours/0*.md | awk '{s+=$2} END {print s}'
300
Et une ligne quelconque se rejoue :
.venv/bin/python bin/temps-de-lecture.py --plage LIP-1986-compap 74 84
LIP-1986-compap §74-§84 : 3952 mots, 20 minutes a 200 mots/minute
Aucun parcours ne dépasse 66 minutes, et l'unité de lecture n'est jamais le document entier mais la plage de blocs — c'est ce qui rend un parcours finissable : les 95 pivots pèsent 1 128 035 mots, soit 5 641 minutes, soit 94 heures ; le document le plus long en coûte 650 à lui seul.
(c) Chacun est ordonné et motivé, et dit ce qu'il ne couvre pas. parcours/README.md publie les
cinq intentions avec, pour chacune, la phrase « pour qui » ; chaque fichier de parcours justifie
l'ordre de ses étapes et non seulement leur choix — parcours/05-transdisciplinarite.md va
jusqu'à annoncer que sa réponse est négative, ce qui est la forme la plus coûteuse et la plus
honnête d'une motivation.
(d) Le README.md de la racine. Réécrit par 07-14 — pas rafistolé — en cinq sections qui sont
exactement les trois questions du critère plus deux que le dépôt exige : ce que contient cette
base, comment elle a été construite, comment s'en servir, ce qu'elle ne couvre pas,
reproduire les mesures.
grep -c '^## ' README.md ; .venv/bin/python bin/temps-de-lecture.py --fichier README.md
5
README.md : 1504 mots, 8 minutes a 200 mots/minute
La seconde ligne contredit le libellé, et il faut le dire avant de conclure. À la convention de
lecture du dépôt — 200 mots par minute, celle-là même qui chiffre les cinq parcours — le README.md
coûte 8 minutes en lecture intégrale, pas 5. Tenir la borne littérale imposait de descendre sous
1 000 mots, ce qui n'était atteignable qu'en supprimant la section « Ce qu'elle ne couvre
pas » : la couverture de 5,2 %, le trou d'attribution des paroles d'IA, les onze justifications
démenties, les 50,0 % d'auto-cohérence. Le dépôt refuse cet échange — un README plus court
parce qu'il tait ses limites échangerait une minute contre l'honnêteté du seul document que lira un
tiers.
Ce qui est donc vérifié, et publié comme tel : cinq sections exactes, la structure qui répond aux
trois questions du critère plus les deux que le dépôt exige, et 1 504 mots / 8 minutes mesurés
par l'instrument du dépôt. Le libellé de PARCOURS-03 a été amendé en conséquence dans
.planning/REQUIREMENTS.md, avec sa date et sa mesure : une borne qu'aucune commande n'atteste est
remplacée par une grandeur qui, elle, s'atteste.
Verdict : tenu après amendement du libellé de PARCOURS-03`` — les trois exigences vérifiables
du critère (3 à 5 parcours, ordonnés, motivés, chiffrés) sont tenues sans réserve ; la borne de
cinq minutes est remplacée par une mesure publiée.
Ce que la phase 7 n'a pas fait
Six limites, écrites ici et non découvertes après. Le détail chiffré et ses onze entrées vivent dans
synthese/22-angles-morts-et-couverture.md ; ce qui suit est ce qu'on ne peut pas ignorer en lisant
les livrables de cette phase.
1. La synthèse transversale s'appuie sur six relevés, pas sur les 95 notes. C'est la méthode
déclarée en 00-methode.md §7, et son prix y est écrit avant d'avoir été payé : une ligne de
force portée par une seule note et non retenue par le relevé de sa décennie ne remonte pas. Il
n'y a pas de rattrapage prévu, et prétendre le contraire serait faux. La réciproque limite le dégât
sans l'annuler : chaque relevé est exhaustif sur sa tranche et porte un champ angles_morts
consultable — ce qu'il écarte, il l'écarte explicitement.
2. La base couvre 5,2 % du corpus. 95 pivots lus sur 1 836 unités éditoriales ; 3,3 % si l'on compte en URL. Ce que la phase 7 publie est une lecture arbitrée de vingt documents sur mille. Aucune phrase de cette phase ne décrit « Judge » : elles décrivent 95 textes, nommés.
3. FO-01 et FO-03 restent sans réponse de l'auteur, et on n'en conclut rien. Les deux fils
ouverts de la correspondance ont reçu leur point de sortie côté dépôt —
tools/voies-metaboliques.md pour FO-01, tools/ways-of-looking.md et parcours/README.md pour
FO-03 — mais l'absence de réponse de Judge n'est pas une donnée : elle ne vaut ni confirmation,
ni infirmation, et le silence d'un auteur de 89 ans sur une question posée deux jours plus tôt ne
s'interprète pas. Les fils restent ouverts dans sources/correspondance/FILS-OUVERTS.md.
4. La transposition TURFu est hors périmètre, et le rester est ce qui protège la synthèse. Aucun
fichier de synthese/, tools/ ou parcours/ ne dit ce que TURFu devrait importer. Ce n'est pas
un renvoi de charge à la phase 8 : c'est la condition pour que la synthèse ne soit pas orientée par
sa destination. Une synthèse écrite en sachant ce qu'elle doit alimenter trouve ce qu'elle cherche.
5. Rien ne vérifie la qualité des inférences. Le dépôt vérifie mécaniquement ses citations, ses identifiants, ses ancres, ses plafonds et ses lexiques. Qu'une ligne de force soit datée à ses deux bouts est contrôlable ; qu'elle soit la bonne ne l'est pas. Aucune contre-lecture indépendante des livrables de la phase 7 n'est prévue, et le seul chiffre de reproductibilité que le dépôt possède — 50,0 % d'auto-cohérence, intervalle de Wilson 33,2–66,8 — porte sur la classification de la phase 6, pas sur la synthèse, et provient du même agent à contexte séparé, ce qui n'est pas un accord entre annotateurs.
6. Le dépôt n'est pas rejouable à froid sur toute sa chaîne. Les contrôles, les mesures de temps
de lecture, l'index des citations et le rapport d'évaluation se régénèrent hors ligne depuis un clone
frais. La capture ne se rejoue pas sans réseau, et bin/survol.py non plus. La phase 9 porte le
protocole de reprise ; à ce jour, ce que garantit ce dépôt est la vérifiabilité de ses
affirmations, pas la reconstitution intégrale de son acquisition.
Les chiffres publiés par cette phase, et d'où ils viennent
Règle de 06-17, appliquée ici sans exception : une grandeur publiée est lue dans le fichier qui
en fait autorité, jamais recopiée. La colonne « commande » est ce qui rend cette table
réfutable.
| Grandeur | Valeur | Fichier qui en fait autorité | Commande |
|---|---|---|---|
| Unités éditoriales (V7) | 1 836 | docs/CARTOGRAPHIE.md §5 |
grep -n 'V7 — unités éditoriales' docs/CARTOGRAPHIE.md |
URL de contenu (V4, hors .pdf) |
≈ 2 869 | docs/CARTOGRAPHIE.md |
grep -n 'union_totale' docs/CARTOGRAPHIE.md |
| Pivots lus | 95 | notes/ |
ls notes/LIP-*.md | wc -l |
| Couverture sur l'unité | 5,2 % | synthese/22-angles-morts-et-couverture.md |
grep -n '5,2 %' synthese/22-angles-morts-et-couverture.md |
| Citations déclarées dans les notes | 684 | notes/LIP-*.md |
grep -c ' - ref: c' notes/LIP-*.md | awk -F: '{s+=$2} END {print s}' |
| Citations vérifiées, tout le dépôt | 898 dans 147 fichiers | sortie de bin/check-refs.py |
.venv/bin/python bin/check-refs.py |
| Documents source indexés en citations | 97 | corpus/index/citations.json |
.venv/bin/python bin/citations-index.py |
| Marge de citation la plus étroite | 83 mots sur LIP-1995-dialog |
docs/LICENCE.md §4 + corpus/index/citations.json |
.venv/bin/python bin/citations-index.py --budget |
| Unités classées par la phase 6 | 535 | corpus/classification-perimetre.json |
.venv/bin/python -c "import json;print(json.load(open('corpus/classification-perimetre.json'))['nb_unites'])" |
| Unités classées par Judge | 1 221 (dont 4 après 2010) | corpus/COUVERTURE-THEMATIQUE.md |
head -8 corpus/COUVERTURE-THEMATIQUE.md |
| Mots des 95 notes | 117 629 | notes/ |
cat notes/LIP-*.md | wc -w |
| Journaux de lecture | 15 (17 621 mots) | notes/journal/ |
ls notes/journal/*.md | wc -l |
| Mots du texte de preuve des 95 pivots | 1 128 035 | corpus/text/ |
.venv/bin/python bin/temps-de-lecture.py |
| Minutes des cinq parcours | 300 | parcours/0*.md (frontmatter) |
grep -h '^minutes_total:' parcours/0*.md | awk '{s+=$2} END {print s}' |
| Fiches d'outils | 11 en 5 familles | tools/ |
grep -h '^famille:' tools/*.md | sort | uniq -c (moins tools/README.md) |
| Auto-cohérence du contre-arbitrage | 50,0 % (Wilson 33,2–66,8) | corpus/CONTRE-ARBITRAGE.md |
grep -n '50,0' corpus/CONTRE-ARBITRAGE.md |
| Justifications de sélection démenties | 11 sur 95 (11,6 %) | corpus/DERIVE.md |
grep -n 'justifications démenties sur 95' corpus/DERIVE.md |
| Part du texte 2024-2026 non écrite par Judge | 86,3 % (52 195 mots sur 382 050) | synthese/15-diachronie-2020-2026.md |
grep -n '86,3' synthese/15-diachronie-2020-2026.md |
URL hors périmètre v1 (kairos) |
7 715 | docs/KAIROS.md |
grep -n '7 715' docs/KAIROS.md |
Deux grandeurs de ce tableau ne s'additionnent jamais à une autre. 684 (citations déclarées dans les notes) et 898 (citations vérifiées dans tout le dépôt) comptent des objets différents : la seconde inclut les synthèses, les fiches, les parcours et les sources externes. De même, 1 836 (unités) et 2 869 (URL) comptent des objets différents — c'est le rapport 1,56 du critère 2.
Les sept contrôles bloquants de la phase, en une commande
Le plan 07-14 en annonçait huit. La mesure en dénombre sept : bin/check-*.py rend sept
fichiers, et bin/citations-index.py --budget — qui bloque aussi — n'est pas un check-*. C'est la
mesure qui est publiée.
for c in check-refs check-synthese check-generated check-pivots check-wayback check-classification; do
.venv/bin/python bin/$c.py > /dev/null 2>&1; echo "$c -> $?"
done
.venv/bin/python bin/check-notes.py --complet > /dev/null 2>&1; echo "check-notes -> $?"
check-refs -> 0
check-synthese -> 0
check-generated -> 0
check-pivots -> 0
check-wayback -> 0
check-classification -> 0
check-notes -> 0
Aucun de ces sept n'a été déclaré opérationnel avant d'avoir été vu échouer. C'est la règle du dépôt, et le critère 3 ci-dessus en donne l'illustration exécutable.