1Objet et dates

Ce document répond au contrat de Kit - Documentation - Environnement d’exécution pour l’environnement de session de Claude AI. Il ne vaut que pour cet environnement, et pour la date à laquelle il a été mesuré.

Date Valeur
Rédaction 2026-09-01
Dernier contrôle 2026-09-01
Note:Les deux dates coïncident aujourd’hui. Elles divergeront: le contrôle se rejoue à chaque session, le document non. Un écart qui grandit signale un relevé à reprendre.

2Réponse au contrat

Même ordre de lignes que le §2 du contrat. La colonne “constaté” porte ce que le contrôle a mesuré, pas ce que l’environnement est censé offrir.

Capacité Constaté
Node.js v22.22.2 Fourni par le conteneur
Module docx 304 clés, construction CJS /home/claude/.npm-global/lib/node_​modules
Python 3 3.12.3 Fourni par le conteneur
pandoc 3.1.3 /usr/bin/pandoc
LibreOffice 24.2.7.2 /usr/bin/soffice
Pillow 12.1.1 Fourni par le conteneur
Module adm-zip ABSENT Installé en session

3Lacunes

adm-zip absent à l’ouverture — conditionnel. Le module n’est pas fourni par le conteneur. Il ne sert plus qu’à construire l’archive du site: la production des documents n’en dépend plus depuis General v1.83. Une session qui ne publie pas de site ne rencontre pas cette lacune.

Note:Le 2026-08-20, cette absence a arrêté un générateur après la construction du document et avant l’écriture du fichier — donc sans rien corrompre. C’est ce cas qui a conduit à sortir le module de la chaîne des documents.

4Contournements

Installation en début de session. La commande npm install -g adm-zip résout la lacune du §3. Le contournement ne survit pas: le conteneur repart de zéro à la session suivante, et la commande est à rejouer. Il est déclaré ici parce qu’il se répète, non parce qu’il se corrige.

5Particularités

Ce qui ne se mesure par aucune commande, et qui change pourtant la façon de travailler.

Les documents joints arrivent en texte extrait. Un .docx déposé dans le contexte du projet est lisible, mais ce qui est lu est une extraction textuelle, non le binaire. Modifier un document à partir de cette lecture produit un fichier appauvri — marquage, images et propriétés perdus — sans que rien ne le signale. D’où la règle du binaire obligatoire avant toute modification, et le contrôle de fidélité qui la vérifie.

Le conteneur repart de zéro. Aucun fichier de travail ne survit d’une session à l’autre. C’est ce qui fonde la réécriture du générateur à chaque session, et non une préférence de style.

Le conteneur tourne en temps universel. L’horloge du système est en UTC. Les horodatages de noms de fichiers passent donc par le helper d’heure locale, jamais par l’horloge directe.

La résolution de docx retient la construction CJS. Un require portant un chemin de répertoire retiendrait l’autre construction du même paquet, dont les classes ne sont pas reconnues par le sérialiseur de la première. La résolution ordinaire est donc la seule employée.

6Relevé brut

Commandes du contrôle et leurs sorties, verbatim, le 2026-09-01.

$ node --version
v22.22.2
 
$ node -p "require.resolve('docx')"
/home/claude/.npm-global/lib/node_modules/docx/dist/index.cjs
 
$ node -p "Object.keys(require('docx')).length"
304
 
$ python3 --version
Python 3.12.3
 
$ python3 -c "import PIL; print('Pillow', PIL.__version__)"
Pillow 12.1.1
 
$ which pandoc soffice
/usr/bin/pandoc
/usr/bin/soffice
 
$ node -p "Intl.DateTimeFormat().resolvedOptions().timeZone"
UTC