- reecrire_gemini.py : nouveau prompt v6 (amplitude littéraire, refus de la sécheresse, règle 6 Causalité Narrative renforcée et priorisée) ; second appel de vérification factuelle automatique (gemini-3.6-flash, température 0) qui compare littéralement chaque bloc réécrit à l'original et signale chiffres modifiés, citations dissoutes, attributions floutées, détails techniques perdus ; adoption du tier de service 'flex' par défaut (50 % moins cher, latence variable), avec repli configurable en 'standard'. - comparer_modeles.py : mis à jour pour la nouvelle signature de load_credentials() (4 valeurs au lieu de 2). - Introduction, chapitre 1, chapitre 2, chapitre 3 : réécrit- Introduction, chapitre 1, chapitre 2, chapitre 3 : réécrit- Introduction, chapitre 1, chapitre 2, chapitre 3 : réécrit- Introduction, chapitre 1, chapitre 2, chapitre 3 : réécrit- Introduction, chapitre 1, chapi'auteur intégrées directement sur le texte v6 de l'introduction (références sans antécédent, personnages non présentés, section 'Quatre mouvements' réécrite pour éviter l'anaphore de plan scolaire). - 00_REECRITURE_GEMINI.md : journal de méthode mis à jour (sections 16-17) pour refléter le prompt v6, le second appel de vérification factuelle et le tier flex, jusqu'ici non documentés.
66 KiB
RÉÉCRITURE STYLISTIQUE PAR GEMINI — journal de méthode
Rôle de ce fichier : consigner le dispositif de réécriture du manuscrit par l'API Google Gemini, mis en place le 31/07/2026 sur l'Introduction. Il contient tout ce qu'il faut pour reprendre le travail sur un autre chapitre sans rien redécouvrir : le prompt exact en vigueur, les réglages d'API, le fonctionnement du script, l'ordre d'exécution imposé, les pièges déjà payés, et ce que la relecture de l'auteur a produit comme corrections généralisables.
À lire avant toute nouvelle passe de réécriture Gemini. Ce fichier n'appartient pas au manuscrit et n'entre jamais dans le tableau
CHAPITRESdecompiler-livre.sh.
1. Pourquoi ce dispositif existe
Décision de l'auteur, 31/07/2026 : Gemini 3.1 Pro produit une fluidité supérieure à celle obtenue en rédaction directe, et l'Introduction devait en bénéficier. Le principe retenu est une refonte stylistique bloc par bloc, à faits constants : la matière, les chiffres, les citations et l'appareil de notes ne bougent pas, seule la prose est reforgée.
Le dispositif a été construit et validé sur l'Introduction seule, volontairement, avant toute extension aux douze chapitres. C'est cette validation qui a produit les acquis de la section 7.
Tension assumée avec les sections 3 decies à 3 terdecies de 00-COORDINATION.md. La première sortie Gemini réintroduisait largement ce que quatre passes de brouillage et de littéralité avaient éliminé : métaphores appuyées, survalorisations, densité d'images élevée. Arbitrage de l'auteur : « on avait mis des règles trop strictes en place ». Le prompt a néanmoins été durci deux fois pour ramener la sortie dans un registre sobre (voir section 3), et le résultat final est passé par une relecture manuelle complète (section 6). La règle qui prime reste celle de la section 3 terdecies : toute phrase qu'il faut relire une fois pour la comprendre est réécrite, quelle que soit sa provenance.
2. Installation et réglages
Mis à jour le 04/08/2026 — voir aussi section 16 pour le détail et la justification de chaque ajout depuis le 31/07.
| Élément | Valeur |
|---|---|
| Clé API | .gemini-credentials à la racine, clé GEMINI_API_KEY. Non versionné (.gitignore, même règle que .copyscape-credentials). |
| Modèle (réécriture littéraire) | gemini-3.1-pro-preview (défaut du script). Surchargeable par GEMINI_MODEL= dans .gemini-credentials, ou --model. |
| Modèle (vérification factuelle, second appel) | gemini-3.6-flash (défaut). Surchargeable par GEMINI_MODEL_VERIF= dans .gemini-credentials, ou --model-verif. Voir section 16. |
| Tier de service | flex par défaut (50 % moins cher, latence variable 1-15 min). Surchargeable par GEMINI_SERVICE_TIER= dans .gemini-credentials, ou --service-tier standard. Voir section 16. |
| Endpoint | https://generativelanguage.googleapis.com/v1beta/models/<modèle>:generateContent |
| Température (réécriture) | 0.5 — point de bascule retenu par l'auteur : assez chaud pour la littérature, assez froid pour ne pas inventer d'adjectifs ronflants. |
| Top-P (réécriture) | 0.8 |
| Température (vérification factuelle) | 0.0, top-p 1.0 — quasi-déterministe, une comparaison littérale n'a pas besoin de créativité. |
| Dépendance Python | requests (déjà installé, 2.32.5, Python 3.13.7) |
Facturation requise. Le tier gratuit de Gemini 3.1 Pro est à 0 requête : la première tentative a renvoyé un 429 RESOURCE_EXHAUSTED avec limit: 0. La clé doit être rattachée à un projet Google Cloud/AI Studio avec facturation active.
Erreurs transitoires fréquentes. Le modèle renvoie régulièrement des 503 UNAVAILABLE (forte demande) et des lectures qui expirent. Le script gère cela seul : cinq tentatives, backoff exponentiel plafonné à 60 s, timeout de lecture à 240 s, retry sur 429/500/503/504 et sur toute erreur réseau. Un seul appel de l'Introduction a demandé deux tentatives.
3. Le prompt en vigueur — HISTORIQUE (v1 à v3, dépassé)
⚠️ Cette section décrit le prompt tel qu'il existait avant le 03/08/2026. Il a depuis été intégralement réécrit deux fois (v5 en section 14, v6 en section 16). Le prompt réellement en vigueur est celui de la section 16 et, en cas de doute, la constante PROMPT_TEMPLATE de reecrire_gemini.py — jamais celui reproduit ci-dessous. Conservé uniquement pour l'historique du réglage initial.
Reproduit ci-dessous tel qu'il vivait dans reecrire_gemini.py à cette date-là.
RÔLE :
Tu es le directeur littéraire d'un essai ambitieux sur l'intelligence artificielle, écrit par
l'essayiste français Vincent Perouz. Ton but est de réécrire les blocs de texte bruts pour leur
donner une "musicalité implacable", un souffle littéraire puissant et une fluidité absolue (dans
l'esprit de Yuval Noah Harari ou Günther Anders).
TA MISSION :
Réécrire le texte fourni en forgeant une prose à la fois dense, grave et rythmée, tout en
préservant 100 % des faits originaux et l'intégrité absolue du balisage.
DIRECTIVES DE STYLE (LA PLUME PEROUZ) :
1. La Musicalité et le Souffle : rythme hypnotique à voix haute. Alterne phrases longues, amples
et sinueuses avec phrases extrêmement courtes et percutantes.
2. Le Tuilage et le Contraste : enchaînement organique par capillarité. Rhétorique du contraste
et de la gradation pour créer le vertige.
3. La Gravité Implacable : ni clinique, ni robotique. Philosophique, d'une élégance habitée.
L'effroi naît de la mise en perspective implacable des faits humains face à la machine.
4. La Précision Logique (Le refus du flou) : ne jamais sacrifier la clarté d'une information pour
faire une "belle phrase". Les éléments factuels (un objet, un contrat, une somme) doivent
toujours être clairement reliés à leur contexte. Pas de faux suspense sémantique.
5. Le Droit d'Élagage (Garder l'os, enlever le gras) : autorisation stricte de supprimer listes
d'exemples, énumérations et détails illustratifs s'ils alourdissent le propos (surtout en phase
de synthèse ou d'annonce de plan). Aller à l'essentiel du concept philosophique.
6. La Soudure Logique (Ne jamais fragmenter un raisonnement) : une proposition causale,
explicative ou concessive reste SOUDÉE à la proposition qu'elle justifie, dans une seule et
même phrase. Jamais un point suivi de « Car », « Parce que », « Puisque », « Alors que »,
« Si bien que », « De sorte que » : virgule et subordonnée, ou deux-points. La phrase brève est
réservée à l'affirmation qui se tient debout seule, jamais à un fragment qui dépend
grammaticalement ou logiquement de la phrase précédente. Test : si une phrase courte ne peut
pas se lire seule, elle appartient à la phrase d'avant. Le rythme s'obtient en alternant des
phrases ENTIÈRES de longueurs inégales, jamais en découpant une phrase en deux moitiés.
CONTRAINTES NÉGATIVES STRICTES (L'ÉQUILIBRE) :
- INTERDICTION du style télégraphique (staccato), des listes de faits façon fiche Wikipédia.
- INTERDICTION de scinder une phrase dont la seconde moitié ne se lit pas seule. Un point qui
remplace une virgule ou un deux-points est une faute de fluidité, pas un effet de style.
- INTERDICTION du mélodrame et de l'emphase, des adjectifs hystériques ou grandiloquents.
- INTERDICTION du remplissage narratif inutile, des micro-actions corporelles superflues.
RÈGLES TECHNIQUES INVIOLABLES :
- PRÉSERVATION DES NOTES : interdiction absolue de supprimer ou de désolidariser les balises
[^c00-1] du concept exact qu'elles justifient.
- ZÉRO INVENTION.
- ZÉRO BAVARDAGE : renvoyer UNIQUEMENT le texte final, prêt à insérer dans un fichier Markdown.
CONTEXTE D'ASSEMBLAGE :
[DERNIÈRE PHRASE DU BLOC PRÉCÉDENT] : {phrase_precedente}
[BLOC DE TEXTE À RÉÉCRIRE] : {bloc}
Historique du réglage, et ce que chaque version a corrigé
| Version | Réglages | Ce qui a motivé le changement |
|---|---|---|
| v1 | temp 0.7, contexte = 1 phrase | Première mouture. Sortie trop expansive (+20 % de mots sur le bloc 1), métaphores appuyées (« Titan », « démiurges », « oracle »), et une invention factuelle : « le secteur » devenu « la Silicon Valley ». |
| v2 | temp 0.5, topP 0.8, contexte ≥ 2 phrases | Ajout des trois contraintes négatives (staccato, mélodrame, remplissage). Effet mesuré : le bloc 1 passe de +20 % à +2 % de mots. Registre nettement plus sobre. |
| v3 | idem v2 | Ajout des directives 4 (Précision Logique) et 5 (Droit d'Élagage). Effet mesuré sur le bloc 4 : 453 → 412 mots, contre 563 en v1 et 465 en v2. C'est la directive 5 qui a réglé le paragraphe « Quatre mouvements », trop chargé en énumérations. |
| v4 (en vigueur) | idem v2 | Ajout de la directive 6 (Soudure Logique) et de la contrainte négative sur la scission, après relevé de l'auteur sur le PDF v6 : des raisonnements coupés par un point et repris sur une conjonction, là où une seule phrase serait plus fluide. Non encore éprouvé sur une sortie réelle : la directive a été écrite après l'application des cinq blocs de l'Introduction. |
Le nom de plume a été corrigé de « Pairouz » à « Perouz » dans le prompt, pour coller à 00-COORDINATION.md section 2 et au champ author de metadata.yaml.
4. L'outil : reecrire_gemini.py
Trois commandes séparées, dans cet ordre. La séparation est délibérée : aucune commande n'écrit dans le manuscrit sans validation explicite.
# 1. Vérifier le bloc exact et le contexte de tuilage — AUCUN appel API, aucune écriture
python3 reecrire_gemini.py extraire \
--file Manuscrit/00-introduction.md \
--debut "C'est l'été 2019" \
--fin "## Le roi qui refusa un cadeau"
# 2. Appeler Gemini, écrire le résultat dans un fichier de RELECTURE séparé
python3 reecrire_gemini.py reecrire \
--file Manuscrit/00-introduction.md \
--debut "C'est l'été 2019" \
--fin "## Le roi qui refusa un cadeau" \
--sortie Manuscrit/.relecture-00-bloc1.md
# 3. Après relecture et validation SEULEMENT, remplacer le bloc dans le manuscrit
python3 reecrire_gemini.py appliquer \
--file Manuscrit/00-introduction.md \
--debut "C'est l'été 2019" \
--fin "## Le roi qui refusa un cadeau" \
--texte-reecrit Manuscrit/.relecture-00-bloc1.md
Découpage des bornes. --debut et --fin sont des chaînes de texte exactes, cherchées littéralement (attention aux apostrophes typographiques). --fin est exclue du bloc. Les deux sont optionnelles : sans --debut, le bloc part du début du fichier ; sans --fin, il court jusqu'au bloc de notes (ou à la fin du fichier). Le script avertit si un marqueur apparaît plusieurs fois et refuse un --fin antérieur au --debut.
Les notes de bas de page ne sont jamais envoyées à l'API. Le bloc de définitions situé après <!-- Notes de bas de page est exclu par construction, et une borne --fin qui le dépasserait est tronquée avec un avertissement. Ce sont les appels de note, dans le corps, qui circulent — et ils sont vérifiés (voir ci-dessous).
Vérifications automatiques à chaque reecrire, avant toute écriture :
- liste des appels
[^...]comparée avant/après, à l'identique et dans le même ordre ; toute disparition, apparition ou permutation est signalée ; - détection d'une ligne de définition de note (
[^id]: …) qui se serait glissée dans le texte réécrit ; - détection des formules de bavardage méta en ouverture (« Voici le texte réécrit », etc.).
appliquer refuse d'écrire si une alerte subsiste, sauf --forcer. Il crée systématiquement une sauvegarde <fichier>.avant-reecriture.
5. Les deux règles d'exécution à ne jamais enfreindre
Règle 1 — Exécution strictement en série : réécrire, appliquer, puis passer au bloc suivant
Le contexte de tuilage envoyé à Gemini est recalculé à chaque appel depuis le contenu réel du fichier sur le disque, juste avant la borne --debut. Il n'y a volontairement aucun fichier d'état mémorisant la dernière phrase : un état séparé peut se désynchroniser du manuscrit, le fichier ne peut pas.
Conséquence directe : lancer reecrire sur le bloc N+1 avant d'avoir appliqué le bloc N fait envoyer à Gemini le contexte de l'ancienne version, et le tuilage se fait sur un texte qui n'existera plus. L'erreur a été commise une fois le 31/07 sur le bloc 2 et l'appel a dû être refait.
Vérification avant chaque appel : la ligne PHRASE PRÉCÉDENTE (contexte d'assemblage) de extraire doit afficher la nouvelle formulation du bloc précédent.
Règle 2 — Le contexte de tuilage doit être assez long
La plume Perouz produit beaucoup de phrases courtes et tranchantes. Prendre les deux dernières phrases donnait parfois cinq mots de contexte (« Il en a un. Et il est très vieux. »), insuffisant pour amorcer un raccord.
Le script part donc de 2 phrases minimum et remonte en chercher d'autres jusqu'à dépasser 25 mots (constante MOTS_MIN_CONTEXTE), ou jusqu'à épuisement du texte disponible. Sur le manuscrit réel, cela remonte à trois ou quatre phrases quand la clausule est brève, et s'arrête à deux quand elles sont amples.
Sont retirés du texte amont avant détection, pour ne pas polluer la phrase captée : les blocs LaTeX bruts (\chapter*, \part), les commentaires HTML et les lignes de titre Markdown. Un premier bloc de chapitre renvoie donc bien « Aucune, c'est le début du chapitre ». --phrase-precedente permet de forcer une valeur, par exemple pour enchaîner sur la fin d'un autre fichier.
6. Ce qui a été fait sur l'Introduction
Découpage retenu — cinq blocs
Les bornes correspondent aux quatre ## de la section, plus l'ouverture et la clausule. Les marqueurs --debut ci-dessous sont ceux du texte d'origine (archive), pas du texte actuel, qui a été reformulé.
| Bloc | --debut |
--fin |
Mots source |
|---|---|---|---|
| 1 | C'est l'été 2019 |
## Le roi qui refusa un cadeau |
1 053 |
| 2 | Notre inquiétude a environ deux mille |
## Deux ans |
1 042 |
| 3 | Le mythe dit ce qu'est ce miroir |
## Quatre mouvements |
1 119 |
| 4 | Ce livre suit une progression volontaire |
## Le rocher et la chaîne |
453 |
| 5 | Une dernière remarque sur le mythe |
(jusqu'aux notes) | 296 |
État final appliqué
Le texte en place mélange deux versions du prompt, par décision de l'auteur (« valide ces changements, pas besoin de relancer les 3 blocs ») :
| Bloc | Prompt | Mots avant → après |
|---|---|---|
| 1 | v2 | 1 053 → 1 072 |
| 2 | v2 | 1 042 → 1 011 |
| 3 | v2 | 1 119 → 1 054 |
| 4 | v3 | 453 → 412 |
| 5 | v3 | 296 → 300 |
Corps de l'Introduction, étape par étape : 3 900 (état d'origine) → 4 408 avec le prompt v1, entièrement annulé par restauration de l'archive → 3 854 avec v2 sur les cinq blocs → 3 801 après reprise des blocs 4 et 5 en v3 → 3 884 après la relecture de l'auteur (section 7). Le passage de 4 408 à 3 854 mesure à lui seul l'effet des contraintes négatives ajoutées en v2.
Dix notes, quatre ##, aucun ### : inchangés du début à la fin. compter-mots.py ne signale aucune anomalie.
Archives
| Fichier | Contenu |
|---|---|
Manuscrit/archives/00-introduction.avant-gemini-2026-07-31.md |
État avant toute intervention Gemini (version issue des passes de littéralité du 30/07). C'est la référence pour repartir de zéro. |
Manuscrit/archives/00-introduction.avant-corrections-relecture-2026-07-31.md |
Sortie Gemini brute, avant les vingt-deux corrections de l'auteur. Utile pour mesurer ce que la relecture humaine a dû reprendre. |
Les fichiers .relecture-00-bloc*.md et les .avant-reecriture sont supprimés après validation : ils sont reproductibles et n'ont pas vocation à rester.
7. Ce que la relecture de l'auteur a révélé — vingt-deux relevés
C'est la partie la plus réutilisable de ce fichier. L'auteur a relu le PDF compilé et signalé vingt-deux formulations. Aucune n'était une erreur factuelle : ce sont toutes des défauts de littéralité, de référence ou de conduite du lecteur, c'est-à-dire exactement les familles décrites en section 3 terdecies de 00-COORDINATION.md. Conclusion opérationnelle : une sortie Gemini techniquement conforme — notes intactes, aucune invention, aucun bavardage — n'est pas un texte livrable. Elle doit passer les six tests de littéralité comme n'importe quel premier jet.
Les défauts récurrents de la sortie Gemini
1. Références temporelles ou déictiques sans antécédent. « Ce soir-là, dans un restaurant » alors qu'aucune soirée n'a été posée avant. Même famille : un démonstratif qui renvoie à un élément que le lecteur ne voit plus. C'est le défaut le plus fréquent et le plus discret, parce que la phrase est parfaitement grammaticale.
2. Détails narratifs ornementaux. « Puis vient le moment du dessert, qu'Altman remplace par un vin doux » — le repas n'est décrit nulle part, le détail ne sert rien. Le prompt v3 interdit explicitement ce remplissage, et il en produisait encore.
3. Personnages et concepts convoqués sans présentation. Harari, Eschyle, le mythe de Prométhée lui-même, et un « philosophe allemand » nommé seulement à la phrase suivante. Gemini suppose le lecteur déjà informé.
4. Métaphores qui ne survivent pas à la lecture littérale. Un mécanisme qui « mord », une machine qui « a tout lu » là où « a tout absorbé, ingéré, pondéré, intégré » dit mieux le fait.
5. Ruptures de fil argumentatif. « Le capital, lui, n'a pas les pudeurs… » arrivant sans raccord avec le paragraphe précédent : le lecteur ne sait pas pourquoi on parle soudain d'argent. Il fallait un gond (règle D de la section 3 duodecies).
6. Termes vagues ou impropres. « le secteur » employé deux fois pour deux référents différents ; « au troc » là où « ce qu'elle exige en retour » est juste ; « les protections sociales » sans dire lesquelles ni leur rapport à l'IA.
7. Le paragraphe d'annonce de plan en mode dissertation. « Le premier… Le deuxième mouvement… Le troisième mouvement… Le dernier acte » : c'est ce que la directive 5 (Droit d'Élagage) a ensuite corrigé, et ce que la refonte manuelle a achevé en ouvrant chaque partie sur son titre en italique avec des transitions de contenu.
8. Clausules qui n'apportent rien. « La conclusion ne résumera rien. Elle posera un choix. » — jugée « très peu élégante et ne sert à rien ». Supprimée, ce qui a obligé à refaire l'ouverture de la section suivante, qui enchaînait sur « Ce choix ».
9. Raisonnements fragmentés par un point, repris sur une conjonction. Relevé de l'auteur sur le PDF v6, et c'est le défaut qui a motivé la directive 6 du prompt : Gemini coupe une phrase en deux et fait redémarrer la seconde moitié sur Car, alors qu'une virgule serait plus fluide. Cas trouvé et corrigé dans l'Introduction : « Ce silence est le sujet de ce livre. Car ce qui devrait nous glacer n'est pas… » → « Ce silence est le sujet de ce livre, car ce qui devrait nous glacer n'est pas… ».
Le critère de tri, à appliquer et pas à automatiser. Un point suivi d'une conjonction n'est pas fautif en soi : Mais et Et en tête de phrase sont des procédés littéraires français légitimes, et plusieurs de ces phrases sont des motifs inscrits en section 5 de 00-COORDINATION.md (« Presque juste. Mais pas tout à fait. », « Il en a un. Et il est très vieux. »). Ce qui est fautif, c'est le fragment qui ne se lit pas seul parce qu'il dépend grammaticalement ou logiquement de ce qui précède — et Car est presque toujours dans ce cas, puisqu'il n'annonce pas une affirmation nouvelle mais la justification de la précédente.
État mesuré de l'Introduction après correction, à titre de repère :
for c in Car Mais Et Or Puisque; do printf "%-10s %s\n" "$c" \
"$(grep -oE "\. $c " Manuscrit/00-introduction.md | wc -l | tr -d ' ')"; done
Car 0 · Mais 7 · Et 9 · Or 0 · Puisque 0. Les seize Mais et Et sont conservés délibérément : ils portent le rythme, et quatre d'entre eux sont des formules-motifs. Ne pas les « corriger » par passe mécanique — ce serait l'uniformité de procédé que la règle 4 de la section 3 decies interdit.
Attention à un faux négatif d'outillage rencontré ici : grep_search n'a trouvé aucune occurrence de \bCar\b dans le fichier, là où grep en ligne de commande en trouvait une. Sur ce genre de relevé, croiser les deux outils avant de conclure à l'absence d'un défaut — c'est le même piège que le relevé tronqué en largeur documenté en section 5 de 00-COORDINATION.md.
Deux effets de bord à anticiper
Toute suppression d'une clausule casse l'amorce suivante. Retirer « Elle posera un choix » a rendu orpheline la phrase « Ce choix exige une dernière remarque », devenue « Reste une dernière remarque ». Après chaque coupe de fin de section, relire la première phrase de la section suivante.
Toute reformulation d'un écho oblige à traiter son pendant. « Et il continue d'avancer » (ouverture) devenu « Et il la pousse quand même » a rendu orpheline la reprise finale « Il a continué d'avancer », alignée en « Il a poussé la porte ». L'auteur n'avait pas signalé la seconde : c'est la cohérence de l'écho ouverture/clôture qui l'imposait.
Un arbitrage de sourçage à connaître
L'ouverture dit « Un soir, dans un restaurant à quelques rues de chez lui ». Le mois n'est volontairement pas donné. La note c00-1 n'atteste que « l'été 2019, quelques jours après l'engagement d'investissement d'un milliard de dollars de Microsoft » (annoncé le 22 juillet 2019) : le dîner peut tomber fin juillet comme début août. Écrire « un soir de juillet » serait une précision au-delà de la source. À ne pas « corriger » sans rouvrir l'article de Cade Metz.
8. Pièges techniques déjà payés
Le saut de ligne aux jonctions de blocs. Le script dépouillait le texte réécrit de ses retours à la ligne finaux, puis le recollait directement contre la suite du fichier — qui commence pile sur le prochain ## ou sur le marqueur de notes. Résultat : cinq occurrences de texte collé à un titre (…très vieux.## Le roi qui refusa un cadeau), invisibles dans le comptage mais destructrices pour Pandoc. Corrigé : la fonction separateur_final() préserve désormais les retours à la ligne d'origine. Contrôle à refaire malgré tout après toute passe :
grep -nE '[a-zà-ÿ]##|[a-zà-ÿ]<!--' Manuscrit/<fichier>
L'édition par remplacement de chaîne sur un manuscrit. Rappel de la note de méthode de 00-COORDINATION.md section 5 : compter les occurrences de la cible avant de substituer, refuser d'écrire si le compte n'est pas exactement de un, se méfier des cibles contenant un tiret cadratin, une espace insécable ou un guillemet français. Un écart de compteur de mots inexpliqué est le signal le moins coûteux pour attraper un dégât silencieux.
Le timeout de l'outil d'exécution. Un appel Gemini sur un bloc de 1 000 mots prend couramment plus de deux minutes. Prévoir un timeout d'exécution de 300 000 ms ; le timeout HTTP du script est à 240 s par tentative.
9. Procédure pour réécrire un nouveau chapitre
- Lire ce fichier en entier, et
00-COORDINATION.mdsections 3 duodecies et 3 terdecies : la sortie Gemini devra passer leurs contrôles. - Archiver l'état de départ dans
Manuscrit/archives/<fichier>.avant-gemini-<date>.md. - Découper le chapitre en blocs aux frontières des
##, en visant 400 à 1 200 mots par bloc. Relever les bornes--debut/--finexactes depuis le fichier source. - Pour chaque bloc, dans l'ordre, sans anticiper :
a.
extraire— vérifier les bornes, le nombre de mots, et que le contexte de tuilage vient bien de la version courante ; b.reecrire— lire la sortie, vérifier l'absence d'alerte sur les notes ; c. relire le texte et chercher activement les neuf défauts de la section 7, dont le relevé mécanique des raisonnements fragmentés :grep -nE '\. (Car|Parce que|Puisque|Alors que|Si bien que|De sorte que) ' Manuscrit/<fichier>— toute occurrence est à souder, sauf justification explicite ; d.appliquer. - Une fois tous les blocs en place : passe manuelle des six tests de littéralité (section 3 terdecies), puis
verifier-litteralite.py, puisdetecteur-ia.py, puiscompter-mots.py. - Contrôle des jonctions (
grepde la section 8) et vérification que le nombre de notes, de##et de###est inchangé. ./compiler-livre.sh, puis relecture du PDF par l'auteur.- Nettoyer les
.relecture-*et les.avant-reecriture, mettre à jour ce fichier et la section 6 de00-COORDINATION.md.
Ce qui ne doit jamais être envoyé à Gemini : le bloc de définitions des notes de bas de page (exclu par construction), les blocs LaTeX bruts de titre, et les citations en bloc > d'un auteur tiers si le bloc en contient — les citations attribuées ne se réécrivent pas. Aucun bloc de l'Introduction n'en contenait ; à vérifier chapitre par chapitre avant d'envoyer, le script ne le contrôle pas encore.
10. Comparaison avec Qwen 3.8 Max — 03/08/2026, essai suspendu
Question posée : le dispositif a été validé sur un seul modèle. Un autre ferait-il mieux ? Essai monté sur DashScope international (endpoint compatible OpenAI, https://dashscope-intl.aliyuncs.com/compatible-mode/v1), modèle qwen3.8-max, avec comparer_modeles.py. Essai suspendu par l'auteur avant la campagne à température élevée. Qwen est mis de côté, pas écarté.
Ce que garantit l'outil, et c'est sa raison d'être : comparer_modeles.py ne recopie rien de reecrire_gemini.py, il importe le prompt, les bornes de bloc, le calcul de la phrase de tuilage, les vérifications d'appels de note et de bavardage, la température et le top-p. Une comparaison entre deux modèles n'a de sens qu'à réglages rigoureusement identiques, et deux valeurs dupliquées finissent toujours par diverger. TEMPERATURE = 0.5 et TOP_P = 0.8 ont été sortis en constantes de module dans reecrire_gemini.py pour cela — seule modification apportée au dispositif de production.
10.1 Résultat du duel à réglages identiques (0,5 / 0,8)
Bloc d'essai : l'ouverture de l'Introduction dans sa version d'avant Gemini (Manuscrit/archives/00-introduction.avant-gemini-2026-07-31.md, de « C'est l'été 2019 » à ## Le roi qui refusa un cadeau, 1 037 mots). Le choix de la version archivée est délibéré : envoyer le texte actuel aurait fait repasser Gemini sur son propre travail pendant que Qwen découvrait le texte, ce qui ne mesure pas la même chose.
| source | Gemini 3.1 Pro | Qwen 3.8 Max | |
|---|---|---|---|
| mots | 1 037 | 1 046 | 1 039 |
| paragraphes | 14 | 12 | 14 |
| phrases | 63 | 58 | 55 |
| phrases ≤ 5 mots | 15,9 % | 13,8 % | 9,1 % |
| citations directes conservées | 1 | 0 | 1 |
| apostrophes typographiques | 0 | 0 | 71 |
Gemini transforme et paie ce gain en fidélité. Il produit la meilleure attaque des trois, celle que l'auteur a conservée le 31/07 — « San Francisco, été 2019. » contre « C'est l'été 2019, à San Francisco. » Mais il prend quatre libertés, toutes vérifiées motif par motif :
- Deux éléments factuels supprimés : l'ancienneté d'Altman à la tête du laboratoire (« depuis trois ans ») et le dessert remplacé par un vin doux. Le prompt autorise l'élagage des listes d'exemples, mais demande explicitement que les détails narratifs comme le vin doux soient sublimés, pas retirés.
- La seule citation directe du bloc disparaît. « J'essaie d'être franc » devient « Il affirme chercher la franchise ». Perte qu'aucun contrôle du dispositif ne voit :
verifier_notes()compare les appels de note, rien ne compte les guillemets. - Une intention inventée. La source dit que le milliard « oblige enfin la presse à prononcer son nom » ; Gemini écrit que Microsoft a investi « pour contraindre le monde à prononcer son nom ». La conséquence devient un but et l'agent change.
- Registre monté là où la platitude était le sujet. « est-ce que je fais quelque chose de bien, ou de vraiment mauvais ? » devient « est-ce qu'il accomplit une œuvre juste, ou quelque chose de profondément néfaste ? » — l'emphase que les contraintes négatives du prompt interdisent, appliquée à la phrase centrale de la scène. Plus « le père de cette arme » à la place de « le physicien qui a dirigé cette fabrication » : un cliché, et moins précis.
Il fusionne aussi deux paragraphes (quatorze à douze), avec un bloc de 162 mots là où la source en avait deux.
Qwen est fidèle au point de ne presque pas réécrire. Zéro perte factuelle, citation conservée, quatorze paragraphes intacts à quelques mots près. C'est un travail de correcteur, pas de directeur littéraire : là où Gemini refait la première phrase, Qwen la recoud et perd l'attaque au lieu de la gagner. Deux effets de bord qui coûtent :
- Il descend à 9,1 % de phrases brèves, sous le plancher de 11 % de la section 3 duodecies : c'est lui qui aplatit le plus le rythme, en transformant des points en points-virgules.
- Il réécrit les 71 apostrophes en typographiques (U+2019) alors que tout le manuscrit utilise l'apostrophe droite. Appliqué tel quel, il mélangerait les deux styles dans le fichier — et la note de méthode de la section 6 de
00-COORDINATION.mdavertit que les éditions par chaîne exacte se cassent précisément sur les apostrophes typographiques. Cet essai l'a démontré en direct : une vérification pargrepa échoué sur ce motif. Toute sortie Qwen appliquée au manuscrit doit être normalisée avant écriture.
Conclusion provisoire : à réglages de production, Qwen 3.8 Max n'est pas un remplaçant sur cette tâche, il sous-transforme. Sa fidélité en fait en revanche un contrôleur crédible de la sortie Gemini : un second appel qui compare la sortie à la source attraperait mécaniquement trois des quatre libertés ci-dessus, celles que les scripts ne voient pas. Piste à reprendre si le sujet est réouvert.
10.2 Pourquoi la campagne à température élevée n'a pas abouti
En mode bloquant, qwen3.8-max a dépassé deux fois le délai de lecture de 300 s sur le même bloc de mille mots, alors que le même appel à température 0,5 avait abouti. Un modèle qui réfléchit longtemps n'envoie rien avant d'avoir fini : aucun délai raisonnable ne suffit, et on ne distingue pas une lenteur d'un blocage.
Correctif implémenté, et il reste en place pour une reprise ultérieure : comparer_modeles.py appelle désormais en flux par défaut (stream: true), avec un délai portant sur l'inactivité entre deux fragments et non sur la durée totale, plus un affichage d'avancement toutes les vingt secondes. --sans-flux conserve l'ancien comportement. La température de Qwen se surcharge par --temperature, et le réglage entre dans le nom du fichier de sortie — sans cela deux essais s'écrasent en silence.
10.3 Dette de la section 9 réglée au passage
La section 9 signalait que les citations en bloc > ne doivent jamais partir à l'API et que « le script ne le contrôle pas encore ». Le contrôle existe maintenant dans comparer_modeles.py (verifier_citations_bloc()), qui refuse d'envoyer un bloc contenant une ligne en > sauf --autoriser-citations. À porter dans reecrire_gemini.py quand la réécriture reprendra.
Correction factuelle à la section 9 : elle affirme qu'« aucun bloc de l'Introduction n'en contenait ». C'est faux — l'Introduction contient une citation en bloc, les trois axiomes de Günther Anders dans la section « Deux ans ». Le garde-fou l'a attrapée dès son premier essai. Le découpage de l'Introduction doit donc exclure ce passage, ou sa restitution au caractère près doit être vérifiée à la main.
11. Réécriture du chapitre 1 — 03/08/2026, premier chapitre traité après l'Introduction
Découpage. 12 blocs générés automatiquement (script de planification jetable, non conservé), aux frontières des ## et des citations en bloc, cible 700-1 200 mots. Les 55 blocs des quatre chapitres ont été vérifiés uniques dans leur fichier avant tout envoi (0 ambigu). Archive de départ : Manuscrit/archives/01-chap01-mort-de-la-verite.avant-gemini-2026-08-03.md.
Exécution en série, avec un incident sur le bloc 10/12. Premier passage : 9 blocs appliqués sans alerte, puis le bloc 10 (1 189 mots, la crise iranienne) a subi une série de 503 UNAVAILABLE, jusqu'à épuisement des 5 tentatives. Le service a fini par répondre malgré l'échec signalé au driver, et le texte produit a été appliqué avant que l'incident ne soit examiné : -350 mots (-29 %), très au-dessus de la variation observée sur les neuf premiers blocs (-8 % à +12 %). Vérification faite, la perte n'était pas de l'élagage mais une dégradation factuelle :
- l'attribution nominale (« un journaliste de la BBC persane ») remplacée par « un intermédiaire anonyme » ;
- un fait sourcé supprimé (les précédents de Turquie et d'Asie du Sud-Est) ;
- la seule citation directe du bloc (« Tout ça, c'est de la bouillie d'IA ») dissoute en paraphrase ;
- un détail factuel simplifié à la perte de son sens (le porte-voix transformé en lance à eau, devenu une formule vague).
Diagnostic : l'instabilité du service (503 répétés) a dégradé la qualité de la sortie, sans que cela déclenche aucune des alertes automatiques du dispositif (verifier_notes, verifier_bavardage). Ni les appels de note ni le bavardage n'étaient en cause : la perte porte sur l'attribution, la citation et le détail factuel, trois familles qu'aucun contrôle mécanique ne couvre. C'est le même angle mort que celui relevé section 10.1 sur la comparaison avec Qwen, ici démontré sur le dispositif de production lui-même, pas seulement sur un concurrent.
Correction : restauration du bloc depuis l'archive, puis nouvel appel. Le second essai a abouti sans erreur réseau, avec les quatre défauts corrigés — tous les faits et l'attribution étaient revenus — sauf la citation directe, encore fondue en discours indirect (« a balayé la preuve d'une phrase : tout cela n'était que de la bouillie d'algorithmes », le mot changé en plus). Corrigée à la main après application. Deux enseignements : un second essai peut suffire à corriger un accident de service, mais la vérification manuelle contre l'archive reste indispensable après tout bloc ayant subi une instabilité réseau, l'issue favorable n'étant pas garantie.
Règle à ajouter au dispositif (section 9), pas encore faite : si un bloc échoue à plusieurs reprises avant d'aboutir (503, timeout), comparer systématiquement sa sortie à l'original avant d'enchaîner sur le bloc suivant, même en l'absence d'alerte automatique. Un service qui répond après plusieurs tentatives infructueuses n'offre aucune garantie de qualité supplémentaire.
Passe de brouillage post-réécriture, requise et non anticipée
Une fois les 12 blocs appliqués, detecteur-ia.py a signalé un recul net sur le rythme : 4,0 % de phrases logées contre 11 % visé, un tic lexical (« il convient de »), 3 charnières scolaires en tête de phrase, 12 tricolons. C'est le défaut connu de Gemini (section 1, tension assumée avec les sections 3 decies-3 terdecies) mesuré pour la première fois sur un chapitre entier plutôt que sur l'Introduction seule, et il est plus marqué : la réécriture bloc par bloc, chaque bloc étant lissé indépendamment, uniformise le rythme à l'échelle du chapitre d'une façon qu'un seul bloc de mille mots ne révèle pas.
Correction manuelle : tic et charnières supprimés, puis une vingtaine de paragraphes plats (trois phrases ou plus, aucune de six mots ou moins) retravaillés en logeant une phrase brève sans changer le sens ni les faits — méthode de la section 3 duodecies, règle A. Deux corrections ont par ailleurs restauré des formulations qui appartenaient à des invariants du plan narratif et que Gemini avait paraphrasées sans le savoir : « L'œil humain ne voit rien de tout cela. Le calcul, si. » (invariant C, rempart physique) et « Le droit avait une prise sur le tuyau. Il n'en avait aucune sur le mensonge qui circulait dedans » (motif du tuyau, déjà en place, non touché par erreur).
Résultat final, non exhaustif : CV porté de 0,53 à 0,58, tic et charnières à zéro, 5,9 % de phrases logées (encore sous la cible de 11 %, mais le rendement marginal des corrections décroît — environ 50 paragraphes plats restaient à ce point). Le verdict du détecteur reste « pas assez de phrases coup-de-poing » : accepté tel quel, en application directe de l'encadré du 03/08/2026 en tête de la section 3 de 00-COORDINATION.md — les seuils sont des instruments de diagnostic, pas des lois, et le rendement de la correction manuelle ne justifiait plus le temps investi.
Conséquence pour les chapitres 2 à 4, à anticiper avant de lancer leur réécriture : prévoir dès la planification qu'une passe de rythme sur l'ensemble du chapitre suivra l'application des blocs, elle n'est pas optionnelle. Le temps qu'elle demande est comparable à celui de l'application des blocs eux-mêmes.
Volume final : 8 235 → 7 752 mots de corps. Appareil de notes inchangé (15 notes, 30 appels), 4 ## inchangés, aucune anomalie de jonction. compiler-livre.sh revérifié : 20/20 sections, 162 pages, exit 0.
12. Réécriture du chapitre 2 — 03/08/2026
Découpage. 14 blocs, 0 ambigu. Archive : Manuscrit/archives/02-chap02-neuvieme-nom.avant-gemini-2026-08-03.md.
Amélioration du driver, tirée de l'incident du chapitre 1 (section 11) : chaque bloc est désormais marqué « à vérifier manuellement » s'il a nécessité plus d'une tentative, ou si sa variation de longueur dépasse 20 %. Le bloc est appliqué dans tous les cas (interrompre la série coûte plus cher que la relecture), mais le driver dresse en fin de course la liste des blocs suspects. Sur ce chapitre, 3 blocs sur 14 ont été marqués (blocs 3, 6, 7), tous vérifiés contre l'archive après application : aucun n'a perdu de fait, d'attribution ou de citation. Le bloc 3 avait nécessité 3 tentatives (503 répétés) mais sa sortie était fidèle ; les blocs 6 et 7 étaient de faux positifs du seuil de variation (un bloc de 31 mots où +23 % ne représente que 7 mots, et un bloc reformulé sans perte). Le garde-fou a fonctionné sans provoquer d'incident cette fois-ci — aucun 503 n'a produit de sortie dégradée comme au chapitre 1, mais la vérification post-application reste justifiée : elle a coûté quelques minutes et confirmé que rien n'était à refaire.
Défaut de rythme, comme anticipé. Recul mesuré après application des 14 blocs : 5,4 % de phrases logées (cible 11 %), 2 tics (« il convient de », « repousser les frontières »), 2 charnières en tête de paragraphe (« Or », « Cependant »), 8 antithèses « pas X, c'est Y » (plafond 6). Tics et charnières supprimés, deux antithèses reformulées pour repasser sous le plafond. Une vingtaine de paragraphes plats retravaillés, dont un qui portait l'invariant A (garde-fou aveugle, §11.2 A du plan narratif) : la reformulation de Gemini avait produit une phrase grammaticalement confuse (« une figure de validateur ratifiant ce qu'il croit examiner que nous retrouverons ») en fusionnant deux propositions qui devaient rester séparées. Restaurée avec la ponctuation de l'original et un rythme amélioré, le renvoi nominal au chapitre 7 préservé. Résultat final accepté sans épuiser le seuil, même principe qu'au chapitre 1 : CV porté à 0,56, 6,2 % de phrases logées, rendement marginal décroissant.
Volume final : 10 423 → 9 628 mots de corps (dans la cible 9 000-12 000). Appareil de notes inchangé (20 notes, 40 appels), 4 ##, aucune anomalie de jonction. compiler-livre.sh revérifié : 20/20 sections, 160 pages, exit 0.
Ce qui distingue cette passe de celle du chapitre 1 : le diagnostic dialectique du 03/08 (§11.6 du plan narratif) avait jugé le chapitre 2 sans défaut structurel, contrairement au chapitre 1 qui avait reçu trois coutures. La réécriture Gemini confirme ce diagnostic a posteriori : aucune intervention sur l'arc n'a été nécessaire pendant cette passe, seulement sur le rythme et sur un invariant abîmé par la reformulation automatique.
13. Réécriture du chapitre 3 — 03/08/2026
Découpage. 15 blocs, 0 ambigu, respectant le refus de découper « Le compagnon qui ne conteste rien » (arbitrage de l'auteur, §11.6 du plan narratif) : le bloc correspondant à cette section reste le plus long du fichier, envoyé et réécrit d'une seule pièce. Archive : Manuscrit/archives/03-chap03-anesthesie-cognitive.avant-gemini-2026-08-03.md.
4 blocs sur 15 marqués par le garde-fou (>1 tentative ou >20 % de variation), tous vérifiés fidèles après application. Blocs 4 (4 essais, +9 %), 5 (2 essais, -12 %), 11 (4 essais, -2 %), 15 (3 essais, -8 %). Vérification contre l'archive pour chacun : Altman/Jobs/Hoffman/Superagency (bloc 4), Hoffman/gloomers/Platon/Trithème/l'étude Microsoft-CMU (bloc 5), Sewell Setzer/Character.AI/Sherry Turkle (bloc 11), la juge Anne Conway/premier amendement/mai 2025 (bloc 15) — tous intacts. Comme au chapitre 2, aucun 503 n'a produit de dégradation cette fois ; le garde-fou a surtout servi à confirmer plutôt qu'à corriger, ce qui est le comportement attendu quand le service répond normalement.
Deux invariants abîmés par la reformulation automatique, trouvés pendant la passe de rythme — troisième occurrence de ce défaut sur trois chapitres.
- Le premier principe du livre (introduction, ligne 48) était cité en écho au chapitre 3 avec le mot « troc », qui a disparu de l'introduction lors de sa propre reconstruction du 03/08 (« le mot troc a disparu, le principe demeure », voir §11.2 F du plan narratif). Le chapitre 3 employait encore l'ancien mot (« au troc qu'elle impose »), rendu incohérent par la reconstruction de l'introduction. Corrigé pour reprendre exactement la formulation actuelle : « à ce qu'elle exige en retour ». Ce n'est pas un défaut de Gemini mais un défaut de séquencement : la reconstruction de l'introduction et la réécriture du chapitre 3 n'ont pas été faites dans un ordre qui aurait évité l'incohérence — à surveiller pour les chapitres restants, qui citent tous une formulation ou une autre de ce principe.
- L'invariant B (garde-fou aveugle, seconde annonce, §11.2 B) avait été reformulé en empilant trois appositions à la suite (« un motif décoratif, une simple silhouette […], figure tragique que nous retrouverons ») — violation directe du test 5 de littéralité (section 3 terdecies : au-delà d'une apposition, couper la phrase). Restauré, et le résultat revient presque mot pour mot au verbatim de référence du plan narratif, preuve que la reformulation automatique n'avait fait qu'ajouter du bruit sans rien apporter.
Conséquence méthodologique retenue : à partir du chapitre 4, vérifier explicitement chaque invariant du §11.2 contre sa formulation actuelle (pas seulement contre le verbatim figé du 03/08) avant de considérer la passe terminée. Deux chapitres sur trois ont vu un invariant abîmé par Gemini ; ce n'est plus un accident isolé, c'est un point de contrôle systématique à ajouter à la procédure de la section 9.
Défaut de rythme, même profil que les chapitres 1 et 2. 3 tics/charnières corrigés (« il convient de », un « Or » isolé, formulation du troc), 3 paragraphes plats retravaillés. Un « Or » et un « Enfin » supplémentaires examinés et laissés en l'état : légitimes (le second élément d'une énumération explicite, pas une charnière de dissertation isolée). Trois « chaînes de coordination » signalées par verifier-litteralite.py restent en l'état : deux sont des énumérations de propositions relatives (« l'ami qui, le collègue qui, le conjoint qui »), légitimes et non fautives ; la troisième (p88) est la citation en bloc déjà documentée comme faux positif en §11.6 du plan narratif. Résultat final : CV 0,57, 5,8 % de phrases logées — même palier que les chapitres 1 et 2, rendement marginal décroissant, arrêt au même principe.
Volume final : 10 997 → 10 146 mots de corps (dans la cible). Appareil de notes inchangé (27 notes, 54 appels), 4 ##, aucune anomalie de jonction, aucun raisonnement fragmenté. compiler-livre.sh revérifié : 20/20 sections, 160 pages, exit 0.
Bilan des trois chapitres réécrits (1 à 3) : la Partie 1 est maintenant intégralement passée par le dispositif Gemini + contrôles. Reste le chapitre 4, qui avait déjà été jugé sans défaut structurel lors du diagnostic dialectique du 03/08 (comme le chapitre 2) — à vérifier si ce diagnostic tient une fois la réécriture stylistique appliquée.
14. Révocation du 03/08 — faux mystère introduit sur l'identité de Kramer, prompt corrigé
Les sections 11, 12 et 13 de ce journal (réécriture Gemini des chapitres 1, 2, 3) sont annulées. L'auteur a relu l'ouverture du chapitre 1 et signalé un défaut de fond, pas de forme : la sortie Gemini avait scindé l'action de Paul Carpenter et l'identité de son commanditaire, Steve Kramer, désigné d'abord comme « un tiers » anonyme puis nommé trois paragraphes plus loin, à l'endroit de la chronique judiciaire — une narration en rapport de police, alors que la scène est un thriller. Diagnostic de l'auteur, confirmé : Gemini avait appliqué la directive 5 du prompt (« Droit d'Élagage : garder l'os, enlever le gras ») à l'anecdote humaine elle-même, alors qu'elle ne devait viser que les théories, énumérations et listes d'exemples. Le « principe du mystère » de 00-COORDINATION.md (section 2) a été pris au pied de la lettre par le modèle pour la narration factuelle, ce qui n'était pas l'intention.
Décision : retour complet à la base d'écriture d'avant toute intervention du 03/08, plutôt que correction ciblée. Les chapitres 1, 2 et 3 ont été restaurés depuis le commit 3b9acad (« Littéralité et fluidité : introduction et chapitres 1 à 4 », 30/07/2026), dernier état sain avant la reconstruction dialectique et la réécriture Gemini de la même journée :
| avant révocation (03/08) | après révocation (= 3b9acad) |
|
|---|---|---|
| ch1 | 7 752 | 8 203 |
| ch2 | 9 628 | 10 423 |
| ch3 | 10 146 | 10 962 |
Les archives intermédiaires Manuscrit/archives/0{1,2,3}-*.avant-gemini-2026-08-03.md sont supprimées : elles pointaient vers l'état d'avant-Gemini de ce jour, qui contenait déjà les coutures de la reconstruction dialectique et n'est donc plus la bonne référence. La base de travail est désormais le commit 3b9acad lui-même. L'introduction (v7) et le chapitre 4 ne sont pas concernés par cette révocation : l'auteur n'a signalé de défaut que sur le chapitre 1, dont l'ouverture est le seul endroit du manuscrit où ce mécanisme avait joué.
Le nouveau prompt (v5), fourni intégralement par l'auteur
Changement de méthode notable : le prompt n'a plus été amendé par ajout de règle, il a été réécrit et fourni tel quel. Les six règles de la version précédente sont retravaillées en quatre règles de style (Musicalité, Gravité, Soudure, Tuilage) plus deux règles de fond explicitement mises en tension l'une avec l'autre :
- Règle 5 — Le Droit d'Élagage (Conceptuel). Recentrée sur les « listes d'exemples industriels, énumérations, détails illustratifs ». Le mot conceptuel est ajouté au titre lui-même, pour qu'aucune ambiguïté ne subsiste sur son périmètre.
- Règle 6 — La Causalité Narrative (L'interdiction du faux mystère). Nouvelle. « L'élagage ne s'applique jamais aux scènes humaines. […] Le lecteur doit savoir tout de suite qui agit, pourquoi, et avec qui. Ne cache JAMAIS l'identité d'un acteur pour créer un faux suspense littéraire. »
Le prompt complet vit dans reecrire_gemini.py, constante PROMPT_TEMPLATE — c'est la source de vérité, pas ce fichier. Il a perdu au passage la numérotation à sept règles et les contraintes négatives détaillées de la version précédente (staccato, mélodrame, remplissage narratif) : elles ne sont plus écrites explicitement, remplacées par la règle 2 (sobriété clinique) et la règle 6 elle-même. À surveiller à la prochaine passe : si le relâchement de ces interdictions explicites laisse revenir un défaut qu'elles corrigeaient (mélodrame, remplissage), le réintroduire ponctuellement plutôt que de réécrire tout le prompt.
Correction miroir dans 00-COORDINATION.md
La règle ajoutée en section 2 pour ce même incident (« La Fluidité Narrative ») a été renommée « La Causalité Narrative » pour matcher exactement le nom de la règle 6 du nouveau prompt, et sa note de bas renvoie désormais aux règles 5 et 6 par leur numéro actuel plutôt qu'à l'ancienne numérotation à sept règles.
Ce que ça signifie pour la suite
Les chapitres 1, 2 et 3 sont à réécrire entièrement avec ce nouveau prompt, en repartant du texte restauré (3b9acad), selon la procédure habituelle : découpage en blocs, série stricte extraire/réécrire/appliquer, vérification renforcée après tout bloc ayant subi plusieurs tentatives (règle ajoutée section 11, toujours valable), puis passe de rythme et de littéralité comme précédemment. Vérifier en particulier, sur le premier bloc du chapitre 1, que la scène Carpenter/Kramer reste bien fusionnée — c'est le cas qui a motivé toute cette révocation, et le test le plus direct de l'efficacité du nouveau prompt.
15. Réécriture du chapitre 1 avec le prompt v5 — 03/08/2026 (reprise après pause)
Résultat principal : le défaut de faux mystère qui a motivé toute la révocation de la section 14 ne s'est pas reproduit. Vérifié dès le premier bloc : « Il ouvre le site d'une entreprise de synthèse vocale […] puis tape un texte qu'un consultant politique démocrate, Steve Kramer, lui a fourni pour décourager la participation électorale. » Carpenter et Kramer sont fusionnés dans la même phrase, avec le mobile explicite, dès l'action elle-même — exactement la scène de thriller demandée. La règle 6 (Causalité Narrative) du nouveau prompt a fonctionné à son premier essai réel.
Incident opérationnel, sans conséquence sur le texte : deux drivers concurrents sur le même fichier. Un ancien processus de reprise (--depuis 10), lancé pendant la session précédente et jamais arrêté avant la pause, tournait encore quand le nouveau driver a été relancé sur le chapitre 1 dans son intégralité. Détecté au moment où le bloc 10 semblait bloqué anormalement longtemps ; les deux processus ont été arrêtés, l'intégrité du fichier vérifiée (compter-mots.py : aucune anomalie, jonctions intactes, 15/15 notes) avant toute reprise. Aucune corruption : le fichier ne contenait que les écritures du driver légitime jusqu'au bloc 9. Leçon pour la suite : après toute pause, vérifier list_processes avant de relancer un driver sur un fichier déjà en cours de traitement, et arrêter explicitement tout processus de reprise partielle qui ne serait plus nécessaire.
Bloc 10 (la crise iranienne), qui avait produit la dégradation factuelle du 03/08 avec l'ancien prompt (section 11) : passé sans aucune erreur réseau, en un seul essai, avec le contenu factuel complet. Attribution BBC présente, transformation porte-voix/lance à eau précise, tous les faits secondaires (Turquie, Asie du Sud-Est) conservés. Impossible de dire si c'est le nouveau prompt ou une meilleure disponibilité du service qui explique l'absence d'incident — les deux causes avaient été identifiées en section 11 — mais le résultat est bon dans les deux cas.
Passe de littéralité et de rythme, même profil que les trois chapitres précédents. Après application des 12 blocs : 4 chaînes de coordination et 4 charnières scolaires au-delà du plafond (dépassements réels cette fois, pas des faux positifs comme aux passes précédentes), 7 antithèses (plafond 6). Toutes corrigées à la main, une citation en bloc laissée intacte à raison (« Autrement dit, M. Musk… », protégée par la section 3 terdecies). Puis la même passe de rythme que sur les chapitres 1 à 3 précédents : CV porté à 0,53, quelques paragraphes plats retravaillés, arrêt au même palier que d'habitude (5,4 % de phrases logées contre 11 % visé), rendement marginal décroissant, accepté selon le principe de l'encadré du 03/08 en tête de la section 3 de 00-COORDINATION.md.
Volume final : 8 203 → 7 718 mots de corps. Appareil de notes inchangé (15 notes, 30 appels), 4 ##, aucune anomalie de jonction, aucun raisonnement fragmenté. Invariant C (rempart physique) et motif du tuyau (unique occurrence attendue au chapitre 1, la seconde restant au chapitre 4, non concerné par cette révocation) vérifiés intacts. compiler-livre.sh revérifié : 20/20 sections, 162 pages, exit 0.
Reste à faire : chapitres 2 et 3, à réécrire avec ce même prompt v5 depuis leur état restauré (3b9acad, 10 423 et 10 962 mots). Le chapitre 2 n'avait reçu aucune correction structurelle lors du diagnostic dialectique du 03/08 (jugé sans défaut), donc sa réécriture devrait être directe. Le chapitre 3 conserve sa décision de l'auteur de ne pas découper sa dernière section.
16. Prompt v6, second appel de vérification factuelle, tier flex — 03-04/08/2026
Le dispositif a changé en profondeur depuis la section 15. Cette section documente l'état réel du script au 04/08/2026 ; en cas de doute, reecrire_gemini.py reste la source de vérité.
Le prompt v6 : amplitude littéraire et refus de la sécheresse
Après relecture du chapitre 1 réécrit en v5, l'auteur a jugé le texte trop sec, trop proche d'un compte rendu factuel malgré la fusion narrative réussie. Deux changements, fournis intégralement par l'auteur plutôt qu'amendés :
- Règle 1 renommée « L'Amplitude Littéraire et le Souffle » : demande explicitement de « prendre le temps de déployer la langue », d'utiliser « un vocabulaire texturé, organique et varié », et rappelle que le texte doit être « physiquement beau et agréable à lire », pas seulement implacable.
- « Zéro Bavardage » remplacé par « Le Refus de la Sécheresse » : autorise explicitement « une phrase de transition élégante, une métaphore filée subtile ou un adjectif précisément choisi ». Le but affiché passe de « pas de rapport de police » à « un grand essai littéraire ». La contrainte anti-bavardage (aucune formule méta en tête de réponse) est conservée, mais reformulée en fin de cette même règle plutôt qu'isolée.
- Règle 6 (Causalité Narrative) renforcée et déclarée prioritaire, après un test contrôlé (voir section 17) ayant montré que l'amplitude de la règle 1 pouvait réintroduire le défaut de faux mystère que la règle 6 devait interdire. Ajouts : « RÈGLE PRIORITAIRE, qui prime sur toutes les autres en cas de conflit » ; instruction explicite que l'identité doit être donnée « dès la PREMIÈRE phrase » où un acteur agit ; liste noire de formules anonymisantes interdites (« un commanditaire », « un tiers », « un autre homme », « un virement depuis un compte personnel ») ; règle de tranchage explicite en cas de doute entre une phrase plus belle mais évasive et une phrase plus simple mais nominative — choisir toujours la seconde.
Les règles 2 (Gravité Implacable), 3 (Soudure Logique) et 4 (Tuilage) sont inchangées depuis la v5. Les règles 5 (Droit d'Élagage Conceptuel) et l'ossature à 6 règles sont conservées.
Test contrôlé ayant motivé le renforcement de la règle 6
Avant d'appliquer le prompt v6 à un vrai bloc, un essai contrôlé a été mené sur l'ouverture du chapitre 1 (source : archive pré-Gemini, jamais le texte déjà réécrit). Premier essai avec la règle 6 non renforcée : le défaut de faux mystère de la section 14 est revenu — « tape un texte qu'un commanditaire lui a fourni » au lieu de nommer Steve Kramer. Après renforcement de la règle 6 (priorité explicite, liste noire, règle de tranchage), un second essai sur le même bloc a produit la fusion correcte dès la première mention. Conclusion retenue : une règle de fond doit être explicitement hiérarchisée au-dessus d'une règle de style quand les deux peuvent entrer en tension, sinon le modèle privilégie la règle la plus récente ou la plus détaillée dans le prompt, pas nécessairement la plus importante pour l'auteur.
Second appel de vérification factuelle — angle mort comblé
Constat qui a motivé cet ajout : deux défauts réels passés inaperçus des contrôles mécaniques existants (verifier_notes, verifier_bavardage) sur le chapitre 1 en v6 : un décompte « treize + treize » fusionné en « vingt-six » sans le détail des deux catégories, et un « plan de conformité technique » disparu derrière une simple « pénalité ». Aucun des deux ne touche à un appel de note ni à une formule de bavardage : seule une relecture comparative pouvait les attraper.
Solution : un second appel Gemini, séparé du prompt littéraire, à température 0 (verifier_faits(), prompt FACT_CHECK_PROMPT). Sa seule tâche : comparer littéralement l'original et la sortie réécrite, ignorer tout ce qui est stylistique, et signaler toute divergence de fond — chiffre changé, décompte ventilé fondu, attribution nominale disparue, citation directe transformée en paraphrase, détail technique édulcoré, omission ou invention d'un fait. Appelé automatiquement à chaque reecrire, désactivable via --sans-verif-faits.
Modèle du second appel : gemini-3.6-flash, pas le modèle de production. Testé et retenu après comparaison avec gemini-3.5-flash sur un cas contrôlé (3 erreurs injectées volontairement dans un extrait réel du chapitre 1 : un chiffre changé, un mode de paiement omis, une citation dissoute en paraphrase) : les deux modèles détectent les trois erreurs avec une précision comparable, gemini-3.6-flash retenu car plus récent et moins coûteux. Un modèle de vérification n'a pas besoin de la puissance du modèle de production : c'est une tâche de comparaison littérale, pas de génération créative. Surchargeable via --model-verif ou GEMINI_MODEL_VERIF dans .gemini-credentials.
Bilan d'usage sur l'ensemble de la Partie 1 (introduction + chapitres 1 à 3, environ 40 blocs) : le second appel a soulevé des alertes sur la quasi-totalité des blocs, dont une majorité de vraies pertes factuelles corrigées manuellement avant application (voir détail par chapitre, sections 18-20) et une minorité de faux positifs bénins (reformulations fidèles, précisions factuellement exactes). Le taux de vraies pertes est resté élevé sur toute la passe : ce n'est pas un défaut ponctuel du prompt v6, c'est la conséquence structurelle de la règle d'amplitude (règle 1), qui pousse le modèle à paraphraser plus librement, donc à s'éloigner plus souvent du libellé exact d'un fait précis. Ce contrôle doit être considéré comme obligatoire pour toute réécriture v6 à venir, pas comme une sécurité occasionnelle.
Tier de service « flex »
Le 03-04/08/2026, le service Gemini a connu une saturation inhabituellement longue et répétée (503 sur cinq tentatives consécutives, y compris en tier standard, à plusieurs reprises sur la même journée). Adoption du tier flex par défaut (DEFAULT_SERVICE_TIER = "flex"), qui coûte 50 % moins cher que le tier standard en échange d'une latence variable (cible officielle Google : 1 à 15 minutes, capacité sheddable pouvant être évincée sans préavis en cas de pic sur le trafic standard). Paramètre service_tier ajouté au corps de la requête, timeout HTTP porté à 600 s pour ce tier (contre 240 s en standard). Surchargeable via --service-tier standard ou GEMINI_SERVICE_TIER dans .gemini-credentials.
En pratique, le 04/08 : plusieurs blocs ont épuisé leurs 5 tentatives en flex avant de réussir sur un second lancement, et quelques-uns ont dû être basculés en tier standard après deux échecs complets consécutifs en flex. Le gain de coût est réel mais suppose d'accepter des relances occasionnelles. Procédure retenue : lancer en flex par défaut ; si un bloc échoue ses 5 tentatives, relancer une fois en flex avant de basculer en standard au deuxième échec complet.
Conséquence opérationnelle : tous les appels desormais lancés en arrière-plan
Les lenteurs du tier flex (jusqu'à plusieurs minutes par appel) rendent l'attente bloquante impraticable. Procédure adoptée pour le reste de la Partie 1 et pour toute réécriture à venir : chaque appel reecrire est lancé en arrière-plan (control_bash_process ou nohup … & selon la disponibilité de l'outil), avec vérification périodique du fichier de log plutôt qu'une attente active. Cela permet de paralléliser des blocs de fichiers différents (par exemple un bloc du chapitre 2 et un bloc du chapitre 3 simultanément) — jamais deux blocs du même fichier en parallèle, le tuilage séquentiel l'interdit strictement.
17. Réécriture de la Partie 1 avec le prompt v6 — 03-04/08/2026, bilan complet
Introduction, chapitres 1, 2 et 3 intégralement réécrits avec le prompt v6, chacun repris depuis son état pré-Gemini (archive du 31/07 pour l'introduction, commit 3b9acad pour les chapitres). Méthode identique à celle des sections précédentes : découpage en blocs de 700 à 1200 mots aux frontières des ## et des citations en bloc (citations toujours exclues de l'envoi API, y compris quand cela impose un bloc résiduel de quelques dizaines de mots laissé tel quel plutôt que d'envoyer un fragment trop court pour justifier un appel), série stricte extraire/réécrire/corriger/appliquer, jamais deux blocs du même fichier en parallèle.
Volumes finaux et intégrité :
| avant (pré-v6) | après (v6) | notes | ## |
|
|---|---|---|---|---|
| Introduction | 3 900 | 4 108 | 10 (inchangé) | 4 |
| Chapitre 1 | 8 203 | 8 550 | 15 (inchangé) | 4 |
| Chapitre 2 | 11 353 | 11 012 | 20 (inchangé) | 4 |
| Chapitre 3 | 13 211 | 11 295 | 27 (inchangé) | 4 |
Aucune anomalie de jonction sur les quatre fichiers (grep -nE '[a-zà-ÿ]##|[a-zà-ÿ]<!--' négatif partout). compiler-livre.sh revérifié en fin de passe : 20/20 sections, 168 pages, exit 0.
Découpage le plus fin de toute la démarche jusqu'ici : le chapitre 3 contient trois citations en bloc supplémentaires (« On ne parle pas de ses sentiments à une calculatrice », la citation Duckworth/Hoffman, la citation Prinstein), ce qui a imposé un découpage en dix blocs pour ce seul chapitre, dont plusieurs de moins de 200 mots quand la fenêtre entre deux citations était étroite. Règle confirmée : un bloc de moins de 150 mots n'apporte pas de gain stylistique suffisant pour justifier un appel API ; il est alors laissé tel quel et le bloc suivant reprend le tuilage depuis ce texte non modifié — sans que cela ne pose de problème de cohérence, la phrase précédente réelle étant toujours recalculée depuis le disque.
Relecture manuelle de l'auteur sur l'introduction, intégrée directement sur le texte v6 (18 points) :
- Référence temporelle sans antécédent (« Ce soir-là ») supprimée.
- Détail ornemental non ancré (le vin liquoreux au dessert) supprimé. 3-4. Clausule « personne ne répond » reformulée pour clarifier qu'Altman et Metz sont en tête-à-tête. 5-6. Transition « il continue d'avancer » / « cette persistance » retravaillée (image du geste plutôt que répétition du verbe).
- « Retenez cet écart » réordonné : poser le constat avant de le nommer, pas l'inverse.
- Le principe fondateur reformulé une seconde fois : « au troc qu'elle impose » → « à ce qu'elle exige en retour ». Ce principe avait déjà changé de formulation le 03/08 (troc → « exige en retour » dans une tentative antérieure, perdue lors de la réinitialisation à l'archive pré-v6) ; il change donc une seconde fois pour la même raison, et l'écho au chapitre 3, qui le cite « mot pour mot », a été mis à jour dans le même mouvement pour rester exact.
- Harari présenté au lecteur (historien israélien, auteur de Sapiens) plutôt que nommé sans contexte.
- Métaphore de l'ingestion des données reformulée plus sobrement.
- Le mythe de Prométhée expliqué (qui est le Titan, ce qu'il vole) avant la référence à la couverture du livre.
- « le secteur » remplacé par des formulations plus concrètes (« les géants de la Silicon Valley », « ses pairs ») à deux occurrences.
- « a tout lu » développé (« a tout absorbé, tout ingéré, tout pondéré »).
- « protections sociales » ancré avec un exemple concret (« filets de sécurité pour ceux dont l'emploi disparaît »). 15-16. « les interrogations » → « bon nombre des interrogations » ; clausule de liste de questions développée.
- Eschyle présenté (dramaturge grec) à sa première mention.
- Section « Quatre mouvements » réécrite en profondeur : l'anaphore mécanique « Le [ordinal] mouvement, Titre, [verbe] » à quatre reprises consécutives, jugée trop proche d'un plan de dissertation scolaire, remplacée par des amorces variées ; la clausule finale « La conclusion, elle, ne résumera rien : elle posera un choix », jugée peu élégante et sans apport, supprimée sans remplacement.
Aucune de ces 18 corrections n'est un retour à une formulation antérieure au prompt v6 : chacune a été retravaillée directement sur le texte issu de la réécriture v6, conformément à la consigne de l'auteur de ne jamais revenir à l'état pré-v6 même quand une remarque de relecture recoupe une observation déjà faite sur une version antérieure du texte.
Reste à faire : aucune, la Partie 1 est close pour cette itération. Prochaine étape déclarée par l'auteur : écrire les chapitres 5 et 6 (rédaction directe, hors dispositif Gemini), puis reprendre ce même dispositif pour réécrire l'ensemble de la Partie 2 (chapitres 4, 5 et 6) en une seule campagne une fois ces deux chapitres rédigés.