# AUDIT-TOKENS-20261025 — Diagnostic forensique des dépenses Ollama Cloud

- Publié : 2026-10-25T23:30:01Z
- Chantier : cost-forensic-20261025
- Type : final_report · révision v1 · contenu sha256:162b0deed4ae610af…

RM-146, révision hôte : consommation fournisseur 371,8026 USD ; Kimi 216,58414 USD, Flash 149,46908 USD. Gouvernance, contexte, rapports Obsidian et verbosité analysés ; 167,11 USD sans rapprochement fiable vers des sessions. Toutes les conclusions détaillées dans le texte intégral. Aucun appel d’inférence Ollama par l’audit ; production inchangée.

---
title: "AUDIT-TOKENS-20261025 — Diagnostic forensique des dépenses Ollama Cloud"
Auteur: codex-cost-forensic
mission: COST-FORENSIC-20261025
rapport: RM-146
revision: 2
classification: conclusions-publiques-agregees
status: diagnostic-partial-publication-confirmee-outil
---
# AUDIT-TOKENS-20261025 — Diagnostic forensique des dépenses Ollama Cloud

RM-146 — révision 2, audit étendu de l'écosystème et de la verbosité, 25 octobre 2026. Coupe fournisseur : **2026-10-25T23:06:18.978598373Z** ; agrégations locales réalisées ensuite, sans nouvelle inférence Ollama. Rapport complet de preuves : RC-146 conservé dans le coffre ; **toutes les conclusions et limites de l'enquête figurent dans ce RM public**. Seuls secrets, identifiants bruts de sessions, prompts, données privées et journaux bruts sont exclus.

## A. Résumé exécutif

**L'API Ollama retourne 371,802600 USD de consommation**, 41 438 requêtes, sur sa fenêtre « 7d » du 18 octobre 00:00 au 25 octobre 23:06 UTC. La fenêtre 30d retourne le même montant ; les premiers jours non nuls observés sont du 22 au 25. **Kimi K3 : 216,584140 USD (58,25 %)** ; **GLM Flash : 149,469080 USD (40,20 %)**. Les autres modèles et recherches représentent environ 1,55 %. La lecture du compte remplace l'estimation locale comme référence de consommation.

Le problème est double : prix de Kimi avant le changement de défaut, puis **volume de contexte rejoué** dans des trajectoires longues. Même Flash reste coûteux à l'échelle de 38 032 requêtes et 4,15 milliards de tokens d'entrée, cache compris. Aux tarifs historiques locaux, environ 198,93 USD correspondent à l'entrée cache, 141,29 USD à l'entrée fraîche et 31,27 USD aux sorties sur les modèles dont la grille est connue ; ce découpage est estimé, tandis que le total 371,80 USD est observé chez le fournisseur.

Les coûts retrouvés dans les sources locales atteignent **204,694139 USD estimés**, soit une couverture indicative de 55,05 %. **167,108461 USD restent sans rapprochement fiable vers des sessions précises**. Ce pont mélange des compteurs et estimations aux limites différentes ; il ne prouve pas que tout le résiduel soit hors VPS, clandestin ou perdu. Le journal du daemon montre près de 40 000 réponses réussies sur la voie /v1/messages, ce qui rend plausible un trafic massif via le VPS, sans l'attribuer requête par requête au compte.

**Le travail de gouvernance a lui aussi un coût** : rédaction de deux rapports, publications répétées, lecture de règles, retours d'outils, sous-agents et attentes pilotées par un LLM. Les hooks examinés sont déterministes ; leur exécution shell/HTTP ne déclenche pas, par elle-même, un LLM. Ils peuvent néanmoins ajouter du contexte ou provoquer du travail supplémentaire. Les règles globales de rapport sont disproportionnées pour les petites tâches et contredisent sur un point la politique de publication des RC.

**La verbosité est mesurable, mais ne suffit pas à expliquer la facture.** Les réponses finales candidates ont une médiane de 296 mots ; le plus gros volume produit est dans le raisonnement visible et les paramètres des outils, et le plus gros coût vient des entrées. Raccourcir seulement la réponse finale laisserait le principal poste de dépense intact.

**Urgence opérationnelle : aucun hard budget commun avant chaque appel externe n'est démontré.** Les budgets existants sont surtout des avertissements et des contrôles de lancement, avec un seuil Launcher de 500 USD/jour. La configuration de production n'a pas été modifiée par l'audit. Aucun sous-agent ni benchmark cloud n'a été lancé ; aucun POST d'inférence Ollama n'a été émis par l'enquête. Les consultations /api/usage sont des GET non génératifs.

### Rectifications du premier diagnostic

Le premier passage était limité par un sandbox. Le dossier local indiquait une publication bloquée et n'avait pas été publié par l'agent. Avec l'accès hôte autorisé, le coffre est accessible, la racine est RW et Launcher, Ollama, le routeur, la webui et KF sont actifs. **164,62 USD était un sous-ensemble estimé à partir des transcripts, pas le total dépensé.** La déduplication reste nécessaire, mais un surcomptage interne peut coexister avec de gros appels manquants ; il ne permet pas d'affirmer que la facture réelle était surestimée.

L'absence de Kimi après le 23 n'était vraie que dans les transcripts consultés : **le fournisseur signale encore 3 requêtes Kimi le 24, pour 0,05084 USD**. L'ancienne assertion « 99,9 % sessions opérateur » n'est pas établie. Le coût CLI/Anthropic, la consommation fournisseur, les estimations historiques et les achats de crédits sont des mesures différentes.

## B. Dix premières sources de dépenses et réconciliation

Le classement suivant est **la consommation fournisseur par modèle/service**, pas une somme du Ledger. Les tokens cache sont **déjà inclus** dans input_tokens côté fournisseur : frais = entrée totale − cache. Ne jamais ajouter cache à cette entrée totale. Les 10 premières lignes du fournisseur sont suivies d'un remainder : 112 requêtes, 0,000090 USD. Une ligne web_search est un service facturé distinct, pas une génération de tokens ordinaire.

