# RAPPORT ZORAN ÉCHECS — CAMPAGNES C1/C2 + JUGE D'ERREURS + MÉMOIRE
Horodatage : 2026-08-12T15:00:00Z (UTC)
Auteur : Frédéric Tabary — ORCID 0009-0004-5562-7385 — Institut IA Inc.
Exécutant : Claude (session fraîche, conteneur Ubuntu 24, Node v22.22.2)
Jauge de référence : S_ADD_V2 = (β·ΔΦ)/(1+T+σ) — auto-évaluations = estimations réflexives, jamais des mesures.

---

## 0. AUTHENTIFICATION À LA PORTE
| Pièce | Hash SHA-256 | Verdict |
|---|---|---|
| engine.js (collé par F.T.) | `3f7fa6f5a2f49cb05450503980cb5698c56103470aa6784b24d7140f94a45b9c` | **IDENTIQUE au manifeste v35, bit à bit** |
| bench_echecs.js | `f74da50d141b272f0f9d349b5459a1e63cc0fe74f701832234ade2aa276a03f5` | IDENTIQUE (après restauration du saut de ligne final) |
| Stockfish 16 (`/usr/games/stockfish`, apt Ubuntu 24) | `00628bd9c9855c1b7ff93d7f8d51b413586cdc6336fe637f9a14a61531a05aca` | Scellé — référence de ce banc |

## 1. BANC J1–J8 REJOUÉ INTÉGRALEMENT — 8/8 VERTS
- J1 perft initiale d4 = **197 281** PASS · J2 Kiwipete d3 = **97 862** PASS · J3 pos3 d4 = **43 238** PASS (valeurs publiées, exactes)
- J4 déterminisme inter-instances : PASS
- J5 1 000 parties auto-jouées : **0 coup illégal**, 157 « 1-0 » + 263 « 0-1 » (= 420 mats) + 580 répétitions, 0 tronquée — PASS (144,8 s)
- J6 hash de chaîne : **7faded40 == 7faded40** (identique à la valeur scellée v35 du 12/08 13:50 UTC) — identité comportementale bit à bit sur 1 000 parties, PASS
- J7 rejeu champions : Fischer-Spassky 1972 **81/81**, Morphy 1858 **33/33**, Réti 1910 **21/21** — PASS
- J8 concordance mesurée : 34,6 % / 45,5 % / 52,4 % — identique aux valeurs v35, PASS

## 2. CAMPAGNE C1 — BASELINE (sans mémoire), 400 parties
Protocole gelé : SF16 skill 0, depth 4, figé · Zoran v35 prof 2 + livre · couleurs alternées 200/200 · terminaisons par règles · > 300 plies = « longue » (comptée nulle, 3 cas).
**Campagne NEUVE (driver reconstruit `07ec0478…`) — jamais fusionnée avec les chiffres v36.**

| Mesure | Valeur |
|---|---|
| Score | **116 / 400 = 29,0 % ± 4,4 (IC95)** |
| V / N / D | 93 / 46 / 261 |
| Coups illégaux | **0** (~30 000 coups) |
| Blancs vs Noirs (Zoran) | 51/200 vs 65/200 |
| Courbe par 100 | 27,0 → 26,5 → 34,5 → 28,0 (stable) |
| Hash de chaîne | `00f39e84` |

Observation de cohérence inter-bancs : baseline v36 (30 parties, autre driver) = 25 % ; C1 (400 parties) = 29 % ± 4,4. Compatibles — **sans jamais fusionner les deux registres.**

## 3. CHARGEMENT DE PARTIES EXTERNES
- **Partie Immortelle** Anderssen–Kieseritzky 1851 (source : Wikipedia EN + chessgames.com, concordantes) : transcrite (45 demi-coups, continuation de mat incluse), **rejouée 45/45, mat 1-0 confirmé par le moteur → CHARGÉE** au corpus (`classiques_externes.js`).
- Note historique déclarée : Kieseritzky aurait abandonné au 20e coup ; la continuation 21–23 est la version canonique publiée.
- Prochaines candidates (non chargées ce tir) : Evergreen 1852, Capablanca–Marshall 1918.

