Méthode de la phase 7
Régime écrit (CONVENTIONS.md §3) : aucun script n'écrit dans ce fichier ; plusieurs le
lisent. bin/citations-index.py --budget y lit son allocation, bin/check-synthese.py y lira
ses lexiques. Si un script et ce document divergent, c'est le script qu'on corrige — la valeur
se décide ici, dans le texte qui l'argumente, jamais dans le code qui l'applique. C'est la règle
déjà appliquée aux plafonds de citation (docs/LICENCE.md §4, 03-CONTEXT.md M1).
Ce fichier est commité seul et avant le premier fichier de résultats de la phase. Ce n'est pas une formalité de présentation : une méthode écrite après coup n'est pas une méthode, c'est une justification. L'historique git en fait foi, pas cette phrase.
§1 — Ce que cette phase mesure, et sur quoi
Le matériau est clos avant que la phase commence. Il est nommé et chiffré :
| Matériau | Volume | Commande de vérification |
|---|---|---|
| Notes de lecture (une par pivot) | 95 notes, 117 629 mots | ls notes/LIP-*.md | wc -l · cat notes/LIP-*.md | wc -w |
| Citations vérifiées sous-chaîne | 684 | grep -c ' - ref: c' notes/LIP-*.md | awk -F: '{s+=$2} END {print s}' |
| Journaux de lecture (un par lot) | 15 journaux, 17 621 mots | ls notes/journal/*.md | wc -l · cat notes/journal/*.md | wc -w |
| Unités classées en phase 6 | 535 | corpus/index/classification.json (nb_unites) |
| Rapport d'évaluation des pivots | 1 | corpus/EVALUATION.md |
Zéro requête réseau sur toute la phase. Tout est déjà dans le dépôt : le texte capturé
(corpus/text/), les registres d'identifiants, les index générés. Une phase de synthèse qui
rouvrirait le réseau introduirait une source non versionnée dans un raisonnement censé être
rejouable dans cinq ans.
Une correction de mesure, faite ici plutôt que tue. Le ROADMAP et le plan 07-01 annonçaient
14 journaux de lecture pour 17 621 mots. Le dépôt en porte 15 (05-04 à 05-18), pour
exactement 17 621 mots — le total était juste, le décompte de fichiers ne l'était pas. La mesure
gagne sur le plan ; le chiffre corrigé est celui du tableau ci-dessus.
Ce que ces 95 notes sont, et ne sont pas. Elles sont une lecture arbitrée, avec citation
localisée et vérifiée mécaniquement. Elles ne sont pas un échantillon statistique du corpus :
la sélection des pivots (phase 4) est délibérée, sous quotas décennaux, et son journal de
dérive (corpus/DERIVE.md) existe précisément parce qu'elle a été discutée et non tirée au sort.
Aucune grandeur publiée par la phase 7 ne doit donc être présentée comme une propriété du corpus
entier alors qu'elle est une propriété des 95 pivots lus.
§2 — La règle qui gouverne tout : l'unité éditoriale
Toute grandeur publiée se calcule sur l'unité éditoriale, jamais sur l'URL.
| Dénombrement | Valeur | Ce que c'est |
|---|---|---|
| V7 — unités éditoriales | 1 836 | le dénominateur, après repliement des six familles de séries génératives |
| V4 — URL de contenu | ≈ 2 869 | des adresses, dont 804 fragments de séries |
Quand les deux divergent d'un facteur supérieur à 1,3, les deux valeurs sont publiées côte à
côte, avec l'explication de l'écart. Le seuil vient du critère 2 de la phase 7 ; la phase 6 l'a
appliqué par anticipation (CONVENTIONS §10.5).
Ce n'est pas un cas d'école, c'est le cas ordinaire. Mesures de la phase 6, publiées dans
corpus/COUVERTURE-THEMATIQUE.md :
- 1,35 côté classification de Judge (1 643 URL pour 1 217 unités) ;
- 1,73 côté périmètre post-2010 (926 URL pour 535 unités) ;
- dix familles du versant ancien franchissent 1,3 à elles seules —
azdata1,84,azvalue1,79,azhuman1,65,aztime1,60,azprobl1,59,azrelat1,47,azstrat1,46,azparad1,46,azconfi1,41,azknowl1,34.
Sans repliement, 1997 paraîtrait vingt fois plus productif que 1996 — alors que c'est une seule œuvre, les 450 hexagrammes de Transformation Metaphors. Une phase qui publierait des courbes de production annuelle sur l'URL fabriquerait une histoire du corpus qui n'a pas eu lieu.
Corollaire de forme, gelé en 06-17, et il n'est pas cosmétique : le code de famille figure
toujours dans un tableau, jamais le seul titre. azvalue et azhuman portent le même titre
dans themes.json ; azquests et azrelat en ont deux presque identiques. Un tableau par titre
aurait fondu azvalue — la seule famille éteinte après 2010 — dans azhuman, qui continue.
§3 — Centralité : comment on en parle sans se tromper deux fois
Première erreur, interdite : hiérarchiser par volume de publication. Aucune affirmation du type « le thème le plus traité », « le plus prolifique », « surreprésenté » n'apparaît nulle part dans les livrables de cette phase (critère 4 du ROADMAP). Motif mesuré : les index thématiques de Judge s'arrêtent en 2010, et le repliement des séries change les rangs. Un classement par volume thématique effacerait seize ans de corpus et couronnerait une œuvre unique découpée.
Seconde erreur, plus subtile, et c'est celle contre laquelle ce paragraphe existe : croire que le
graphe de citations est un substitut innocent au volume. Il ne l'est pas. La phase 5 l'a mesuré
document par document, et le constat revient dans six journaux de lecture (05-06, 05-09,
05-10, 05-13, 05-14, 05-16) : la centralité entrante mesure l'indexation, pas la
substance.
LIP-1993-poetpol0— centralité entrante 229, la plus haute de son lot. C'est un sommaire, et un sommaire est massivement lié. « Un document très central peut ne rien contenir. »LIP-1991-conftr0— quarante-six titres de collection qui ne valent pas quarante-six positions ; sa note de lecture fait 2,3 fois la longueur de sa source de 333 mots.LIP-1970-infwill0— page de garde : dans un site où les documents longs sont éclatés en pages numérotées, la page0capte les liens et le texte vit ailleurs. Même cas surLIP-1978-numb0, centralité 147 pour 291 mots.
Judge lui-même formule la réserve sur son propre corpus (LIP-2015-laetmaps), et sa FAQ de 2007
la redouble : la centralité entrante y mesure une politique éditoriale revendiquée, pas une
importance.
Les trois registres autorisés, et eux seuls. Toute phrase de la phase 7 qui affirme qu'un document, un thème ou une position est central relève de l'un de ces trois registres, et le déclare mécaniquement par un marqueur en fin de ligne :
| Registre | Marqueur en fin de ligne | Ce qu'il exige en plus |
|---|---|---|
| Graphe de citations | <!-- CENTRALITE: graphe --> |
le fichier déclare avertissement_centralite: "synthese/00-methode.md#centralite" dans son frontmatter |
| Jugement éditorial nommé comme tel | <!-- CENTRALITE: jugement editorial --> |
la phrase nomme qui juge et sur quel critère |
| Refus de trancher | <!-- CENTRALITE: refus --> |
la phrase dit ce qui manquerait pour trancher |
Le marqueur est un commentaire HTML : invisible au rendu, lisible par un contrôle, diffable en git. Le registre « graphe » n'est donc jamais gratuit — il traîne obligatoirement l'avertissement ci-dessus avec lui, et c'est exactement le point : on peut citer la centralité, on ne peut pas la citer sans dire ce qu'elle mesure.
L'ancre #centralite de cette section est le point de renvoi de tous les fichiers de la phase.
§4 — Les deux lexiques, publiés ici et lus par le contrôle, jamais codés
Même dispositif que les plafonds de docs/LICENCE.md : bin/check-refs.py n'a aucune valeur par
défaut, et l'absence du bloc le fait sortir en code 2. Les listes ci-dessous sont lues de la même
façon par le contrôle de la phase 7. Un lexique codé en dur est un lexique qu'on desserre sans
laisser de trace.
4.1 Le lexique interdit — volume et centralité
lexique_volume:
- "le plus prolifique"
- "le plus abondant"
- "le plus traité"
- "le plus représenté"
- "thème dominant"
- "sujet majeur"
- "surreprésenté"
- "prédominance"
lexique_centralite:
- "central"
- "centralité"
- "le plus cité"
- "pivot du corpus"
lexique_volume est interdit sans réserve : chacun de ces huit tours affirme un classement par
quantité de publication, et aucun n'est calculable honnêtement sur un corpus dont l'indexation
s'arrête en 2010 et dont les séries sont repliées. « Surreprésenté » et « prédominance » y figurent
parce qu'ils font le même travail que « le plus traité » en ayant l'air d'une observation neutre.
lexique_centralite n'est pas interdit : il est conditionné. Ces quatre termes sont légitimes —
il faut bien pouvoir parler de centralité — mais chacun de leurs emplois exige l'un des trois
marqueurs de §3. La distinction entre les deux listes est le cœur du critère 4 : on interdit
le volume, on encadre la centralité.
4.2 Le lexique du laboratoire, et les sections dont il est exclu
lexique_laboratoire:
- "polyèdre"
- "polyédrique"
- "polyhedr"
- "icosaèdre"
- "dodécaèdre"
- "tenségrité"
- "I Ching"
- "hexagramme"
- "ennéagramme"
- "numérolog"
- "nombre d'or"
- "géométrie sacrée"
sections_operatoires:
- "## Ce que Judge soutient"
- "## Ce qui est utilisable tel quel"
- "## Inflexions datées"
- "## Intention"
- "## Entrées requises"
- "## Procédure"
- "## Conditions de validité"
Pourquoi ces douze termes. Ils désignent le matériau que Judge produit avec l'appareil
académique complet — notes, bibliographies, figures — sur des objets dont il déclare lui-même ne
pas avoir la compétence formelle : « I do not have that competence and am much more focused on
issues of comprehension of complexity as may be reflected in polyhedra ». polyhedr est laissé en
racine anglaise parce que les titres sont en anglais ; numérolog en racine française parce que la
prose de la phase l'est. I Ching, hexagramme et ennéagramme relèvent du versant
numérologique, que l'aveu de compétence de Judge ne couvre pas — deux sous-sections
distinctes en synthese/90-laboratoire-falsifiable.md, jamais une seule.
Le nom du fichier — révision du 2026-09-02, plan 07-10, tranchée plutôt que laissée en double.
Ce document avait rebaptisé le fichier 90-heuristiques-de-comprehension.md
d'après 07-CONTEXT.md décision a, alors que le critère 3 du ROADMAP et SYNTH-03 de
REQUIREMENTS.md nomment tous deux 90-laboratoire-falsifiable.md. Les deux noms ne peuvent pas
coexister : bin/check-synthese.py lit fichier_heuristiques et n'applique L-1 et L-4 qu'au
fichier ainsi nommé — un fichier écrit sous l'autre nom ne serait contrôlé par rien. Le nom retenu
est celui du critère de sortie, pour trois raisons : c'est sur lui que la phase sera vérifiée ;
« laboratoire » est déjà le vocabulaire du dépôt partout ailleurs (DEROGATIONS-LABORATOIRE.md, la
famille L-1..L-4, le champ documents_laboratoire, la clef lexique_laboratoire), le nom du
fichier en étant la seule exception ; et c'est le vocabulaire de la phase 8, dont la grille
importable / inspirant / laboratoire obligerait sinon à renommer une seconde fois. Le recadrage
de 07-CONTEXT.md est conservé entier — il portait sur le critère d'évaluation, qui reste
l'utilité cognitive vérifiable et non la validité formelle, et un critère ne dépend pas d'un nom de
fichier. La clef fichier_heuristiques garde son nom de clef : c'est le contrôle qui la lit, et la
renommer déplacerait une valeur de configuration hors de ce document sans rien clarifier.
Ce que ces termes ont le droit de faire. Ils sont parfaitement légitimes dans le fichier du laboratoire falsifiable et dans les sections d'évaluation. Ils sont exclus des sept sections opératoires listées ci-dessus, qui sont celles où le lecteur cherche ce qui est utilisable tel quel. La règle est de rangement, pas de censure : mélanger l'opératoire au spéculatif est précisément ce que le projet existe pour éviter.
Ce que documents_laboratoire a le droit de faire — révision du 2026-09-02, entre les vagues 3
et 4, motivée par une mesure.
bin/check-synthese.py appliquait L-2 à deux objets : les douze termes ci-dessus, et tout
identifiant inscrit en documents_laboratoire. La seconde application était une erreur de portée,
et elle a coûté :
| Constat | Tranche | Mesure |
|---|---|---|
07-04 |
1980-1989 | 7 documents sur 13 innommables dans « Ce que Judge soutient » et « Inflexions datées » — dont un qui propose cinq modes de défaillance d'un réseau utilisables « sans rien devoir à l'appareil du Yi King qui suit » |
07-05 |
1990-1999 | déclarer honnêtement les six documents concernés interdisait de nommer quatre des textes les plus opératoires de la décennie |
07-07 |
2010-2019 | une lecture large du champ aurait couvert 10 à 12 documents sur 14 et rendu les sections opératoires « littéralement inécrivables » |
Trois exécuteurs parallèles, trois tranches disjointes, le même défaut. Aucun n'a rétréci sa liste
pour racheter des droits de nommage — ce qui aurait été gerrymanderer un registre destiné à 07-10
—, aucun n'a touché à ce fichier, tous ont déclaré le coût et remonté la décision. Les six relevés
commités déclarent en tout 31 documents de laboratoire pour 95 pivots lus : c'est un tiers du
corpus lu qui devenait innommable dans les sections opératoires, avec sa part opératoire, qui est
réelle.
La règle, désormais, et elle est plus exigeante que celle qu'elle remplace. Un document inscrit
en documents_laboratoire peut être invoqué sous une section opératoire par une portée
localisée — [LIP-AAAA-slug]§N ou [LIP-AAAA-slug]#ancre, accolée à l'identifiant visé sur la
même ligne. Invoqué en bloc — mention nue, ou [LIP-AAAA-slug] sans §N ni ancre — il reste
refusé.
Quatre raisons, dans l'ordre de leur poids :
- C'est la discipline que le dépôt applique déjà partout ailleurs. La phase 5 a établi
l'évaluation à portées disjointes (
portee: "§N-§M"), et son critère 5 exige explicitement qu'un même document puisse porter plusieurs étiquettes sur des portées différentes. Un document n'est pas spéculatif en bloc : il l'est à un endroit.L-2était la seule règle de la phase 7 à l'ignorer. - Le critère 3 du ROADMAP sépare des extensions, pas des documents. Il demande d'isoler « les
extensions numérologiques, polyédriques et géométriques » ; la liste
documents_laboratoiredit au contrôle où regarder, elle ne bannit pas ces documents d'un revers. - La règle est de rangement, pas de censure — le paragraphe précédent le dit déjà, et le contrôle disait autre chose. Une règle qui rend les sections opératoires inécrivables sur un tiers du corpus n'est plus du rangement.
- Exiger une portée est plus exigeant, pas moins. L'ancien interdit se contournait sans laisser
de trace, en sous-déclarant
documents_laboratoire: le contrôle ne vérifie pas qu'une liste est complète, il ne peut pas. La nouvelle règle est une obligation de précision — si tu invoques un document de laboratoire pour sa part opératoire, dis exactement où elle est. C'est une forme de renvoi que§6déclare de surcroît gratuite au regard du plafond de citation : il n'y a aucun coût à la payer.
Ce que cette révision ne touche pas, et c'est l'essentiel. La clause des douze termes est
inchangée : « polyèdre » ou « hexagramme » sous une section opératoire reste fautif, quel que
soit le document, et une portée sur la même ligne ne le blanchit pas. C'est cette clause-là qui
porte le fond du critère 3. La porte de sortie L-3 et ses quatre réciproques L-3a..L-3d sont
inchangées elles aussi — elles servent aux cas où le matériau de laboratoire lui-même doit
apparaître.
Vérification, dans les deux sens :
python3 bin/check-synthese.py --racine tests/fixtures/synthese/cas-labo-doc-localise rend 0 ;
… --racine tests/fixtures/synthese/cas-labo-doc-en-bloc rend 1 (L-2) ;
… --racine tests/fixtures/synthese/cas-labo-terme-avec-portee rend 1 (L-2, sur le terme).
Les six relevés de la vague 3, rejoués un à un sous l'ancien contrôle et sous le nouveau, sortent en
code 0 dans les douze cas : la révision ne rachète rien de ce qui était déjà écrit, elle ouvre ce que
la vague 4 pourra écrire.
Ces quatre listes sont révisables par ce fichier seul. Une révision est un événement écrit, daté, motivé, commité — pas un contournement dans un script.
4.3 Les valeurs de forme, lues par le même contrôle
Révision du 2026-09-01, plan 07-02, motivée. §3, §4.2 et §5 décrivaient en prose et en
tableaux des valeurs que bin/check-synthese.py doit appliquer : les trois marqueurs de centralité,
les cinq familles d'outils, les six rubriques d'une fiche, les champs du relevé de décennie. Une
valeur décrite en prose n'est pas lisible par un contrôle ; elle aurait donc fini codée en dur
dans le script, c'est-à-dire desserrable sans trace — exactement ce que §4 interdit. Elles sont
republiées ici sous forme lisible, sans rien changer à ce que §3, §4.2 et §5 disent déjà.
espaces_controles:
- synthese
- tools
- parcours
fichiers_exemptes_lexique:
- "synthese/00-methode.md"
registres_centralite:
graphe: "<!-- CENTRALITE: graphe -->"
jugement_editorial: "<!-- CENTRALITE: jugement editorial -->"
refus: "<!-- CENTRALITE: refus -->"
registre_exigeant_avertissement: "graphe"
champ_avertissement_centralite: "avertissement_centralite"
marqueur_lab_renvoi: "<!-- LAB-RENVOI -->"
fichier_heuristiques: "synthese/90-laboratoire-falsifiable.md"
sous_sections_laboratoire:
- "## Le versant polyédrique"
- "## Le versant numérologique"
registre_derogations_laboratoire: "synthese/DEROGATIONS-LABORATOIRE.md"
mots_minimum_motif_derogation: 15
champs_releve_decennie:
- type
- bornes
- notes_lues
- mots_sources_lus
- lignes_de_force
- contradictions_reperees
- outils_reperes
- documents_laboratoire
- angles_morts
- citations
familles_outils:
- dialogue-conference
- desaccord-dilemmes
- reseaux-organisation
- metaphore-cognitive
- visualisation
rubriques_fiche_outil:
- "## Intention"
- "## Entrées requises"
- "## Procédure"
- "## Conditions de validité"
- "## Texte source"
- "## Verdict de transposabilité"
sous_titres_fiche_outil:
- "### Ce que l'outil fait"
- "### Ce que Judge en dit"
fichiers_exemptes_lexique mérite sa justification, parce que c'est une exemption. Ce fichier
est le seul du dépôt qui doit nommer les huit tours interdits et les douze termes de
laboratoire : il ne peut pas les proscrire sans les écrire. L'exemption est donc structurelle, elle
porte sur le fichier qui publie le lexique et sur lui seul, et elle est déclarée ici plutôt que
codée dans le contrôle — sinon elle s'étendrait un jour à un second fichier sans que personne ne le
voie.
mots_minimum_motif_derogation: 15 n'est pas un arrondi. C'est le précédent de la
justification de dix mots exigée par CONVENTIONS §10.4 pour reserve = par_defaut, relevé de
cinq mots : une dérogation qui déplace du matériau spéculatif dans une section opératoire coûte
plus cher à justifier qu'un classement par défaut.
§5 — Le schéma du relevé de décennie
Six plans diachroniques lisent six tranches, en parallèle. Ils produisent le même frontmatter, sans quoi la synthèse transversale, les fiches d'outils et les parcours devraient relire les 95 notes — 117 629 mots — au lieu de lire six frontmatters.
type: diachronie
bornes: "1962-1979"
notes_lues: [LIP-1962-62uia, ...] # exhaustif == la tranche, sans trou ni surplus
mots_sources_lus: 28007 # MESURÉ (wc -w), jamais estimé
lignes_de_force:
- enonce: "..." # une POSITION, pas un thème
depuis: 1962 # année du plus ancien appui
appui: "[LIP-AAAA-slug]§4@c1" # identifiant réel + ancre ou §N + @cN
contradictions_reperees: [{avec: LIP-..., nature: "...", entre: [LIP-..., LIP-...]}]
outils_reperes:
- famille: dialogue-conference # vocabulaire CLOS, cinq valeurs
id: LIP-AAAA-slug
appui: "[LIP-AAAA-slug]§12"
documents_laboratoire: [LIP-...] # matériau numérologique / polyédrique / géométrique
angles_morts: ["..."] # ce que la tranche NE fait pas
citations: [{id: LIP-..., ref: c1, ancre: null, bloc: 12, texte_en: "...", attribution_tiers: null}]
Vocabulaire clos de outils_reperes[].famille — cinq valeurs, aucune autre :
dialogue-conference, desaccord-dilemmes, reseaux-organisation, metaphore-cognitive,
visualisation. Ce sont les cinq familles minimales du répertoire d'outils (critère 5). Un
vocabulaire clos rend l'agrégation des six relevés mécanique ; un vocabulaire ouvert obligerait à
réconcilier six nomenclatures après coup.
enonce est une position, pas un thème. « La métaphore » n'est pas une ligne de force ;
« une métaphore n'est utile que si elle rend une complexité plus manipulable que la liste
équivalente » en est une : elle peut être datée, appuyée, et contredite.
Deux contraintes de forme que le schéma impose au contrôle de citations. Dans
synthese/, tools/ et parcours/, le nom du fichier n'est pas un identifiant LIP : chaque
entrée de citations: doit donc porter son propre champ id: (bin/check-refs.py,
identifiant_de). Et les ref: sont uniques dans le fichier — c1, c2, … sans réemploi d'un
document source à l'autre —, parce que refs_declarees est un ensemble plat par fichier.
§6 — L'allocation du budget de citation, et son arithmétique
docs/LICENCE.md §4 plafonne à 300 mots cités par document source, cumulés sur tout le dépôt
(contrôle C5 de bin/check-refs.py). Le compteur est par document source, jamais par
fichier : quinze fichiers qui citent chacun 40 mots du même document ont épuisé le plafond.
Ce que les notes ont déjà consommé (corpus/EVALUATION.md §5) : 11 045 mots au total,
116 en moyenne par note, 167 au pire. La marge la plus étroite du dépôt est donc de
133 mots, sur LIP-2012-geozero.
Les trois espaces de la phase 7 — synthese/, tools/, parcours/ — écrivent en parallèle,
en vagues 3 et 4. Sans allocation préalable, le dernier plan commité découvrirait le dépassement
après toute la rédaction, et il faudrait défaire du travail déjà fait pour tenir un plafond
juridique. D'où :
allocation_citation:
synthese: 40
tools: 40
parcours: 20
reserve_phases_8_9: 30
L'arithmétique, écrite pour être vérifiable : 40 + 40 + 20 + 30 = 130 ≤ 133, la marge mesurée la plus étroite du dépôt. La réserve de 30 n'est pas un arrondi : c'est la part des phases 8 (transposition) et 9 (livrable PDF et exports), qui citeront les mêmes documents et n'auront plus de marge à négocier quand elles arriveront.
Ces quotas sont par document source ET par espace. synthese: 40 ne signifie pas « 40 mots
pour tout synthese/ » : il signifie « au plus 40 mots cités de chaque document source dans
tout synthese/ ».
La voie normale d'un renvoi ne consomme rien. [LIP-xxxx-yyy]§34 et [LIP-xxxx-yyy]#ancre
coûtent zéro mot au plafond, puisque C5 ne cumule que les texte_en du frontmatter. Un texte
qui manque de budget n'a presque jamais besoin de citer davantage : il a besoin de renvoyer mieux.
Le contrôle, et sa réciproque. bin/citations-index.py --budget :
| Situation | Code |
|---|---|
bloc allocation_citation absent ou incomplet |
2 (configuration) |
| un espace dépasse son quota sur un document source | 1 |
somme(allocation) > marge la plus étroite mesurée sur le dépôt |
1 |
| sinon | 0 |
La troisième ligne est celle qui compte. Sans elle, il suffirait d'éditer ce fichier pour
desserrer le budget — c'est-à-dire de déplacer la contrainte au lieu de la tenir. La marge est donc
re-dérivée du dépôt à chaque exécution (plafond de docs/LICENCE.md moins la consommation
maximale des notes), jamais recopiée : le nombre 133 ci-dessus est une mesure datée du
2026-09-01, pas une constante du code.
Mention datée du 2026-09-02, phase 9, plan 09-03 — la réserve couvre désormais trois répertoires
La clef ne change pas et sa valeur ne change pas. allocation_citation reste
synthese 40, tools 40, parcours 20, reserve_phases_8_9 30, somme 130, et la marge de référence
re-dérivée du dépôt vaut toujours 133 mots sur LIP-2012-geozero. Seule la table des
répertoires que la clef recouvre a bougé, dans bin/citations-index.py :
reserve_phases_8_9 était rapportée au seul transposition/ ; elle l'est désormais à
transposition/, deliverables/ et exports/.
Le motif. deliverables/ et exports/ sont du publié, et le plus exposé du dépôt : c'est ce
qui sort. Or ni l'un ni l'autre n'était compté. Mesuré le 2026-09-02 : une fixture de livrable
consommant 40 mots cités d'un même document source sortait en code 0 avec l'ancienne table, et
sort en code 1 avec la nouvelle (tests/fixtures/citations/cas-livrable-depassement, vue verte
avant, rouge après ; la réciproque cas-livrable-sous-quota, à 10 mots, reste verte).
Un plafond qui ne voit pas le publié n'est pas un plafond — c'est exactement le trou que 07-02
avait comblé pour parcours/, à ceci près qu'il portait ici sur le livrable lui-même.
Pourquoi aucun mot n'a été alloué en plus, et pourquoi il ne pouvait pas y en avoir.
130 alloués pour 133 de marge : il reste 3 mots de latitude sur tout le dépôt. Créer un quota
neuf pour le livrable était donc arithmétiquement exclu. Le livrable se prend sur les 30
existants, jamais en plus. La phase 8 n'a consommé que 16 de ces 30 (mesuré :
LIP-1984-84patlan 6, CORR-2026-09-02-judge-devuyst 10) : 14 mots restent sur le document le
plus consommé, 20 sur tous les autres.
La conduite retenue pour le rapport de la phase 9 : renvoyer, et ne pas citer. Le renvoi
localisé — [LIP-xxxx-yyy]§34, #ancre — coûte zéro mot, puisque C5 ne cumule que les
texte_en du frontmatter (voir plus haut dans ce même §6). C'est la conduite de la phase 8, qui a
rendu 83 % de son budget. Un rapport qui manque de budget n'a presque jamais besoin de citer
davantage : il a besoin de renvoyer mieux.
Mention datée du 2026-09-03, phase 10, plan 10-03 — la réserve couvre désormais quatre répertoires
La clef ne change pas et sa valeur ne change pas. allocation_citation reste
synthese 40, tools 40, parcours 20, reserve_phases_8_9 30, somme 130, et la marge de référence
re-dérivée du dépôt vaut toujours 133 mots sur LIP-2012-geozero. Seule la table des
répertoires que la clef recouvre a bougé, dans bin/citations-index.py : reserve_phases_8_9
était rapportée à transposition/, deliverables/ et exports/ ; elle l'est désormais aussi à
site/. Symétriquement, site entre dans les ESPACES de bin/check-refs.py — septième
répertoire contrôlé.
Le motif, et c'est le troisième exemplaire du même. parcours en 07-02, deliverables en
09-03, site aujourd'hui : à chaque fois, un espace de production ou de diffusion existait sans
qu'aucun plafond ne le voie. Un plafond qui ne voit pas le publié n'est pas un plafond, et un
site public est le support le plus exposé du dépôt. Tant que site n'y figurait pas, le critère
SITE-02 de la phase 10 était une intention : un verbatim déposé dans site/ n'aurait été vu par
aucun contrôle.
Pourquoi aucun mot n'a été alloué en plus, et pourquoi il ne pouvait pas y en avoir. 130 alloués pour 133 de marge : il reste 3 mots de latitude sur tout le dépôt. Créer un quota neuf pour le site était donc arithmétiquement exclu, exactement comme il l'était pour le livrable de la phase 9. Le site se prend sur les 30 existants, jamais en plus — et il n'en consomme rien, pour la raison mesurée ci-dessous.
Les trois faits mesurés le 2026-09-03, qui rendent la conséquence nulle.
- Les 684 citations verbatim de l'index vivent toutes dans
notes/:.venv/bin/python -c "import json,collections;c=json.load(open('corpus/index/citations.json'))['citations'];print(collections.Counter(x['fichier'].split('/')[0] for x in c))"rendCounter({'notes': 684}). site/content/ne porte aucun.mdà frontmatter —find site -name '*.md' | wc -lrend 0. OrC5ne cumule que lestexte_endéclarés en frontmatter. Le site ne déclare donc aucune citation en propre, et le compteur du plafond y lit zéro mot.- Recomptage avant et après l'ajout des deux lignes :
bin/check-refs.pyrend903 citation(s) vérifiée(s) dans 205 fichier(s)dans les deux cas, etbin/citations-index.py --budgetpublieSomme allouée : 130pour une marge de 133 dans les deux cas. Rien n'a bougé, et c'était la propriété recherchée : le contrôle ferme une porte, il n'ouvre pas un budget.
Une correction de formulation, parce que la mesure contredit le brief. Le plan de cette vague
supposait que « le site ne reproduit aucun verbatim — il les résout par ref ». C'est faux, et
il faut l'écrire plutôt que le laisser croire. Les chapitres de deliverables/lecture/ citent
dans leur corps, et un site qui rend un chapitre rend ses citations : trois pages de
site/content/ portent un verbatim de corpus/index/citations.json
(lecture/00-temoin.html, synthese/10-diachronie-1962-1979.html,
outils/graphe-problemes-strategies.html), et zéro de ces verbatim est absent de sa propre
source Markdown.
La propriété vraie n'est donc pas « le site ne cite pas », mais : le site ne déclare rien et
n'introduit rien. Il republie des mots déjà comptés une fois dans notes/ et déjà rendus une
fois dans deliverables/. Republier un mot déjà compté n'ajoute pas un mot — c'est la même
citation, rediffusée. Le contrôle porte en conséquence sur l'identité, pas sur le comptage :
S-5 de bin/check-site.py exige que toute chaîne rendue comme citation corresponde, caractère
pour caractère, à un texte_en de l'index. Toute divergence serait un verbatim neuf, donc une
erreur — et ce jour-là le comptage reprendrait ses droits.
§7 — La méthode de construction, et la limite qu'elle s'impose
La chaîne, déclarée avant de savoir ce qu'on trouvera :
- Six relevés de décennie lisent chacun leur tranche de notes, exhaustivement, et produisent le
frontmatter de
§5. - La synthèse transversale se construit sur ces six relevés et sur les 15 journaux de lecture. Elle ne relit pas les 95 notes.
- Les fiches d'outils partent de
outils_reperes[]des six relevés, et remontent à la note puis au texte capturé pour chaque citation qu'elles posent. - Les parcours partent des lignes de force et des fiches, jamais d'une intuition de lecture.
Motif du découpage : 117 629 mots de notes plus 17 621 mots de journaux dépassent ce qu'un plan peut lire en gardant la qualité d'attention qu'une synthèse exige. Le découpage n'est pas une commodité d'exécution, c'est une condition de qualité.
Ce que cette limite coûte, écrit ici et non découvert après. Les plans aval lisent les frontmatters des relevés, pas les 95 notes : une ligne de force portée par une seule note et non retenue par le relevé de sa décennie ne remontera pas. Il n'y a pas de rattrapage prévu, et prétendre le contraire serait faux — un relais qui perd est un relais qui perd. Le prix est publié ; il se paie en profondeur sur les positions minoritaires, et il est le contrepoids assumé du gain d'attention obtenu à l'étape 1.
Une réciproque, pour que la limite ne devienne pas une excuse. Chaque relevé de décennie est
exhaustif sur sa tranche (notes_lues == la tranche, sans trou ni surplus) et porte un champ
angles_morts. Ce qu'un relevé écarte, il l'écarte donc explicitement, dans un champ que le
lecteur peut consulter.
§8 — Ce que cette phase ne garantit pas
Ces limites ne sont pas des précautions de style. Chacune est mesurée, et chacune peut invalider une lecture pressée des livrables.
1. La couverture réelle est de 5,2 %. 95 pivots lus sur 1 836 unités éditoriales, soit
5,17 % (95 / 1836). Ce que la phase 7 publie est une lecture arbitrée de vingt documents sur
mille, et non une description du corpus. Un livrable qui prétendrait couvrir Judge mentirait.
2. L'attribution n'est pas déductible du balisage (corpus/EVALUATION.md §6).
LIP-2023-dialchat porte segments_dialogue_ia: [] alors qu'environ une centaine de ses
324 blocs sont des réponses de ChatGPT : la page les loge dans des cellules de tableau, pas
dans les div#responseN que le collecteur d'extraction reconnaît. C5 ne se déclenche donc pas, et
N-6 ne s'applique pas — sur le document où l'erreur d'attribution coûterait le plus cher,
puisque son objet même est de faire parler un modèle. Symétriquement, 9 attribution_tiers ont
été posés à la lecture sur des blocs qu'aucun segment déclaré ne couvre : le dispositif rend
l'erreur impossible là où il voit, il ne voit pas partout. Toute réutilisation d'une citation de ce
dépôt sans rouvrir la note hérite de ce trou.
3. Onze justifications de sélection de la phase 4 ont été démenties par la lecture
(corpus/DERIVE.md). Règle applicable ici : quand une note et une justification de sélection
divergent, la note fait foi. La justification a été écrite avant lecture ; la note après.
4. Deux étiquettes de la phase 6 ne sont pas des mesures fines (docs/DOCTRINE-CLASSEMENT.md
§7.1 et §7.5). azmetap — 171 unités sur 535 — n'est déclarée lexicalement que dans 51,5 % des
cas, avec une dispersion de 33 % à 87 % selon les lots. azcriti — 149 unités sur 535 — ne porte un
vocabulaire critique explicite que dans 23,5 % des cas, avec une dispersion de 9 % à 45 %.
Aucune des deux ne doit être présentée comme une mesure fine, ni faire l'objet d'un commentaire
diachronique fin.
5. L'extinction de azvalue est un artefact d'homonymie, pas un résultat diachronique — c'est
le corollaire de §2, et il vaut la peine d'être répété parce qu'une synthèse est exactement
l'endroit où une famille éteinte se transforme en récit.
6. Ce que la phase ne dit pas encore. Elle établit ce que le corpus contient ; elle ne dit pas
ce que TURFu doit en faire. La transposition est la phase 8, et les mélanger produirait une synthèse
orientée par sa destination — le biais du chercheur que .planning/research/PITFALLS.md nomme.