| Rang | Source fournisseur / modèle | Requêtes | USD consommation | Part du total | Entrée totale, cache inclus | Cache inclus | Sortie |
|---|---|---:|---:|---:|---:|---:|---:|
| 1 | kimi-k3 | 2580 | 216.58414 | 58.2525 % | 301773209 | 262160959 | 1272422 |
| 2 | glm-5.3-flash | 38032 | 149.46908 | 40.2012 % | 4153422228 | 4007162176 | 14250618 |
| 3 | glm-5.3 | 359 | 5.44614 | 1.4648 % | 605111 | 256832 | 1111334 |
| 4 | nemotron-3-super | 269 | 0.14082 | 0.0379 % | 387794 | 27696 | 222834 |
| 5 | web_search | 10 | 0.10000 | 0.0269 % | 0 | 0 | 0 |
| 6 | gpt-oss:120b | 56 | 0.03926 | 0.0106 % | 110923 | 73360 | 53855 |
| 7 | mistral-large-4 | 6 | 0.01910 | 0.0051 % | 27222 | 0 | 264 |
| 8 | deepseek-v4.1-flash:1017 | 12 | 0.00388 | 0.0010 % | 67875 | 56448 | 3232 |
| 9 | muse-spark-open | 1 | 0.00005 | 0.0000 % | 61 | 48 | 4 |
| 10 | minimax-m3 | 1 | 0.00004 | 0.0000 % | 203 | 193 | 4 |


Somme des dix lignes : **371,802510 USD** ; remainder **0,000090 USD** ; total **371,802600 USD**. Ces agrégats sont ceux du compte authentifié scope=self, sans supposer couvrir d'autres comptes du propriétaire.

### Fenêtres temporelles

| Date UTC | Requêtes fournisseur | Consommation USD | Kimi USD | Flash USD |
|---|---:|---:|---:|---:|
| 2026-10-22 | 7082 | 164.90103 | 125.55771 | 34.09229 |
| 2026-10-23 | 8277 | 112.83516 | 90.97559 | 21.71919 |
| 2026-10-24 | 19637 | 72.04587 | 0.05084 | 71.96246 |
| 2026-10-25 | 6442 | 22.02054 | 0.00000 | 21.69514 |


- Plage fournisseur range=24h retournée : **24/10 23:00:00 → 25/10 23:06:18 UTC**, 6 984 requêtes, **23,816910 USD**. L'API arrondit le départ à l'heure ; ce n'est pas une fenêtre de 24 heures exactement à la seconde.
- Dernières 48 heures exactes : non disponibles avec la granularité quotidienne de range=7d. L'option supplémentaire granularity=hour a reçu HTTP 400. La somme **24/10 00:00 → 25/10 23:06**, soit environ 47 h 06, vaut **94,066410 USD** ; ne pas la présenter comme une mesure exacte sur 48 h.
- Depuis le 23/10 00:00 : **206,901570 USD**. Range=7d et range=30d : **371,802600 USD**, historiques non nuls seulement à partir du 22.
- Transcripts seuls, fenêtres mobiles locales à 23:09 UTC : résultats détaillés dans les agrégats ; ils ne remplacent pas les fenêtres fournisseur et ne se comparent pas sans alignement temporel.

### Pont vers les mesures internes

| Source locale | USD estimés / statut | Couverture et limites |
|---|---:|---|
| claude_unique | 164.621166 | Messages dédupliqués ; sous-agents inclus |
| router | 0.324761 | Coûts calculés router.db ; pas de rapprochement requête fournisseur |
| researcher_known_model_estimate | 2.443298 | Deux runs à volume non nul sans modèle non chiffrés ; cache non instrumenté |
| hermes_separate_cache_estimate | 37.138682 | Profils root + Obsidian ; hypothèse cache séparé à vérifier |
| qwen | 0.075693 | Deux requêtes Kimi dans usage_record |
| opencode | 0.071917 | Coût affiché zéro malgré compteurs ; recalcul tarifaire |
| pi | 0.014604 | Coût affiché zéro malgré compteurs ; recalcul tarifaire |
| chat | 0.004018 | Deux turns, quatre appels déclarés ; cache absent |


Sous-total indicatif **204,694139 USD**, écart fournisseur **167,108461 USD**. La couverture de 55,05 % n'est pas un taux de facturation audité : prix locaux historiques, sémantique du cache Hermes non confirmée, erreurs/compactions/canaux auxiliaires possiblement incomplets et horodatages différents. Aucun coût n'est inventé pour solder cet écart.

Le Launcher déclare **22,595813 USD** pour 39 exécutions, mais les transcripts appariés à 23 de ses sessions donnent **3,435929 USD** à la grille Ollama ; écart **19,159884 USD** non isolé. Les montants du Launcher recouvrent les transcripts et ne sont pas ajoutés. Les états cost-state de Claude totalisent **1 949,188961 USD** dans les sessions présentes : **ce n'est pas une facture Ollama** ; l'adaptateur signale aussi des coûts de modèle inconnus. Le mauvais choix de compteur peut donc aussi bien masquer que grossir la dépense.

### Ce que le Ledger manque

Il additionne chaque bloc assistant portant usage, y compris les compteurs provisoires avant répartition frais/cache ; plusieurs blocs peuvent partager un même message.id et requestRef. La déduplication conserve l'usage terminal/cumulé. Il omet les sous-agents dans son glob supérieur et interprète au mauvais niveau tokens_by_model du Researcher. Hermes, Pi, OpenCode et Qwen ne sont pas couverts par son collecteur existant. Son dernier snapshot visible date du 24/10 à 00:09 ; cron installé ne prouve pas collecte réussie les jours suivants.

Sur les seules traces supérieures actuelles : somme naïve **417,876047 USD**, somme après déduplication **139,614513 USD** ; ajouter les sous-agents dédupliqués **25,006653 USD** donne **164,621166 USD**. Au cutoff historique, le total Claude du Ledger **320,963001 USD** se compare à **104,332558 USD** recalculés sur les traces supérieures aujourd'hui disponibles. Le corpus historique n'est pas un snapshot immuable de tous les fichiers à l'époque. La ressemblance fortuite entre un ancien chiffre de 321 USD et la consommation réelle de 371,80 USD ne valide pas l'ancien calcul.

## C. Avant/après RM-043 : ce qui a réellement changé

Cutoff hérité de compare.py : **24 octobre 00:00 UTC**, convention d'analyse, pas heure prouvée du changement de tous les clients.

| Fenêtre | Consommation fournisseur | Requêtes | Observations |
|---|---:|---:|---|
| 22–23 octobre | 277,736190 USD | 15 359 | Kimi 216,533300 USD, Flash déjà actif |
| 24–25 octobre à 23:06 | 94,066410 USD | 26 079 | Flash dominant ; 3 Kimi résiduels le 24 |