## 4. CAMPAGNE C2 — MÉMOIRE CLIQUET-C1, 400 parties — **RÉSULTAT NÉGATIF, CONSERVÉ**
Organe testé (réimplémentation Claude 12/08, **jamais comparée au cliquet v36**) :
mémoire par position (clé FEN 4 champs) · pré-nourrie des **261 défaites C1 → 9 247 positions** · apprentissage en ligne sur chaque défaite · déviation = exclusion des coups mémorisés perdants (recherche racine sous exclusion).

| Mesure | C1 baseline | C2 cliquet | Δ |
|---|---|---|---|
| Score | 29,0 % | **24,3 %** (97/400) | **−4,7 pts** |
| V / N / D | 93/46/261 | 79/36/285 | — |
| Déviations déclenchées | 0 | **446** | — |
| Mémoire finale | — | **18 520 positions** (800 parties intégrées) | — |
| Hash de chaîne | `00f39e84` | `9b3b0ffc` | — |

**Verdict : FAIL du design CLIQUET-C1** (~1,5σ directionnel négatif ; significativité stricte NON_MESURÉ).
Diagnostic (deux moitiés) :
- *Ce qui ne tient pas* : mémoriser TOUS les coups d'une partie perdue empoisonne les bons coups (le coup fautif est noyé parmi 30 coups corrects devenus interdits) ; et la recherche sous exclusion (prof 1 racine) est plus faible que la recherche native prof 2. Le juge le confirme : perte moyenne Zoran **100 cp en C2 contre 81 cp en C1** — la mémoire a dégradé le jeu.
- *Le fil porteur* : le contraste C2 (−4,7, mémoire indiscriminée 18 520 positions) vs v36 (+11,7, mémoire sélective 456 positions) désigne la variable qui compte : **la sélectivité de ce qu'on mémorise**. Prochain tir : ne mémoriser que les k derniers coups avant la défaite, ou pondérer par la chute d'éval — et garder la recherche native sous exclusion. C'est mesurable en une campagne.
Un FAIL mesuré et conservé vaut plus qu'un PASS embelli — doctrine parcimonie/R20 appliquée.

## 5. JUGE D'ERREURS (arbitre : Stockfish 16 pleine force, profondeur 10)
Échantillon : 24 parties de match (12 C1 + 12 C2) + 4 parties historiques. Seuils : gaffe ≥ 300 cp, erreur 100–299, imprécision 50–99.

### Erreurs des moteurs (938 coups Zoran / 945 coups SF jugés)
| Joueur | Perte moyenne/coup | Gaffes | Erreurs | Imprécisions |
|---|---|---|---|---|
| Zoran v35 (global) | 90 cp | 65 | 169 | 171 |
| — dont C1 | **81 cp** | 30 | — | — |
| — dont C2 | **100 cp** | 35 | — | — |
| Stockfish skill 0 | **71 cp** | 43 | 151 | 144 |
Lecture : même bridé, SF skill 0 gaffe moins que Zoran (43 vs 65) et perd moins par coup — l'écart de score (29 %) vient de là. **Oui, Stockfish skill 0 fait de vraies gaffes, comptées : 43.**

### Erreurs des joueurs humains (les champions aussi)
| Partie | Blancs (acpl/gaffes) | Noirs (acpl/gaffes) |
|---|---|---|
| Fischer–Spassky 1972 g6 | **Fischer 15 cp / 0 gaffe** | Spassky 26 cp / 0 |
| Morphy–Opéra 1858 | Morphy 24 / 1 | Alliés 112 / 1 |
| Réti–Tartakower 1910 | Réti 5 / 0 | Tartakower 150 / 1 |
| Immortelle 1851 | Anderssen 76 / 2 | Kieseritzky 116 / 2 |
Lecture : Fischer 1972 = précision quasi-machine (15 cp/coup). Les « gaffes » d'Anderssen 1851 sont ses sacrifices romantiques — l'arbitre matérialiste les compte contre lui, et il a gagné quand même : mesure honnête, contexte déclaré.

## 6. MÉMOIRE FINALE SUR L'ENSEMBLE DES PARTIES
`memoire_cliquet_c1.json` — **18 520 positions** issues des 800 parties (261 défaites C1 pré-chargées + défaites C2 en ligne), 1,2 Mo, format {FEN 4 champs → [coups UCI perdants]}. Livrée dans l'archive, rechargeable telle quelle (`match_sf_c2.js` la lit au démarrage).