Baisse descriptive des totaux : environ **66,13 %**, avec davantage de requêtes. Les tâches, les durées des fenêtres, les volumes d'entrée et la qualité ne sont pas contrôlés ; **ce n'est pas une preuve causale du seul changement LAUNCHER_MODEL**. Les exécutions Launcher Claude observées demandent bien Flash, mais les sessions manuelles ont leurs réglages indépendants.

Contrefactuel sur **les volumes fournisseur Kimi identiques** : 301 773 209 tokens d'entrée totale, dont 262 160 959 cache, et 1 272 422 sortie. À la grille locale Flash, cela ferait **14,442877 USD** contre **216,584140 USD observés** : écart théorique **202,141263 USD**, soit environ **93,33 %**. Les modèles ne produiraient pas nécessairement la même trajectoire ni la même qualité ; ce n'est pas une économie déjà encaissée. L'ancien contrefactuel local de 67,31 USD ne couvrait qu'une partie des volumes ; l'ancien ~171 USD/2j n'était pas une économie fournisseur mesurée.

Le routeur ne démontre que **0,011562 USD de coût cloud contrefactuel évité** par ses appels locaux enregistrés. Cela ne constitue ni remboursement ni économie globale du système. Les bancs antérieurs annoncés à 24/26 ne garantissent pas l'équivalence des modèles sur toutes les missions réelles.

## D. Carte réelle des flux et des contournements

| Chemin | Origine / identité | Modèle / fournisseur | Limites réellement établies | Coût / traçabilité |
|---|---|---|---|---|
| Claude manuel → claude-ollama → daemon local → cloud | Session opérateur ou agent root ; rôle exact non prouvé par fichier | Wrapper Kimi par défaut ; Flash et Kimi tracés | Aucun gate USD commun ; les tags :cloud sont externes | 164,62 USD de transcripts Claude toutes voies/sous-agents, pas une facture exhaustive |
| Launcher → même wrapper | Missions ; service root actif, worktree rre-v2 chargé | Flash défaut ; metadata et modèle parent de reprise prioritaires | Max 4, 1/repo, 2/projet déclarés ; admission 500 USD/j ; budget mission parfois terminal | 39 exécutions, 9 budgets, 6 Claude lost ; coût CLI non canonique |
| model-router → SCRIPT/local/cloud | Clients API et bancs, service actif | 165 locaux, 202 cloud, 6 builtin | Tentatives bornées ; pas de réservation financière commune démontrée | 0,324761 USD calculés ; 44 échecs, 12 tentatives supplémentaires |
| Researcher/RRE historique → API cloud directe | Missions/recherche | GLM, Flash, Nemotron, GPT-OSS | Max 60 appels, concurrence 4 et retries 3 déclarés ; pas de plafond USD central | 38 usages de runs ; ventilation incomplète, coût cache non collecté |
| RRE v2 metadata-only | Launcher | Pas d'inférence sur les 8 lignes concernées | Pas de dépense LLM déclarée | Ne pas généraliser ce zéro à tout Researcher |
| Hermes root | Local/oneshot | Kimi cloud, Mistral | Hors routeur, coût financier runtime inconnu | 420 appels au compteur, dont 419 Kimi ; environ 37,05 USD Kimi à grille locale sous hypothèse cache séparé |
| obsidian-agent → Hermes dédié | Utilisateur obsidian, quatre oneshot | GLM cloud | Hors routeur, pas de budget commun trouvé | 10 appels ; coût affiché 0/inconnu malgré compteurs ; coût local environ 0,075 USD |
| OpenCode, Pi, Qwen | CLI | Kimi par défaut ou réellement compté ; OpenCode aussi GLM | Hors routeur ; aucun gate USD commun trouvé | Coût souvent affiché 0 ; quelques requêtes réelles retrouvées |
| Poolside / autres runtimes installés | CLI disponibles | Poolside défaut Kimi ; Factory/Copilot/Kimi Code présents | Configuration disponible ≠ consommation Ollama prouvée | Aucune grosse dépense ne leur est imputée faute de preuve |
| Codex | Identités root et codex authentifiées ChatGPT | OpenAI par défaut ; profil Ollama opt-in | Aucun Ollama requis pour cette enquête | Trois missions codex/default done, une codex/GLM failed ; NULL coût ≠ zéro |
| Hooks, conciergerie, KF/hub, timers | Démon / événement | Scripts et SQL déterministes pour les chemins examinés | Aucun LLM dans leurs opérations inspectées | Coût indirect par injections et travail demandé, pas de preuve de génération payante à chaque tick |
| Maestro/P6 | Intégration partiellement disponible | Aucune unité maestro active trouvée | Aucun budget effectivement traversé prouvé | Aucun coût chiffré sans appel ou compteur |

Les variables de modèle, metadata, reprise, profil et endpoint sont des points de décision indépendants. Modifier LAUNCHER_MODEL ne modifie ni le wrapper sans argument, ni OpenCode/Pi/Poolside/Hermes, ni la reprise d'une session Kimi. Aucun secret n'est nécessaire pour comprendre ces contournements.

### Journal réseau local : grande couverture de trafic, attribution insuffisante

Agrégation des journaux Ollama depuis le 22 : **39 984 POST /v1/messages HTTP 200**, 66 en 502, 82 en 404, 136 en 429 ; 502 POST /v1/chat/completions HTTP 200, 433 POST /api/chat HTTP 200. Ce sont des requêtes HTTP locales, pas toutes des crédits cloud : modèles locaux, tentatives et proxies existent. Les 128 count_tokens en 404 ne prouvent aucune génération facturée.

La différence entre environ 40 000 réponses réussies sur cette voie, 20 425 api-request consignés et 20 780 messages uniques finaux **reste non expliquée requête par requête**. Appels auxiliaires non inscrits au transcript, artefacts absents et autres clients sont des hypothèses ; aucun mécanisme n'est désigné comme cause unique sans identifiant fournisseur commun. Le journal ne permet pas d'exclure des clés utilisées hors du VPS. Une investigation de compte et une rotation contrôlée restent à envisager si le résiduel ne se résout pas.

## E. Anatomie des coûts : contexte, outils, gouvernance, verbosité

### E1. Le cache est utile, mais son volume domine

Fournisseur : **4 457 647 382 tokens d'entrée totale**, dont **4 270 645 195 en cache** (95,80 %), donc **187 002 187 frais**, et **17 053 841 sortie**. Les tokens cache ne sont pas gratuits. Application des tarifs historiques conservés aux modèles connus : cache **198,930956 USD**, frais **141,292918 USD**, sorties **31,268100 USD** ; reste tarifaire/arrondi de ces modèles **0,206656 USD**, plus modèles hors grille et service web_search. Ne pas présenter ce découpage comme une ventilation financière fournie par Ollama.

Sur les transcripts dédupliqués seulement, frais+cache par message : p50 **116 292**, p90 **250 365**, p99 **465 364**, max **590 278 tokens**. Frais seuls : p50 **1 023**, p90 **5 300**. Même un bon taux de cache laisse une facture élevée si un long historique est relu à chaque commande.

### E2. Coût fixe des schémas d'outils et règles du VPS

Pour les **20 425 formes de requêtes référencées** : schémas des outils p50 **38 316 caractères**, p90 **59 796**, max **73 189** ; système+outils p50 **44 685 caractères**, p90 **67 278**, max **80 671**. La somme des caractères de ces parties statiques rejouées atteint **992 728 333**. Ce sont des caractères sérialisés, pas des tokens facturés ni des entrées fraîches à chaque fois ; ils peuvent bénéficier du cache.

Les fichiers de règles générés racine font chacun environ **16,7 ko**, les règles utilisateur Claude **2,8 ko**, MEMORY.md **11,1 ko**. Ils transmettent aussi beaucoup d'état collectif sans rapport immédiat avec une petite mission : tâches, agents inactifs, événements, alertes et règles de publication. Les identifiants techniques et timestamps changeants peuvent réduire la stabilité des préfixes entre sessions ; **l'impact de cache exact n'a pas été isolé**. AGENTS.md et CLAUDE.md sont des mécanismes de runtimes différents : ne pas prétendre que chaque modèle reçoit forcément les deux.

Le hook SessionStart appelle une injection adaptative limitée à **4 000 caractères**, avec règles une fois et alertes en delta. Cette optimisation existe, mais ne remplace pas à elle seule les fichiers natifs, les schémas d'outils ni l'historique. **154 événements SessionStart** et **478 054 caractères de stdout/stderr cumulés** sont présents dans les traces. Ce coût d'entrée n'est pas tarifé isolément.

La reconstruction complète des messages wire n'a réussi que sur **545/20 425 requêtes**, car beaucoup d'empreintes n'ont pas leur blob complet disponible. Dans ce sous-échantillon, système+outils représentent une médiane d'environ 47 % des caractères. **Échantillon biaisé, aucune extrapolation financière globale.** Les statistiques des formes système/outils ci-dessus couvrent, elles, les 20 425 références.

### E3. Outils, lectures et propagation dans l'historique

Après déduplication par session et tool_use.id : **16 005 Bash**, **2 065 Read**, **1 930 Write**, **3 761 Edit**. Les entrées d'outils représentent environ **25,68 millions de caractères**. Les retours Bash représentent **17,95 millions**, les retours Read **11,93 millions**. Un retour utile une fois peut ensuite être payé en cache à chaque tour ; ce coût de propagation est le principal enjeu, plus que le coût d'un simple accès disque.

**854 relectures du même chemin empreinté** sur tout le corpus et **131 répétitions exactes outil+entrée+résultat dans une même session** ont été détectées. Cela inclut des vérifications légitimes. Les 117 réponses associées aux répétitions exactes représentent **0,611167 USD d'enveloppe brute estimée**, pas une économie prouvée. On ne déduit pas la qualité ni l'inutilité à partir de l'identité du résultat.

### E4. Obsidian : stockage bon marché, production et gouvernance coûteuses

Les notes du coffre consultées avant le remplissage de cet audit forment **133 paires RM/RC numérotées**, plus des fichiers de lecture/index. Les inventaires répertoires incluaient aussi les index. Les rapports contiennent environ **1,58 million de caractères** au total hors cet audit. Les payloads Write directement destinés aux rapports observés dans les transcripts totalisent **1 572 789 caractères** sur 250 opérations ; les écritures via Bash/Edit ne sont pas toutes comprises dans cette mesure.

**257 lectures de rapports**, **947 commandes classées comme publication**, dont **128 résultats contenant des indices d'échec** (403, fichier absent, permissions, scan indisponible, etc.). Certaines commandes ne font qu'inspecter/aider/tester la publication ; ces nombres ne sont donc ni 947 uploads ni 128 générations facturées perdues. Les messages associés à des fichiers de rapport ou commandes de compte rendu représentent **1 945 réponses et 11,441619 USD d'enveloppe brute estimée**. Ils peuvent contenir du travail utile et d'autres outils ; **11,44 USD n'est pas le coût marginal isolé des rapports**, et les réinjections ultérieures ne sont pas toutes comprises.

La consigne utilisateur globale impose **RM + RC + final_report**, la mise à jour d'un index et une publication supplémentaire. Elle exige pour RC les commandes/sorties, extraits, configurations, mesures, erreurs, etc. C'est une demande intrinsèquement génératrice de texte, même pour un test d'une ligne. Le coût vient de la rédaction, des outils, des reprises et de la réintégration dans le contexte, **pas de l'opération d'écriture ou de synchronisation du fichier à elle seule**.

**Contradiction prouvée :** la règle globale Claude demande la publication systématique des RC ; rapport-publier refuse par défaut Rapports complets comme archive privée. Les agents doivent résoudre cette incohérence, essayer, expliquer un PARTIAL ou demander une exception. Ce conflit est une cause crédible de friction ; son coût causal total n'est pas mesuré. Le présent mandat autorise les conclusions publiques, pas la fuite de journaux, secrets ou prompts privés.

Le canal obsidian-agent est différent : c'est un **Hermes GLM Cloud** sous identité dédiée. Lui demander « lis/crée/résume une note » peut donc coûter de l'inférence, même si une lecture/écriture directe ferait le même travail sans LLM. Quatre sessions et dix appels ont été retrouvés ; aucun usage massif de ce canal n'est démontré. La synchronisation de fichiers, le script rapport-mission et l'upload rapport-publier sont déterministes dans les chemins inspectés.

### E5. Verbosité ressentie : mesure et origine

Votre impression a une base mesurable : sur **122 réponses finales candidates** (dernier assistant visible de session principale, contenant du texte sans outil), la médiane est **296 mots / 2 039 caractères**, p90 **438 mots / 3 070 caractères**, maximum **942 mots / 6 722 caractères**. **65/122** dépassent 2 000 caractères ; seulement **2/122** dépassent 5 000. Ce n'est donc pas une preuve que toutes les réponses finales sont extrêmes, et la brièveté adaptée dépend de la tâche.