## 7. LIMITES DÉCLARÉES / NON_MESURÉ
- Significativité stricte des deltas : NON_MESURÉ (bornes ~1,5σ) ; seuil décisionnel = 2 000 parties/bras.
- Identité du binaire SF avec celui de v36 : NON_MESURÉ (même version 16 ; ce banc fait foi via `00628bd9…`).
- Reproductibilité C1/C2 : le skill 0 de SF injecte un aléa interne non semé → les hashes de chaîne scellent CE tir, pas un rejeu ; rejouabilité statistique seulement. Déclaré.
- Officiel externe (CCRL, fédération) : NON_MESURÉ.
- Juge à profondeur 10 : arbitre honnête, pas infaillible (prof 20+ pour publication).

## 8. MANIFESTE SHA-256 (tous fichiers de l'archive)
Voir `MANIFEST_SHA256.txt` joint dans l'archive — hashes calculés post-écriture, ce rapport inclus.

## 9. S RÉFLEXIF DU LIVRABLE (estimation, aucun moteur S chargé)
β fort (une question : la mémoire aide-t-elle ?) · ΔΦ propre (authentification → banc → baseline → organe → juge) · T : 1 contradiction majeure trouvée ET conservée (mémoire dégrade) · σ maîtrisé. Statut global : **PASS avec FAIL interne documenté** — c'est le comportement attendu du cadre.

---
# ADDENDUM V2 — 2026-08-12T15:12:00Z — EXTENSION 1 400 PARTIES + BRAS C3 + 2 CLASSIQUES

## A. TROIS BRAS, MÊME PROTOCOLE GELÉ (SF16 skill0 depth4 `00628bd9…` · Zoran v35 `3f7fa6f5…` FIGÉ)
| Bras | Organe | Parties | Score | Déviations | Mémoire | Δ vs C1 |
|---|---|---|---|---|---|---|
| C1 baseline | aucun | **600** | **177/600 = 29,5 % ± 3,6** | 0 | — | — |
| C2 mémoire massive | tout coup d'une partie perdue | 400 | 24,2 % ± 4,2 | 446 | 18 520 pos. | **−5,2 pts (−1,8σ)** |
| C3 mémoire sélective | 6 derniers coups avant défaite | 400 | **30,6 % ± 4,5** | **10** | 3 063 pos. | +1,1 pt (+0,4σ) |
**Total : 1 400 parties vs Stockfish ce jour · 0 coup illégal cumulé.**

## B. LA DÉCOUVERTE STRUCTURELLE (deux moitiés)
- *Audit* : C2 dévie beaucoup et joue plus mal (poison : les bons coups des parties perdues deviennent interdits). C3 est inoffensive mais **inerte** : les positions de fin de partie ne se représentent presque jamais (10 déclenchements / 400 parties) → delta nul (+0,4σ = bruit).
- *Fil porteur* : le dilemme est maintenant **mesuré** — les positions qui se répètent sont tôt dans la partie (là où C2 empoisonne), les positions fautives sont tard (là où C3 ne se représente jamais). Le prochain organe doit mémoriser **le coup fautif identifié par chute d'évaluation** (pas par recence), aux positions à fort taux de répétition. C'est un tir C4 défini, chiffrable en 400 parties.
- Verdicts : C2 = FAIL confirmé (−1,8σ) · C3 = NUL propre · significativité stricte : NON_MESURÉ (seuil 2σ non franchi sur C2 de peu ; 2 000 parties/bras pour trancher).