Les **358 réponses uniquement textuelles**, finales et intermédiaires mêlées, ont une médiane de **1 942 caractères**, p90 **3 132**, maximum **31 614**. Les rapports existants ont une médiane de **4 947 caractères pour RM** et **7 326 pour RC** ; p90 **6 933** et **11 779**. L'audit détaillé présent est une exception explicitement demandée et n'est pas compté dans ces statistiques de notes historiques.

Indices du cérémonial dans les réponses finales candidates : **109/122 mentionnent les rapports/publications**, **90/122 les tests/vérifications**, **79/122 PARTIAL ou les restes**, **63/122 le rollback**. Ces catégories se recouvrent et ne prouvent pas une répétition inutile dans chaque mission. Leur correspondance avec les rubriques obligatoires est cependant forte.

Les recouvrements littéraux RM↔RC sont plus modestes qu'une duplication intégrale : intersection de séquences de cinq mots, fraction médiane d'environ **8 % du RM** et **5 % du RC**. Cela ne justifie pas de dire que RC copie toujours RM. Le problème est davantage **la double obligation de production et les résumés répliqués sur plusieurs canaux** que le copier-coller mot à mot.

Dans toutes les sorties Claude observées, le texte ordinaire représente **1,49 million de caractères**, le raisonnement visible **14,23 millions**, les paramètres d'outils **25,68 millions**. Ces catégories sont en caractères, pas en tokens de raisonnement facturés ; elles sont non interchangeables. Les réponses seulement textuelles portent environ **257 155 tokens de sortie déclarés**, raisonnement non séparé, sur 11,40 millions dans les transcripts. **Le texte final visible n'est pas le principal volume de sortie.**

Origines les mieux étayées : gabarit complet imposé à toutes tailles de tâches ; preuve systématique tests/rollback ; trois canaux de clôture ; consigne de RC intégral ; conflits sur RC privé/public ; états PARTIAL et échecs de publication à expliquer ; contexte collectif abondant. Le comportement de modèle et les skills peuvent amplifier cela, mais aucun effet causal chiffré propre à un skill ou à une instruction unique n'est démontré.

**Correction minimale recommandée :** trois niveaux de compte rendu selon le risque ; pour tâche simple, résultat en 3–6 lignes avec lien de preuve ; un seul artefact canonique et des pointeurs ; RC détaillé seulement si incident, décision durable ou demande explicite ; publication et index générés depuis cet artefact ; réponses finales ordinaires visées à 80–150 mots, sans limite rigide pour une explication complexe. Mesurer ensuite la longueur, les réouvertures et la qualité, sans benchmark cloud. Cette politique n'a pas été appliquée sans décision opérateur.

### E6. Délégations, boucles, attentes et tests

**117 appels d'outil Agent dédupliqués**, 292 Monitor, 12 ScheduleWakeup, 119 SubagentHandback. Sous-agents : **4 972 messages**, **25,006653 USD estimés**, inclus dans Claude. Par source api-request appariée aux réponses : SDK **5,697913 USD**, fil principal **133,773442 USD**, general-purpose **16,236587 USD**, Explore **8,596734 USD**, non apparié **0,316490 USD**. Les classifications diffèrent légèrement de l'inventaire par chemins : elles ne doivent pas être additionnées entre elles.

| Activité (détection conservatrice) | Réponses associées | Enveloppe brute estimée USD |
|---|---:|---:|
| polling_wait_status | 1629 | 12.564605 |
| report_publication_commands | 1313 | 8.354506 |
| delegation_coordination | 471 | 2.847481 |
| test_benchmark_commands | 2929 | 24.826508 |


Ces enveloppes **se recouvrent** et incluent le contexte complet de la réponse qui choisit l'outil. Un test peut être utile ; une attente peut éviter une relance ; une publication peut appartenir à une recette. Ne pas additionner les lignes pour construire une part « gaspillage ». L'appel Agent ne vaut pas une seule inférence : le sous-agent peut produire une trajectoire entière, puis son résultat être relu par le parent. Les handbacks représentent aussi environ 1,60 million de caractères dans les paramètres d'outils observés.

Une boucle financièrement dangereuse existe comme **possibilité architecturale** si la décision de chaque sondage est confiée au LLM avec tout l'historique. L'enveloppe de polling/état atteint **12,564605 USD estimés** ; le coût évitable n'est pas isolé. Préférer une attente/sonde déterministe bornée qui ne réveille l'agent qu'à changement, erreur ou échéance. Les compteurs ne démontrent pas une boucle infinie actuelle.

Le routeur a **12 tentatives supplémentaires et 44 échecs** ; coût incrémental non séparable de ses lignes agrégées. Les durées retry des cost-state Claude totalisent **138,353 secondes** supplémentaires selon ce champ ; ce n'est pas une mesure de coût. Des titres de missions identiques et **7 groupes mission_sha256 répétés** existent ; reprises, recettes et exemptions volontaires doivent être distinguées des doublons évitables. Aucune économie causale de Result Reuse n'est attribuée sans trace de refus/réutilisation.

### E7. Hooks et automates : ce qui appelle réellement un modèle

| Mécanisme inspecté | Traitement | Effet sur le coût LLM |
|---|---|---|
| SessionStart | HTTP local, contexte adaptatif 4 000 caractères | Injection puis relecture possible ; pas de génération dans le hook |
| PostToolUse attribution | HTTP local, attribution de fichiers | Déterministe, pas d'inférence propre démontrée |
| Skill capture | Enregistrement local des invocations | Pas de génération propre ; le skill chargé peut ajouter du contexte |
| Tool output guard | Regex sur échantillon, capture d'indices | Pas de LLM inspecté ; ne justifie pas de supprimer la protection |
| UserPromptSubmit | Capture déterministe bornée | Trace locale ; pas de LLM propre, pas de preuve d'une réinjection intégrale |
| SessionEnd / réconciliation | Capture et rapport reconstitué à partir de preuves | Chemin inspecté déclaré et implémenté sans LLM |
| Stop nudge | Une fois si travail non rendu ; garde stop_hook_active | Peut demander un tour de rapport ; code prévient la boucle Stop→Stop |
| Timers KF/hub/core et collecte Ledger | Shell/SQL/FTS/projections | Aucun appel LLM trouvé dans les chemins examinés ; ne pas assimiler chaque tick à une dépense cloud |

Dans la base consultée : **334 missions de réconciliation**, toutes nudged=0 ; aucun événement Stop bloquant observé dans les attachments analysés. **On ne peut donc pas imputer une boucle de Stop hook à la surconsommation présente.** Le garde-fou existe dans le code ; les obligations globales peuvent suffire à produire les rapports sans rappel.

Le hub KF vivant est actif mais sa table cost_fetch est vide ; ce n'est pas une preuve d'économie active de contexte. Une cron Hermes activée toutes les 360 minutes est en erreur pour script absent ; aucun coût de génération ne lui est imputé sans trace d'appel. Les traitements déterministes consomment CPU, disque et temps, mais pas automatiquement de crédits Ollama. Leur coût VPS marginal en EUR n'est pas calculable sans facture et allocation de ressources.

### E8. Les zéros trompeurs des autres runtimes

Hermes root : **419 appels Kimi**, 1 591 218 entrée, 95 150 111 cache et 248 963 sortie, plus un appel Mistral ; cellule coût estimé zéro, actual_cost NULL, cost_status=unknown. Hermes Obsidian : **10 appels GLM**, 29 814 entrée, 99 648 cache, 1 667 sortie, coût également inconnu. OpenCode : trois réponses, deux Kimi et une GLM, coût affiché zéro. Pi : une réponse Kimi avec 4 743 entrée et 25 sortie, coût affiché zéro. Qwen : deux requêtes Kimi, 22 951 entrée et 456 sortie. **Zéro affiché est une absence de tarification, pas la gratuité.**

Les journaux montrent 12 606 GET /api/tags et 1 450 GET /api/status : bruit de contrôle important mais **pas des générations payantes démontrées**. Ne pas les traiter comme le principal poste de crédits. Les embeddings locaux et les captures/archives scientifiques restent conservés ; aucun nettoyage destructeur n'a été tenté.

## F. État réel des défenses

| Correctif | Prévu / testé | Déployé / traversé | Économie mesurée | Preuve / défaut restant |
|---|---|---|---|---|
| LAUNCHER_MODEL | GLM Flash ; banc antérieur 24/26 annoncé pour chaque modèle | 27 exécutions Claude GLM observées ; aucun Kimi après le 23 dans les transcripts ; fournisseur 3 appels le 24 | Causalité non isolée ; volumes avant/après ci-dessous | E2/E4/E5 ; wrappers et metadata/reprises prioritaires sur le défaut |
| Budget Engine, budgets.json | Avertir 200, seuil 500 USD/j ; pas de blocage par conception | Code et cron installés ; dernier ledger 24/10 00:09 | Aucune économie attribuable | E1/E3 ; avertissement seulement, collecte périmée |
| Budget Launcher | Admission 500 USD/j ; contrôle budget mission | 9/39 exécutions avec budget ; coût actualisé seulement sur result terminal | Aucune démontrée | E4/E5 ; pas de réservation avant appel, dépassement possible pendant une session |
| mission_sha256 | Dédup contenu, tests antérieurs 14/14 annoncés | 39/39 empreintes ; 7 groupes répétés ; états/reprises/exemptions à distinguer | Non mesurable sans refus évités | E4/E5 ; pas de dédup sémantique intersessions |
| Broker KF-11 / P5 différentiel | Paquets bornés, manifeste et Used ; bancs précédents annoncés | 39 manifestes ; base hub vivant consulté sans cost_fetch/cost_events ; consommation effective non prouvée | Non mesurée | E5/E6 ; fetch et présence ne prouvent pas réutilisation dans le prompt |
| SCRIPT → LOCAL → CLOUD | Routage par classe dans plans | 0 mission_plan dans le registre ; routeur 165 appels locaux + 6 builtin | 0,011562 USD contrefactuels locaux, pas de crédit remboursé | E4/E7 ; CLI hors routeur, aucune économie globale démontrée |
| Reprise idempotente | Reprise explicite et effets/checkpoints ; tests anciens annoncés | resume_count total 4 | Non mesurée | E4/E5 ; identité modèle parente conservée |
| Result Reuse / Collaboration Relay | RM-043/047 : conception ; RM-108 : réutilisation de plans | Aucun plan enregistré ; RRE a son registre, économies financières non établies | Non mesurée | E4/E8 ; sessions CLI indépendantes non couvertes |
| Compaction | Réduire contexte | 2 marqueurs compact_boundary observés, inventaire partiel du mécanisme | Non mesurée | E2 ; faible nombre ne prouve pas absence d'autres compactions |
| Token Ledger / cron | Collecte quotidienne et snapshots | 1 snapshot daté 24/10 00:09, aucun refresh suivant visible | Mesure défectueuse, pas une défense financière | E1/E3 ; doublons de blocs, sous-agents omis, schéma Researcher mal interprété |
| CodexEngine | OpenAI défaut, Ollama profil opt-in ; anciens tests annoncés | 3 missions codex/default done ; 1 codex/GLM failed | Coût Ollama nul non démontré par une cellule NULL | E4/E5 ; metadata modèle peut rester GLM, tokens non monétisés |
| Maestro P6 | Contrôles de plans et budgets | Aucune unité maestro active trouvée ; voies indirectes non exhaustives | Non mesurée | E9 ; ne pas déduire de coût cloud sans compteur |
| Claude manuel | Wrapper et profils | Claude et sous-agents dominent les traces ; défaut wrapper toujours Kimi | GLM effectif dans traces depuis le 24 ; causalité Launcher non prouvée | E2/E10 ; aucun hard budget commun |


Les tests cités sont ceux des comptes rendus antérieurs, pas des tests rejoués pendant cet audit. Une fonctionnalité présente sur disque ne prouve pas son chargement par le processus actif.



Compléments de la révision 2 : les services hôte sont vérifiés actifs, la grille de facturation interne n'est pas canonique, les runtimes latéraux restent hors Ledger et le compte fournisseur montre une couverture économique locale insuffisante. Les tests cités restent ceux des comptes rendus historiques ; **aucun test d'inférence n'a été rejoué**.

## G. Cinq interventions prioritaires

Aucune configuration de production n'a été modifiée. Les délais ci-dessous sont des estimations d'ingénierie, pas des devis ni des autorisations implicites de déploiement.

### 1. Confinement et hard budget commun avant appel