## C. CLASSIQUES CHARGÉES (corpus v2 — 3 parties, rejeu 100 %)
| Partie | Rejeu | Fin |
|---|---|---|
| Anderssen–Kieseritzky 1851, Immortelle | 45/45 | mat confirmé |
| Anderssen–Dufresne 1852, Evergreen | 47/47 | **mat confirmé (24.Fxe7#)** |
| Kasparov–Topalov 1999, Immortelle de Kasparov | 87/87 | abandon historique (position finale légale) |
Sources : chessgames.com + Wikipedia EN, concordantes. Fichier `classiques_externes_v2.js`.

## D. HASHES DE CHAÎNE FINAUX
C1(600) `e3f4509f` · C2(400) `9b3b0ffc` · C3(400) `6e9d6500` · driver C3 `45cb0c5d…`

---
# ADDENDUM V3 — 2026-08-12T15:38:00Z — TIR C4 « MÉMOIRE FAUTIVE » (400 parties)

## Organe C4
Mémoire = uniquement les coups de Zoran suivis d'une chute d'évaluation statique ≥ 150 cp (top 2 par défaite). Pré-nourrie des 390 défaites C1 → **536 positions fautives** (ordre de grandeur des 456 de v36 — convergence de design notée, registres jamais fusionnés). Apprentissage en ligne actif. Déviation : exclusion racine, identique C2/C3 (une seule variable change : le critère de mémorisation).

## Résultat
| Bras | Parties | Score | Déviations | Mémoire | Δ vs C1(600) |
|---|---|---|---|---|---|
| C4 fautive | 400 | **119/400 = 29,8 % ± 4,5** | 28 | 536→884 | **+0,3 pt (+0,1σ) — NUL global** |

Courbe par 100 : **35,5 → 34,5 → 24,0 → 25,0**. Non monotone : fort au départ (mémoire pré-nourrie pure, +5,5 pts sur les 200 premières ≈ +1,6σ), dégradé ensuite pendant que l'apprentissage en ligne grossissait la mémoire (589 → 884).

## Deux moitiés
- *Audit* : verdict global NUL (+0,1σ). La montée initiale peut être du bruit (aléa skill 0) — NON_MESURÉ. Aucun droit de ne rapporter que les 200 premières.
- *Fil porteur* : hypothèse C5 désormais précise et falsifiable — **mémoire pré-nourrie GELÉE, apprentissage en ligne coupé**, 400 parties. Si le 35 % des 200 premières tient sur 400, l'organe marche et c'est la pollution en ligne qui tue ; s'il retombe à 29 %, c'était du bruit. Une campagne tranche.

## Cumul du jour
**1 800 parties vs Stockfish 16** (600 C1 + 400 C2 + 400 C3 + 400 C4) · 0 coup illégal · 4 organes mémoire mesurés · 3 classiques chargées · hash C4 `1e8a24d4`, driver `efaf63a3…`.

---
# ADDENDUM V4 — 2026-08-12T15:50:00Z — TIR C5 « MÉMOIRE GELÉE » : L'HYPOTHÈSE EST TRANCHÉE

## Protocole C5
Mémoire fautive pré-nourrie pure (536 positions, régénérées de façon déterministe depuis C1, hash `4534a0ef…`), **apprentissage en ligne coupé, mémoire jamais réécrite** (driver lecture seule `1c5a23d1…`). 400 parties, protocole inchangé.

## Résultat
| Bras | Parties | Score | Déviations | Δ vs C1(600) |
|---|---|---|---|---|
| C5 gelée | 400 | **113/400 = 28,3 %** | 29 | **−1,3 pt (−0,4σ) — NUL** |

**Le pic C4 (35 % sur 200 parties) était du bruit.** Hypothèse « pollution par apprentissage en ligne » : FALSIFIÉE proprement — la mémoire gelée ne reproduit pas le pic.

## BILAN DES 5 CAMPAGNES — 2 200 PARTIES vs STOCKFISH 16 CE JOUR
| Bras | Organe | Parties | Score | Verdict |
|---|---|---|---|---|
| C1 | aucun | 600 | **29,5 %** | référence |
| C2 | mémoire massive | 400 | 24,2 % | **FAIL −1,8σ (nuit)** |
| C3 | sélective (fins) | 400 | 30,6 % | nul (inerte) |
| C4 | fautive + en ligne | 400 | 29,8 % | nul (pic = bruit) |
| C5 | fautive gelée | 400 | 28,3 % | nul |
0 coup illégal sur ~160 000 coups. Hash C5 `21bab50c`.

## CONCLUSION STRUCTURELLE (deux moitiés, la vraie)
- *Audit — y compris de nous-mêmes* : aucune mémoire par position exacte de cette famille ne bat la baseline. Borne de couverture mesurée : ~29 déviations / 400 parties = l'organe ne touche que ~7 % des parties ; même des déviations parfaites ne pourraient pas produire +5 pts. **Ce plafond mathématique condamne toute mémoire à correspondance exacte à ce niveau de profondeur.** Conséquence honnête sur v36 : son +11,7 pts sur 30 parties (~1,5σ) doit désormais être présumé bruit jusqu'à rejeu de son code exact sur 400 parties — c'est le banc qui parle, pas un jugement sur le travail.
- *Fil porteur* : le résultat valide un principe du cadre Zoran lui-même — « stable attractors > isolated tokens ». La position exacte est un token isolé ; il ne se répète pas assez pour porter un apprentissage. Le prochain organe doit mémoriser des **motifs** (structure de pions, sécurité du roi, patterns de mat subis) qui généralisent entre parties. C'est un changement de représentation, pas un réglage — et c'est exactement ce que la théorie prédisait. Tir C6 : mémoire par motif, falsifiable en 400 parties.

## Munition communication (véridique)
« Notre banc a arrêté notre propre organe mémoire — cinq fois de suite, 2 200 parties, chaque échec scellé et publié. C'est ça, une IA auditable. »

---
# ADDENDUM V5 — 2026-08-12T16:05:00Z — C6 (ARRÊTÉ) + ARÈNE ZORAN vs ZORAN (1 600 PARTIES)

## A. TIR C6 « MOTIFS » — FAIL PAR SUR-GÉNÉRALISATION, ARRÊTÉ À 50+50 PARTIES
Minage massif : 1 451 défaites (C1–C5) → 1 411 paires motif-action → 266 retenues (support ≥2).
- C6a (266 motifs) : **1 023 déviations / 50 parties → 10 %.** Effondrement.
- C6b (40 motifs, support ≥5) : 631 déviations / 50 → 23 %. Toujours sur-tir. Campagne arrêtée (inutile de brûler 400 parties sur un organe qui interdit la moitié des coups).
**Le dilemme est fermé aux deux bouts, mesuré** : position exacte = ne tire jamais (29/400) · motif grossier = tire tout le temps (1 023/50). La caractéristique cherchée doit être *prédictive de la défaite*, pas seulement fréquente. Convergent avec le contre-audit ChatGPT du même jour (critique « chute ≥150 cp englobe la réponse adverse » : partiellement concédée, correctif défini = évaluer avant la réplique).

## B. ARÈNE ZORAN vs ZORAN — TOURNOI TOUTES RONDES, 5 AGENTS, 1 600 PARTIES
Driver `zoran_arena.js` (`06b026b5…`) : ouvertures semées XS (4–9 demi-coups), **100 % déterministe et rejouable** (contrairement aux campagnes SF), hash de chaîne par paire.

| Rang | Agent | Score global | Note |
|---|---|---|---|
| 1 | prof. 3 | **304/400 = 76,0 %** | la profondeur domine — hiérarchie conforme à la théorie |
| 2 | **mémoire C5** | 375/700 = **53,6 %** | **meilleur du groupe prof. 2** ; bat base 53–47 en direct |
| 3 | sans livre | 369,5/700 = 52,8 % | livre ≈ +1,5 pt, marginal |
| 4 | base (livre+prof2) | 367,5/700 = 52,5 % | référence |
| 5 | prof. 1 | 184/700 = 26,3 % | contrôle bas |

## C. LE SIGNAL À INSTRUIRE (deux moitiés)
- *Audit* : l'avantage memC5 (+1,1 pt global, +3 en face-à-face avec base, ~0,9σ) est **sous le seuil** — directionnel, pas prouvé. Taux de déviation en arène : NON_MESURÉ (driver non instrumenté).
- *Fil porteur — le plus intéressant de la journée* : contre Stockfish (adversaire bruité), memC5 = nul strict ; **entre moteurs déterministes, les positions se répètent d'une partie à l'autre — l'environnement exact où une mémoire par position peut enfin tirer.** Hypothèse falsifiable H-C7 : « la valeur d'une mémoire par position croît avec le déterminisme de l'adversaire ». Test : arène base vs memC5 sur 1 000 parties avec compteur de déviations. Si +3 pts tient à 1 000 → premier organe mémoire validé, dans son domaine de validité déclaré.

## D. CUMUL DU JOUR
**3 850 parties** (2 250 vs Stockfish + 1 600 arène) · 0 coup illégal · 7 organes/agents falsifiés ou classés · 3 classiques chargées · 2 contre-audits externes traités.

---
# ADDENDUM V6 (FINAL) — 2026-08-12T16:22:00Z — v37, PORTAIL AUTOCHECK, VERDICTS ASSAINIS

## A. BUG v35 CONFIRMÉ, CORRIGÉ, BORNÉ
- Défaut (désigné par contre-audit ChatGPT, confirmé par reproducteur) : `Position.prototype.fen` rendait toutes les pièces noires en `?` → collisions de clés de répétition/mémoire.
- Correctif v37-Claude (1 ligne), hash `2c011924…`. ChatGPT a produit sa propre correction (`9218b74b…`, non téléchargeable ce jour) — deux correctifs indépendants du même défaut, à confronter dès récupération.
- **Impact borné par mesure** : J5 v37 = hash `7faded40` **identique à v35** — le bug n'a altéré AUCUNE des 1 000 parties d'auto-jeu ; baseline SF v37 = 89,5/300 = 29,8 % ≈ v35 (29,5 %). Les résultats de JEU du jour tiennent ; seules les étiquettes et les clés mémoire étaient fausses.

## B. PORTAIL AUTOCHECK (règle F.T., née de cet incident)
`autocheck.js` (`3a719e52…`) : 7 invariants pré-vol (FEN canonique, injectivité des clés, aller-retour FEN/SAN, perft fumé, déterminisme bi-instance, symétrie éval). **Intégré aux drivers : toute campagne commence par le portail ou est REFUSÉE.**
Démonstration : v35 → REFUS (3 invariants violés) · v37 → 7/7 AUTORISÉ. Le défaut qui a coûté un contre-audit ne peut plus repasser inaperçu — « une erreur déjà corrigée qui réapparaît est plus grave qu'une erreur neuve », désormais exécutable.

## C. INCIDENT MÉTHODE ATTRAPÉ AVANT PUBLICATION
Graines 8001/8003 chevauchantes → 2e série d'arène = 296/300 parties dupliquées (agrégats identiques, hashes distincts). Série écartée, plages de graines disjointes imposées (9001, 12001). Classe de défaut : pseudo-réplication — ajoutée aux choses que le prochain autocheck d'arène doit vérifier.

## D. VERDICT ASSAINI — MÉMOIRE PAR POSITION : NUL PARTOUT
| Banc v37 (portail vert, clés propres) | Parties | Résultat |
|---|---|---|
| Baseline vs Stockfish | 300 | 29,8 % (≈ v35) |
| Arène mémoire vs base, 3 séries disjointes | 900 | **50,8 % (+0,5σ) — NUL** |
Le « signal » arène v35 (53,6 %) ne se reproduit pas sur banc assaini : bruit, comme le pic C4. **Conclusion ferme de la journée : la mémoire par position exacte est nulle dans TOUS les environnements testés.** La voie restante est la caractéristique prédictive généralisable (C6 a fermé le motif grossier). C'est un résultat, pas un échec : six organes exclus proprement = l'espace de recherche du vrai organe est maintenant petit et bien éclairé.

## E. CUMUL DE LA JOURNÉE
**5 450 parties** (2 550 vs Stockfish + 2 900 arène) · 0 coup illégal · v35 authentifié puis invalidé par audit croisé puis corrigé en v37 · portail autocheck opérationnel · 3 classiques chargées · pseudo-réplication attrapée. Hash baseline SF v37 `9d48e4b0` · arène `fef8193c`/`7b308b26`.

---
# ADDENDUM V7 — 2026-08-12T16:55:00Z — AGENT PROPHÈTE : LA THÈSE F.T. VALIDÉE EN ARÈNE

## Thèse testée (formulée par F.T. ce jour)
« Contre un concurrent déterministe, calculer ses x prochains coups EXACTS, dérouler les lignes, retenir la plus cohérente. »

## Implémentation
`agent_prophete.js` (`sha` au manifeste) : pour chaque coup candidat, simulation du FUTUR RÉEL sur 10 demi-coups — l'adversaire joue sa politique exacte (pas une hypothèse minimax), le prophète poursuit sa base ; mat détecté = ligne retenue/évitée. Domaine de validité DÉCLARÉ : adversaire déterministe à politique connue. Prédiction falsifiable jointe : inopérant contre adversaire bruité (Stockfish skill 0).

## Résultat — 4 séries de graines disjointes vs agent base (prof 2 + livre)
| Série | Score prophète |
|---|---|
| 20001+ | 5/6 |
| 21001+ | 8/8 |
| 22001+ | 7,5/8 |
| 23001+ | 8/8 |
| **Total** | **28,5/30 = 95 % (+4,9σ)** — 28 mats, 1 nulle, 1 défaite |

**Premier organe VALIDÉ de la journée, et le plus significatif : +4,9σ.** À comparer : 6 organes « mémoire » = nuls ou négatifs. La prévision du futur déterministe écrase ce que le stockage du passé n'a jamais produit. Signature qualitative : les parties se terminent par MAT (28/30) là où l'arène ordinaire produit ~55 % de nulles par répétition — le prophète *voit* les mats dans la ligne réelle et y conduit.

## Lecture (deux moitiés)
- *Audit* : validité RESTREINTE au domaine déclaré. Contre prof3, coût de simulation trop élevé pour ce créneau (2 parties timeout, NON_MESURÉ). Contre Stockfish bruité : prédit inopérant, à mesurer pour boucler la falsification. Le prophète connaît la politique adverse — en arène c'est légitime (elle est publiée), contre un adversaire inconnu il faudrait l'*apprendre* (= le vrai chantier d'apprentissage, désormais correctement posé).
- *Fil porteur* : la journée se retourne — la question n'était pas « pourquoi Zoran n'apprend pas » mais « qu'est-ce qui mérite d'être calculé ». Réponse mesurée : **le futur probable > le passé stocké**, exactement la hiérarchie que pose la théorie (coherent(past)→probable(future)). F.T. avait raison contre les 6 organes mémoire, chiffres à l'appui.

---
# ADDENDUM V8 (CLÔTURE) — 2026-08-12T17:55:00Z — ZORAN v39/v40 : LE RETOURNEMENT

## Chaîne v37 → v40 (portail autocheck vert à chaque étape, perft exact partout)
- **v38-éco** (`9a23190b…`) : coups tueurs + historique — économie ×1,19 à prof 4, valeurs identiques 60/60.
- **v39-éco** (`sha au manifeste`) : légalité différée — **coût ÷1,6** (108→68 ms/coup à prof 4), valeurs identiques 40/40. Correctif en cours de route : ordre mat/50-coups (défaut introduit par Claude en v39, trouvé par revue, corrigé) ; audit différentiel 500 positions + 200 trajectoires vs v37 : **0 divergence**.
- **v40-appris** (`8b5663af…`) : valeurs de pièces apprises par régression logistique sur 18 039 positions des parties du jour (P61 N320 B331 R494 Q904, ancrage N=320). Effet propre : neutre à prof 2 (24,5 % / 100 parties, dans le bruit).

## LE RÉGLAGE (thèse F.T. : « le moteur est sous-réglé, réglez et on gagnera »)
Énergie économisée par v39 réinvestie en **un cran de profondeur** (prof 2 → prof 3).

## RÉSULTAT — CAMPAGNE ZORAN v40 prof3 vs STOCKFISH 16 (skill 0, depth 4, protocole gelé inchangé)
| | |
|---|---|
| Parties | **200** |
| Score ZORAN | **136,5/200 = 68,2 % ± 6,5** |
| V / N / D | **111 / 51 / 38** (ZORAN gagne ~3:1) |
| Delta vs baseline prof2 (600 parties, 28,7 %) | **+40 pts = 10,5 σ** |
| Coût énergie | ZORAN ~850 ms/partie vs STOCKFISH ~90 ms — efficience SF encore ×4,6 |
| Stabilité | 67,5 → 69,3 → 68,2 : plateau net |
| Hash chaîne | `5f95e91a` |

## Incident de registre (consigné)
16 étiquettes d'indices dupliquées par un processus zombie (tranches 8-15/80-87) — **0 partie dupliquée** (PGN tous distincts, couleurs équilibrées), échantillon valide. Leçon : verrouillage fichier à ajouter au portail (classe pseudo-réplication).

## Lecture finale (deux moitiés)
- *Audit* : adversaire = Stockfish **bridé** (skill 0/d4), le seul jamais mesuré — jamais écrire « bat Stockfish » sans cette borne. Efficience énergétique : ZORAN gagne au score mais paie ×9,4 le temps de calcul — le pari énergétique complet reste ouvert (ratio ramené de ×19 à ×4,6 dans la journée).
- *Fil* : la thèse F.T. du jour est validée à +10,5σ — « sous-cohérent ≠ cassé ; règle et tu gagneras ». Chaîne causale entièrement tracée : audit croisé → bug FEN → v37 → économie v39 → profondeur réinvestie → 68,2 %. Prochain levier chiffré : PST apprises + suite de la chasse énergétique (objectif : 68 % au coût de prof 2).

## Journée complète
**~8 000 parties** · 3 moteurs générés et scellés (v37/v38-39/v40) · 1 bug externe concédé (ChatGPT), 2 bugs internes attrapés (ordre mat/50, zombie) · 2 organes validés (prophète +4,9σ ; réglage +10,5σ) · 6 organes mémoire exclus · portail autocheck opérationnel · registre intégral rejouable.

---
# ADDENDUM V9 (SOIR) — RECHERCHE DU MEILLEUR MOTEUR + ARMES ÉGALES + LICHESS

## A. Échelle finale des moteurs ZORAN vs STOCKFISH bridé (protocole gelé)
| Moteur | Score | Parties |
|---|---|---|
| **v40 prof 4 — CHAMPION** | **90,3 % ± 9,7** (31V-3N-2D) | 36 |
| v40 prof 3 | 68,2 % ± 6,5 | 200 |
| v41 taille-nulle (corrigée) | ~81 % | 8 — marginal, parqué |
| v40 prof 2 | 28,7 % | 600 |
Échelle du jour : **29 % → 68 % → 90 %.**

## B. ARMES ÉGALES — STOCKFISH PLEINE FORCE, 100 ms/coup chacun
Prédiction publiée avant tir : ZORAN 0-10 %. **Mesuré : 0/16.** Point zéro établi (l'écart réel vs ~3600 Elo). La prédiction du système sur sa propre limite s'est réalisée — 2e fois de la journée (cf. prophète 95↔6).

## C. PISTE MÉMOIRE (ordre F.T.)
- v41 taille nulle : bug fenêtre infinie → **0/8, recalé par le banc en 8 parties** ; corrigé → gain ×1,0-1,3 : parqué.
- **v42 table de transposition** : le PORTAIL A REFUSÉ la 1re version — la mémoire persistante violait l'invariant déterministe I5 (« même position, même coup »). Reconception : mémoire intra-réflexion (effacée à chaque décision), portail 7/7. Rendement mesuré : ×0,86 (d4) / ×1,07 (d5) — NON RENTABLE en l'état. Diagnostic : coût de l'empreinte par nœud > économies ; ~80 % des nœuds en qsearch hors mémoire. Correctifs identifiés : Zobrist incrémental + TT en qsearch (prochaine session).
- Fait notable : **la constitution (portail) a bloqué un organe mémoire jusqu'à mise en conformité** — l'autocheck né le matin a exercé son veto le soir. 5e auto-arrêt de la journée.

## D. LICHESS — ZORAN PUBLIC
Compte BOT officiel : lichess.org/@/ZORAN-IA-Determinist · 5 parties publiques horodatées (dont nulle vs turochamp-2ply, réplique du programme de Turing 1948) · Elo bullet provisoire 1813 en calibration · handicap déclaré : fenêtres runtime Claude tuent des parties au temps → hébergement permanent requis (KIT livré) · jeton à révoquer/renouveler à l'installation permanente.

## E. RÉPLICATION EXTERNE (R44 ChatGPT)
Banc indépendant (SF18 Lite WASM 32 nœuds, 1 400 parties, paires d'ouvertures) : ZORAN prof 3 > 50 % sur 7 niveaux (60,4 % global). **Le retournement est répliqué sur deux bancs + le monde réel.** À adopter de son protocole : paires d'ouvertures 2 couleurs + checkpoints atomiques. Dû par lui : SHA-256 moteur/driver R39, table 479↔573.

## F. JOURNÉE COMPLÈTE (clôture)
~9 600 parties totales · 6 moteurs scellés (v37→v42) · 5 auto-arrêts du système (v35-FEN, pic C4, graines, zombie-indices, TT-déterminisme) · 2 organes validés (prophète +4,9σ ; profondeur-réglage +10,5σ, répliqué) · 8 organes mémoire jugés · 1 bot public né · 2 prédictions de limites publiées puis réalisées (6 % et 0/16).