- **Cause/preuve :** sorties directes multiples, budget souple 200/500 USD, compte fournisseur 371,80 USD, budget de mission rarement renseigné et coût parfois connu à la fin.
- **Changement minimal/réutilisation :** limiter immédiatement l'autorisation cloud des consommateurs inventoriés, puis réutiliser model-router et SQLite comme porte obligatoire. Réserver atomiquement le pire coût entrée+sortie maximale avant l'appel ; régulariser à la réponse ; chaque retry réserve ; clé idempotente par tentative ; prix inconnu ou registre indisponible = refus ; réservations incertaines après crash conservées jusqu'à réconciliation.
- **Condition de sécurité :** tous les runtimes et le daemon local :cloud doivent traverser cette porte ; clés/session cloud accessibles uniquement à elle et sorties directes bloquées par politique réseau contrôlée. Un proxy optionnel n'est pas un hard budget. Inventorier les usages hors VPS avant rotation contrôlée ; ne pas effacer de preuves.
- **Effort :** confinement 0,5–2 h ; gate commun 1–3 jours. **Économie :** borne imposée à la consommation future couverte ; jusqu'à 100 % des appels effectivement suspendus, pas promesse de remboursement. Référence récente : 23,82 USD sur la fenêtre fournisseur 24h retournée.
- **Risque/qualité :** refus et interruption de travaux ; plafond et dérogations explicitement décidés. **Validation sans cloud :** serveur factice, concurrence, retries, crash, dépassement et refus d'accès direct. **Retour :** droits et configuration sauvegardés, rouvrir uniquement après maîtrise du plafond. **Approbation :** opérateur indispensable pour compte, réseau, clés et services.

### 2. Aligner les modèles économiques de toutes les entrées

- **Cause/preuve :** 216,58 USD Kimi ; wrapper, OpenCode, Pi, Poolside, Hermes et metadata/reprises indépendants de LAUNCHER_MODEL.
- **Minimal/existant :** liste de modèles approuvée dans les réglages existants et au gate ; Kimi seulement sur décision explicite pour la mission ; conserver l'identité de reprise et contrôler l'autorisation avant reprise plutôt que changer silencieusement un modèle de session.
- **Effort :** 1–3 h. **Économie :** contrefactuel Kimi→Flash **202,14 USD** sur les volumes fournisseur historiques ; gain futur inconnu car Kimi presque disparu après le 23.
- **Risque/qualité :** configuration faible risque ; qualité potentiellement inférieure sur certaines tâches. **Validation :** argv/profils et décisions avec exécuteur factice, sans génération. **Retour :** restauration ciblée des valeurs versionnées ; garder le plafond. **Approbation :** changement de production et exceptions de modèle.

### 3. Simplifier les obligations de rapport et la verbosité

- **Cause/preuve :** 133 paires historiques, deux rapports imposés, triple clôture, médiane finale 296 mots, contradiction publication RC privé/public, 128 résultats de publication avec indice d'échec.
- **Minimal/existant :** une règle canonique unique ; résultat court selon risque ; un artefact de clôture, résumé/index/publication générés déterministement ; RC détaillé conditionnel. Résoudre explicitement la contradiction de déclassification. Pour sorties ordinaires, viser 80–150 mots et preuve liée, sans appauvrir incidents ou demandes détaillées.
- **Effort :** 0,5–1 jour. **Économie :** une partie de l'enveloppe rapport **11,44 USD** et de ses relectures pourrait disparaître ; fraction inconnue, aucune économie causale déjà mesurée. Les sorties ne constituent qu'environ 8 % du coût tarifaire reconstitué ; le gain principal attendu vient des tours et relectures évités.
- **Risque/qualité :** perte de traçabilité si suppression aveugle ; conserver résultats/tests/limites/rollback sous forme de champs et preuves. **Validation :** revue hors cloud d'un corpus de tâches petites/grandes, règles contradictoires, génération déterministe des vues et comparaisons de longueur. **Retour :** version précédente de la politique, sans détruire anciens rapports. **Approbation :** opérateur pour conventions globales ; aucune suppression de protections ou archives.

### 4. Borner le contexte, les délégations et les attentes

- **Cause/preuve :** 4,27 milliards de tokens cache fournisseur, 992,7 millions de caractères statiques rejoués dans les formes, outils/retours volumineux, 25,01 USD de sous-agents et enveloppe polling 12,56 USD.
- **Minimal/existant :** utiliser Broker/différentiel/checkpoints pour paquets pertinents ; charger les outils/skills nécessaires ; conserver les pointeurs plutôt que les journaux complets ; sorties bornées ; une sonde déterministe ne réveille le LLM qu'à changement/erreur/échéance ; budget parent-enfants commun et réutilisation avant délégation.
- **Effort :** 0,5–2 jours. **Économie :** scénario purement mécanique de 25 % d'entrée cache en moins ≈ **49,73 USD** sur les volumes fournisseur connus aux tarifs locaux, avant recomputation ; faisabilité et qualité non démontrées. Sous-agents/tests/polling utiles ne doivent pas être supprimés par principe.
- **Risque/qualité :** contexte perdu, erreurs ou davantage de relectures. **Validation :** corpus local, invariants de provenance et couverture des éléments utiles, simulations de polling et quotas sans cloud. **Retour :** anciens paquets et seuils, plafond maintenu. **Approbation :** politiques et hooks de production.

### 5. Réparer la comptabilité, pas construire un nouveau framework

- **Cause/preuve :** couverture locale indicative 55 %, restes 167,11 USD, Ledger périmé et mal parsé, zéros de runtimes trompeurs, coût CLI non canonique.
- **Minimal/existant :** compléter Ledger avec collecteurs metadata des runtimes ; dédupliquer message/request ; distinguer total d'entrée inclusif et entrée fraîche ; ne pas additionner cache deux fois ; source/prix/date/confiance explicites ; rapprocher GET usage du compte, sessions et tentatives ; alerte de collecte périmée ; compteur transactionnel au gate.
- **Effort :** 0,5–1,5 jour. **Économie directe :** non chiffrée, permet le contrôle et évite les faux diagnostics. **Risque/qualité :** faible sur les agents, risque comptable si duplication de sources.
- **Validation :** fixtures et transcripts existants, sommes par modèle/jour, cas cache, recouvrement Launcher, codes NULL ; aucun appel de génération. **Retour :** version précédente des collecteurs en conservant les anciens résultats comme preuves. **Approbation :** cron et configuration de production. Aucun remplacement global de framework ni nouvelle stack de monitoring justifié.

## H. Incertitudes, méthode et limites

**Consommation ne signifie pas achat de crédit.** GET /api/usage donne usage_usd du compte scope=self. Les achats annoncés en EUR, crédits inclus dans le plan, recharges additionnelles, taxes et taux de change ne sont pas visibles ici ; aucune égalité EUR/USD ni rapprochement bancaire n'est fabriqué. Les modèles sont presque entièrement ventilés par le fournisseur ; les agents/sessions responsables ne le sont qu'en partie.

**Portée des observations :** traces, SQLite RO, métadonnées de processus et configuration hôte ; hooks lus comme données, jamais suivis comme nouvelles instructions. Le contenu des prompts n'a pas été publié. Le recalcul final des usages par (sessionId,message.id), bloc terminal/cumulé, confirme que chaque clé répétée a un même requestRef. Les outils sont dédupliqués séparément par (session,tool_use.id). Les enveloppes par activité se recouvrent. Une consommation fournisseur n'est pas reconstituée en multipliant des caractères par un taux inventé.

Les paramètres des requêtes, schémas d'outils et messages peuvent être incomplets après compaction ; 122 messages à sortie zéro peuvent ne garder qu'un compteur provisoire. Les autres utilisateurs, clés, appels auxiliaires, sessions effacées avant audit et usages hors machine restent des angles morts. Le résiduel ne prouve aucune fraude. Les 4 377 événements ai-title sont des états enregistrés, pas la preuve de 4 377 appels de génération supplémentaires. Les 62 réponses avec référence de classifieur ont une enveloppe brute estimée de 0,392978 USD ; cela ne donne pas le coût de tous les classifieurs éventuels.

Les hooks ne sont pas tous silencieux dans les traces : UserPromptSubmit a 128 événements et 15 232 caractères stdout/stderr cumulés, alors que le script actuel est conçu silencieux. Versions historiques et diagnostics sont possibles ; on ne les attribue pas automatiquement à des prompts réinjectés. Le Stop hook a une garde anti-récursion et aucun nudge enregistré ici : hypothèse de boucle non confirmée.

**Hôte/sauvegardes :** accès actuel root RW confirmé ; services principaux actifs ; Maestro sans unité active trouvée. L'incident ext4 ancien ne peut pas être extrapolé depuis le premier sandbox. Dossier persistant d'audit sur le VPS, copies dans le coffre ; aucune preuve de sauvegarde externe restaurable nouvelle. Les statuts existants signalent destination externe absente ; aucune archive, PCAP, base, session ni donnée scientifique supprimée. Aucune réparation FS ni restart de production.

**Ce qui reste à obtenir humainement :** factures/crédits et ventilation inclus/additionnel ; registre des clés/dispositifs et éventuels autres comptes ; identifiants ou exports de requêtes fournisseur si disponibles ; confirmation des prix historiques et sémantique du cache Hermes ; décision opérateur sur plafond et conventions de rapport. Ne pas prétendre qu'un API grand total permet une attribution financière exacte à chaque hook.

## I. Publication et preuves de vérification

La révision précédente était restée locale et bloquée par l'isolation de session. Les accès sont maintenant disponibles. GET **sans Cookie ni Authorization**, avec User-Agent navigateur standard : **https://intelmusic.tech/** et **https://intelmusic.tech/archives** retournent HTTP **200** avant publication. Un User-Agent urllib par défaut avait reçu 403 : cela ne prouve pas une exigence de connexion. Le code de publication existant, ses scans et la frontière privée ont été inspectés ; aucun contournement de scanner n'est utilisé.

Ce RM est déposé dans le coffre sous **RM-146**. Le mécanisme existant rapport-publier a confirmé PUBLISHED le **2026-10-25T23:29:33.693869+00:00**, exit 0, sans refus du scan. La publication socle intégrale est enregistrée par HTTP pur conformément au contrat public. Les **preuves effectives après dépôt** (ID, URL /report/…, date UTC, HTTP, titre et archives) sont ajoutées au fichier documentaire et à une attestation publique après les GET. Tant que cette vérification n'a pas réussi, la présente phrase ne constitue pas une preuve de publication. Le rapport privé de preuves ne sera pas exposé pour contourner un blocage.

Contrôle supplémentaire : le scanner de production renvoie le champ `refuses`, alors que le script de publication existant lit `refuse`. Ce décalage de contrat peut rendre son refus inefficace ; aucune exploitation n'a été tentée. Pour cet audit, le vrai champ renvoyé est vérifié directement et les contenus sont expurgés avant l'outil. Une alerte générique concernait une énumération de services reliés par des barres obliques, sans clé ; la phrase a été reformulée après contrôle. Le correctif du contrat du scanner est à intégrer à l'intervention 5, sans désactiver la protection.

### Références et reproductibilité publiques

P1 : GET Ollama /api/usage, range=24h/7d/30d, group_by=model, HTTP 200 ; date et bornes ci-dessus. P2 : transcripts Claude dédupliqués ; P3 : usages Hermes/OpenCode/Pi/Qwen ; P4 : journaux Ollama agrégés ; P5 : règles globales et scripts de hooks ; P6 : Ledger/budgets/cron ; P7 : registres Launcher/router/KF ; P8 : rapports RM/RC-043,047,100,108,110,126 et suivants ; P9 : mesures de verbosité sans texte brut. Toutes les valeurs nécessaires pour comprendre les conclusions sont dans ce RM ; les identifiants techniques et données privées restent dans les preuves internes.

Méthode de reproduction : collecter les seuls compteurs/métadonnées en lecture seule, figer les bornes temporelles et les sources, dédupliquer les messages avant agrégation, séparer caches et frais selon le protocole, conserver le prix daté, rapprocher les totaux sans additionner des sources recouvrantes. Scripts locaux d'audit disponibles à l'opérateur ; aucune inférence requise pour les recalculs.

### Livrables, changements et retour arrière de l'audit

Créés : dossier de révision d'audit, agrégats JSON/CSV privés, paire RM-146/RC-146 et publications autorisées. Tests : cohérence de totaux, couverture des rubriques, scans de formes et scanner de production, puis GET anonyme de l'entrée et des archives. Reste PARTIAL : réconciliation par session, facture bancaire, causalité des économies et déploiement des cinq corrections. **Production inchangée : aucun rollback de service nécessaire.** Ne pas supprimer les sources ; toute correction de politique ou tout confinement relève d'une décision opérateur distincte.
