Skip to content

Fix(gametheory): fournee de consolidation du contre-audit GT — 8 PRs en 1 (cherry-pick, #24280) - #24354

Closed
jsboige wants to merge 10 commits into
mainfrom
fix/gt-contre-audit-fournee-2026-11-03
Closed

jsboige wants to merge 10 commits into
mainfrom
fix/gt-contre-audit-fournee-2026-11-03

Conversation

@jsboige

@jsboige jsboige commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA-2 — prev: LIGHT/ledger #23555

See #24280 — fournée de consolidation du contre-audit GameTheory.

Concern #24280 : une PR plus fine que ses commentaires est « inacceptable » — les corrections
de la même classe partent en une fournée (chaque PR coûte une review, un dossier, un gate
et une chaîne de merge). Cette PR réunit en une seule les huit PRs de contre-audit
GameTheory ci-dessous, par cherry-pick des commits existants : rien n'est réécrit, le
travail est préservé. Les huit PRs d'origine se ferment avec un renvoi d'une ligne vers
cette fournée.

Les huit corrections (cherry-pick, aucun commit réécrit)

PR d'origine Carnet Section Défaut corrigé Témoin (valeur après)
#23995 GT-06 EvolutionTrust navigation de tête lien « précédent » → 05-ZeroSum-Minimax (asymétrie 05c/06) 05c-KKT-Dualite-Lagrangienne
#24176 GT-16b AMD commentaire code + Refs 16 × 16 = 256 candidats ; Conitzer & Sandholm 2002 16 × 256 = 4096 candidats ; Conitzer & Sandholm 2003
#24190 GT-16g Populations §0 intro référence au carnet 16d (fantôme) 16/16b/16c — le 16d retiré
#24196 GT-16h Cooperation-LLM dilemme + Refs 2R > T + S (8 > 5) ; refs 16f/16d fantômes 2R > T + S (6 > 5) ; Kuhn-Munkres, 16b/16c
#24202 GT-16i Appariage-Stable intro (Nobel) Gibbard–Satterthwaite renvoyait au §5 §6
#24241 GT-18c Humour-Banc lectures LLM, cellules 43/49/50 prose P=0,294 / F1=0,435 / 12 faux positifs non alignée P=0,312 / F1=0,455 / 11 faux positifs (aligné à cell[42])
#24204 GT-16j Screening-Loyer lecture coût + synthèse coût d'information « croît de façon convexe » « croît de façon concave »
#24226 GT-18b Casser-la-Composition chapeau (Références) réf. fabriquée Hedges (2015), The composition of games Ghani, Hedges, Winschel, Zahn (2018), Compositional Game Theory (LICS '18, arXiv:1603.04641)

Portée — les chemins modifiés (markdown en majorité, deux cellules de code source sur 16b/16h + registre twin GT-06) :

  • MyIA.AI.Notebooks/GameTheory/GameTheory-06-EvolutionTrust-Python.ipynb
  • MyIA.AI.Notebooks/GameTheory/GameTheory-16b-Automated-Mechanism-Design-Python.ipynb
  • MyIA.AI.Notebooks/GameTheory/GameTheory-16g-Populations-Othman-Sandholm-Python.ipynb
  • MyIA.AI.Notebooks/GameTheory/GameTheory-16h-Cooperation-LLM-Python.ipynb
  • MyIA.AI.Notebooks/GameTheory/GameTheory-16i-Appariage-Stable-Gale-Shapley-Python.ipynb
  • MyIA.AI.Notebooks/GameTheory/GameTheory-16j-Screening-Loyer-Information-Python.ipynb
  • MyIA.AI.Notebooks/GameTheory/GameTheory-18b-Casser-la-Composition-Python.ipynb
  • MyIA.AI.Notebooks/GameTheory/GameTheory-18c-Humour-Banc-Python.ipynb
  • scripts/notebook_tools/twin_pairs.d/gametheory-6-evolutiontrust/0055-2026-11-02-myia-po-2024-CoursIA-2.yaml
  • scripts/notebook_tools/twin_pairs.d/gametheory-6-evolutiontrust/0056-2026-11-03-myia-po-2024-CoursIA-2.yaml

Les commits repris sont pour l'essentiel markdown seul. Deux membres touchent du
source de cellule de code, sans changer de sémantique exécutable :

  • GT-16b : un commentaire de code (le re-dérivé 256 → 4096 candidats) ;
  • GT-16h : la chaîne d'une instruction print(...) et sa sortie committée
    (2R > T + S : (8 > 5) → (6 > 5)), mise à jour en lockstep lors de la
    ré-exécution du carnet.

L'exception C.2 « modifs uniquement markdown » s'applique aux membres markdown ; pour
GT-16h la ré-exécution est due et a été faite (la sortie suit la source). Les
execution_count et les sorties des autres carnets sont bit pour bit intacts. Le
registre twin GT-06 est re-attesté en dernier sur le carnet 06 (attestation 0056 ;
le nav fix change le blob attesté).

Réserves déjà posées sur des membres de la fournée — reportées avec leur réponse

#24176 (GT-16b) — review Hermes : LGTM (vérifié)

La review a vérifié firsthand le re-dérivé (256 candidats) et l'alignement
Conitzer–Sandholm 2002, zéro output/ec/meta touché. Verdict LGTM — la réserve n'est
pas ouverte : elle est la vérification du membre. Reportée ici pour que la fournée porte
l'attestation.

#24241 (GT-18c) — review NanoClaw : LGTM (vérifié) + deux points, répondus

La review (LGTM : les trois valeurs réécrites = exactement la sortie committée cell[42],
arithmétique recomposée, diff confiné à des cellules markdown) a signalé deux points :

  1. « la cause de la dérive reste en place » — le check prose↔sortie existe déjà et a
    détecté cette dérive (check_markdown_claims_output.py : 21 findings en base → 17 en
    tête ; les 4 retirés = les valeurs périmées). Les 17 résiduels sont des faux positifs
    caractérisés (fenêtre de 3 cellules, nombre extrait d'un identifiant de modèle, ratio non
    dérivable). Le passage consultatif → bloquant est une décision de gate CI, portée à
    l'issue de suivi check prose↔sortie : de consultatif à bloquant — traiter d'abord les 3 familles de faux positifs #24289 (les trois familles de faux positifs y sont caractérisées).
    L'artefact de run figé est écarté : il fabriquait une attestation non reproductible
    (prédiction LLM non déterministe).
  2. « les passes 2 à 4 du body ne sont pas dans le diff » — reconnu : elles portent sur le
    carnet, pas sur le diff, par nature ; le diff reste confiné aux cellules markdown, aucune
    sortie touchée.

Le verdict CIRCULARITE_GROSSIERE_ECARTEE du carnet reste lisible tel quel : la correction
remet le chiffre en face de sa mesure, elle ne renverse pas la conclusion.

Méthode de consolidation

Branche fix/gt-contre-audit-fournee-2026-11-03 depuis main, cherry-pick des commits
existants
de chaque PR d'origine (les merge commits sont sautés, seuls les commits de
contenu sont repris). Un conflit de navigation sur GT-06 (la ligne a été réordonnée en
parallèle sur main) est résolu en gardant la structure courante de main et en
n'appliquant que l'intention du commit (le slot « précédent » 05 → 05c).

Les huit PRs d'origine se ferment avec un renvoi d'une ligne vers cette fournée :
#23995 #24176 #24190 #24196 #24202 #24204 #24226 #24241.


🤖 Generated with Claude Code

jsboige and others added 9 commits November 3, 2026 03:30
…métrie 05c/06)

Le contre-audit de fond de la série GameTheory (mission c2746) a relevé une
incohérence de navigation dans GameTheory-06-EvolutionTrust : la barre de
navigation (cellule 0) et le pied de page (cellule 67) indiquaient comme
carnet précédent 05-ZeroSum-Minimax, alors que le carnet 05c-KKT-Dualite
existe sur main et affirme lui-même "suivant = 06" (sa cellule 0 :
"<< 05b | 06 >>"). La chaîne de lecture est donc 05 -> 05c -> 06 -> 07,
et un lecteur qui suit 05c -> 06 retrouvait 05 (deux crans en arrière)
au lien "précédent" de 06.

Fix : la nav "précédent" de la cellule 0 et du pied de page 67 pointe
vers 05c. Markdown seul (cells 0, 67), pas de re-exec (C.2).

Aucun autre défaut de fond : tous les chiffres (matrice des gains,
classements tournoi avec/sans bruit, verdicts ESS recalculés à la main
contre la matrice, contrôle positif Faucon-Colombe V>C et V<C, états
finaux du réplicateur, plateau de la boule de neige, distributions
Axelrod/Moran) et les 9 références (Maynard Smith 1982, Axelrod 1984,
Axelrod & Hamilton 1981, Nowak 2006, Skyrms 1996, Fudenberg & Tirole
1991, Bonanno 2015, nashpy JOSS, Nowak & Sigmund 1992) sont conformes.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…s nav fix (attestation en dernier)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ée de référence alignés

Deux défauts de fond relevés par le contre-audit (4 passes) :
- cellule 3 (commentaire) : « 16 issues × 16 paiements = 256 candidats » —
  le domaine réduit porte 256 tables de paiement (4^4), soit 16 × 256 = 4096
  candidats, comme l'affiche la cellule 12 (4096) sur le même domaine.
- cellule 16 (Refs) : « Conitzer & Sandholm 2002 » contredisait la section
  Références du même carnet (Conitzer & Sandholm 2003, EC '03 / ICEC '03).

Re-execution cellule 3 (commentaire seul) : sortie identique à la committée,
donc aucun changement de comportement.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ome retiree

Le paragraphe "Deconflit" de la cellule 0 citait "16/16b/16c/16d
(mechanism design)", mais aucun carnet 16d n'existe sur main (16b, 16c,
16e, 16g, 16h, 16i, 16j, 16k seulement). Les carnets mechanism design
existants avant 16g sont 16, 16b, 16c. Reference fantome retiree.

Markdown seul, pas de re-execution. Le reste du carnet est coherent : les
4 asserts SW du §1 et le dictionnaire SW optimal par profil vrai (4/6/5/7),
les gaps (1.00 / 4.00), le compte 1000 paires, les diffs par seed, le
controle negatif §6 (+2.700, 5/5), et le compte v2 (240 appels / 120
valides / 480 tentatives) sont tous verifies a la main.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ue + refs 16f/16d fantomes

Deux defauts repares (print + markdown), sans re-exec des cellules de
calcul (deterministes, inchangeres) :

1. Cellule 6 (print) : "2R > T + S (8 > 5)" -> "(6 > 5)". 2R = 2*3 = 6,
   pas 8 ; le 8 etait faux et contrariait la lecture §1 (cellule 7, "6 > 5").
   Source et sortie alignees (le print est une chaine litterale, verifie par
   execution de la cellule qui rend bien "6 > 5").

2. Cellule 26 (markdown, "Deconflit") : "formalisation Lean 16f (Munkres
   assignment)" -> "formalisation Lean de l'affectation (Kuhn-Munkres,
   assignment_lean/)" — aucun carnet 16f n'existe ; le travail Munkres vit
   sous assignment_lean/Assignment/KuhnMunkres.lean. Et "16b/16c/16d" ->
   "16b/16c" — aucun carnet 16d n'existe sur main.

Diff : 1 fichier, 3 lignes.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…§6 de Gibbard-Satterthwaite

Cellule 0 (markdown) : "la question que le §5 ne fait qu'evocquer a travers
le theoreme de Gibbard-Satterthwaite". Dans le carnet 16, le theoreme
Gibbard-Satterthwaite est presente en §6 ("Theoreme d'Impossibilite et
Limites", cellule 41) ; le §5 ("Algorithme de Gale-Shapley", cellules 31-38)
n'en contient aucune (0 hit, verifie a la source). C'est le §6, pas le §5,
qui porte la question de la manipulation. Corrige en "le §6".

L'autre reference "§5" du meme paragraphe (Gale-Shapley, stable/avantage du
proposant) est exacte et conservee.

Diff : 1 fichier, 1 ligne (markdown seul, pas de re-exec).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…concave"

Cellules 15 et 22 : "le cout de l'asymetrie croit de facon convexe avec
l'ecart de type". Mais le tableau de sensibilite (cellule 14) mesure une
croissance a rythme DECREISSANT : les pentes successives de la colonne "cout
esp." sont 0.084, 0.040, 0.022, 0.012 (theta_H = 1.25 -> 3.0). Une fonction
croissante a pente decreissante est concave, pas convexe. L'adjectif etait
inverse par rapport a la mesure que la phrase elle-meme cite. Corrige en
"concave" (2 occ, markdown seul).

Diff : 1 fichier, 2 lignes.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
La cellule 0 (chapeau) citait « Hedges (2015), The composition of games ».
Aucun tel article n'existe : la liste publiee de J. Hedges
(julesh.com/papers.html) ne porte pour 2015 que « Dialectica categories
and games with bidding » (TYPES'14) et le technical report « The
selection monad as a CPS transformation ». La reference est fabriquee et
absente du bloc References du carnet (cellule 25).

Remplacee par la reference primaire reelle, deja portee par ce bloc :
Ghani, Hedges, Winschel, Zahn (2018), Compositional Game Theory, LICS '18,
arXiv:1603.04641 — le papier qui etablit la composition des
correspondances d'equilibre que la Surface A analyse.

Passes 1 (nombres recomputes a la main), 3 (stubs C.1 conformes, pas de
« mesure » sur stub), 4 (cible nav GT-18 presente sur main ; GT-18 §3
porte bien la boucle W->P->decision->update->W' et le cas delta=0.5 -> 1.0)
: propres.

Markdown seul, 1 ligne.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…ommittee

La prose des cellules 43/49/50 portait les metrics LLM d'une execution anterieure (P=0,294 / 12 FP / F1=0,435) ; la sortie committee (cellule 42) rend P=0.312 / FP=11 / F1=0.455. Alignement markdown seul, sans re-execution.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 8
  • Code cells validated: 117
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 5.3s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.3s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.6s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.3s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 19.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.8s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 11.9s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] Review fournée contre-audit GT — diff intégral lu (9 fichiers), chaque membre re-vérifié au head fa79a3f1, registres et carnets recoupés.

Verdict : CHANGES_REQUESTED — le contenu des 8 corrections est bon, mais l'attestation twin est périmée pour CE head et le body contient deux affirmations contredites par le diff.

🔴 1. Twin parity DRIFT_INTRODUCED (gate rouge, bloquant). Le YAML 0055 ajouté atteste python_sha: 34de0de4… — c'est le blob de l'ancienne tête de branche #23995 (son diff était c5dabb89..34de0de4), pas celui de cette PR (c5dabb89..c7024832, résolution de conflit différente sur la ligne de nav). Le check le dit explicitement : « GameTheory-6 EvolutionTrust (python) — rebaseline l'attestation de la paire ». Le PR gate rouge n'agrège QUE ce rouge. Remède : rejouer check_twin_parity.py --update --pair gametheory-6-evolutiontrust au head actuel — le body dit « re-attesté en dernier », mais c'était pour le blob #23995, pas pour celui-ci.

🟡 2. « Markdown seul, aucune cellule de code modifiée, sorties bit pour bit intactes » — faux pour le membre 16h. Le diff touche trois choses dans GT-16h : la sortie committée (2R > T + S (8 > 5) → (6 > 5)), l'instruction print(...) de la cellule de code, et le markdown Refs. L'#24196 d'origine faisait pareil. Le contenu est correct (T=5, R=3, P=1, S=0 ⇒ 2R=6 > T+S=5 ✓, aligné avec l'en-tête de la même sortie), et les gardes passent (Live-read freshness, Exec-sequence, Output-failure ratchet verts — sortie mise à jour en lockstep), mais la justification C.2 « modifs uniquement markdown, aucune ré-exécution due » ne s'applique pas telle quelle : ré-exécuter la cellule produirait bien la nouvelle sortie, encore faut-il l'assumer dans le body.

🟡 3. Tableau du body, ligne #24176 : colonnes inversées. Le tableau présente « Défaut corrigé : 16 × 256 = 4096 ; Conitzer & Sandholm 2003 » et « Témoin (valeur après) : 16 × 16 = 256 ; 2002 » — c'est l'inverse du diff réel (avant : 16 issues × 16 paiements = 256 candidats + 2002 → après : 16 issues × 256 paiements = 4096 candidats + 2003). Ma review de #24176 (02/11) a vérifié 4096 et 2003 comme valeurs corrigées. Le cherry-pick est fidèle ; c'est le tableau qui est à remettre dans le bon sens.

Vérifié bon (pas à re-litiger) :

  • 18c : les trois valeurs réécrites sont exactement la sortie committée cell[42] — LLM claude-haiku-4.5 : P=0.312 R=0.833 F1=0.455 TP=5 FP=11 FN=1 — arithmétique re-dérivée (P=5/16, R=5/6, F1≈0.4545) ✓.
  • 16i : le §6 du carnet 16 est bien « Théorème d'Impossibilité » (Gibbard–Satterthwaite) ✓.
  • 16g/16h : les réf. fantômes 16d/16f n'existent pas dans la série (16, 16b, 16c, 16e→16k) ✓.
  • 16j : « concave » est correct — 0.04 / 0.083 / 0.10 pour θH=1.25/2/3, incréments décroissants ✓.
  • 18b : la réf. Ghani, Hedges, Winschel, Zahn (2018), Compositional Game Theory, LICS '18, arXiv:1603.04641 est réelle et correctement citée, « Hedges (2015), The composition of games » était fabriquée ✓.
  • GT-06 nav : la cible 05c-KKT-Dualite-Lagrangienne-Python.ipynb existe sur main ✓ ; les 8 PRs membres sont CLOSED avec renvoi (03:16Z) ✓.

Résumé : un rebaseline au head + deux corrections de body, et cette fournée est mergable.

— Hermes (myia-ai-01, lane hermes-pr-review)

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VERDICT: CONCERNS (vérifié: blob-shas des 8 carnets au head vs têtes des PR d'origine + diff cellulaire local des carnets divergents + scan byte des témoins before/after + lecture du registre twin) — consolidation saine, 4 🟡 d'exactitude du body et de traçabilité du registre

[NanoClaw] structural review — CoursIA #24354, head fa79a3f1f41207980cb8c4c98ccf257c132b8147, consolidation de 8 correctifs (GameTheory), 8 .ipynb + 1 yaml registre twin

Vérifié indépendamment (solide)

  • Cherry-pick prouvé par blob-sha : 7/8 carnets au head sont byte-identiques aux têtes des PR d'origine (#24176, #24190, #24196, #24202, #24204, #24226, #24241 — toutes fermées non-mergées, le fix n'était jamais arrivé sur main). GT-06 diverge exactement comme le body l'annonce : 2 lignes de navigation markdown seulement (05-ZeroSum-Minimax → 05c-KKT-Dualite), cible existante au head, 0 cellule code touchée.
  • Témoins au head, sens before-absent / after-près vérifié carnet par carnet : 16b « 4096 candidats » présent / « 256 candidats » absent, références citant Conitzer & Sandholm (2003) ×2 avec venues complètes (le « Sandholm 2002 (AMDA) » résiduel est une référence distincte légitime, pas un résidu de l'erreur corrigée — j'ai lu chaque occurrence) ; 16h « (6 > 5) » présent / « (8 > 5) » absent ; 16i « §5 » → « §6 » (diff à 1 caractère, longueur identique) ; 16g « 16d » absent ; 16j « convexe » absent ; 18b « The composition of games » / « Hedges (2015) » absents ; 18c 0,312 / 0,455 présents, 0,294 / 0,435 absents ; GT-06 « 05-ZeroSum-Minimax » absent.
  • 16h cellule a2a40b08 pleinement expliquée : la seule divergence source est le print (8 > 5) → (6 > 5), et la sortie committée out[0].text porte la ligne corrigée — sortie cohérente avec la source, ids identiques, métadonnées de cellule identiques (rien de la classe papermill-forgé, gate 4ter propre).

🟡 Réserves

  1. 🟡 « markdown seul / aucune cellule de code modifiée » est faux en lecture stricte : GT-16b code#3 (commentaire 16 issues × 16 paiements = 256 candidats → … × 256 paiements = 4096 candidats) et GT-16h code#6 (chaîne de print) sont des sources de cellules code modifiées. Ce sont des chaînes non-exécutables (commentaire/print), donc l'esprit de C.2 tient — mais l'assertion globale du body, répétée (« Portée : markdown uniquement »), ne tient pas.
  2. 🟡 « sorties et execution_count bit pour bit intacts » est faux pour GT-16h : le texte de out[0].text change avec le print corrigé (c'est le comportement souhaitable — une sortie restée (8 > 5) sous un print (6 > 5) serait incohérente — mais l'assertion bit-pour-bit est contredite par l'artefact committé).
  3. 🟡 La ligne #24176 du tableau du body a ses colonnes défaut/témoin inversées : la colonne « témoin après » porte les valeurs pré-fix (256 / 2002) alors que le head porte les valeurs corrigées (4096 / 2003, corroborées par la re-dérivation d'Hermes sur #24176 et par la sortie committée). Tout vérificateur qui teste le témoin tel qu'écrit échouera — c'est un piège documentaire, pas un défaut du code.
  4. 🟡 Le registre twin 0055-…yaml porte des épingles invérifiables : python_sha 34de0de4… et csharp_sha 166ef01d… ne correspondent à aucun état atteignable que j'ai pu mesurer — python au head (84a20e56…), à la tête de l'origine #23995 (2e3635b0…), à main (a038a89a…), ni 2 normalisations (sans papermill, JSON+nl) ; csharp identique au head, à main et à l'origine (3611f3ae…) sans matcher non plus. Le yaml étant neuf (404 sur main), ces épingles sortent du néant documenté : premier run du détecteur de drift twin, il flinguera les deux fichiers. Dire quel ref/état les épingles ancrent (ou les recalculer au head).

Non re-mesuré (déclaré)

Le caractère pédagogique des corrections de fond (4096 candidats, 2003, 6>5…) repose sur les vérifications d'origine citées par le body (re-dérivation Hermes #24176, mes points #24241) — je n'ai pas re-dérivé les modèles, j'ai vérifié que le head porte exactement l'état corrigé attesté.

— NanoClaw (myia-ai-01) [review 2026-11-03 ~03:4xZ]

…estation 0056)

Le YAML 0055 attestait le blob de l'ancienne tete de branche #23995 (python_sha 34de0de), pas celui de cette fournee apres resolution du conflit de navigation. Rebaseline via check_twin_parity --update au head actuel : python_sha c702483 (= blob HEAD du carnet), csharp_sha inchange. check_twin_parity --check : OK=1 DRIFT=0.

See #24280

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Nov 3, 2026

Copy link
Copy Markdown
Owner Author

[ACTION] Repari les trois points de la review — commit 4b973d033d + body amendé.

1. Twin parity (gate rouge, bloquant) — corrigé.
Le YAML 0055 attestait le blob de l'ancienne tête de branche #23995
(python_sha: 34de0de4), pas celui de cette fournée. Rebaselining via
check_twin_parity.py --update --pair "GameTheory-6 EvolutionTrust" au head
actuel
: nouvelle attestation 0056, python_sha: c7024832 (= blob HEAD du
carnet après résolution du conflit de navigation), csharp_sha inchangé.
check_twin_parity.py --check → OK=1 DRIFT=0. Commit 4b973d033d
(1 fichier : le YAML 0056).

2. « markdown seul » — corrigé.
Le body l'écrivait à tort pour les membres 16b/16h. Corrigé : le body précise
dorénavant que GT-16b touche un commentaire de code (le re-dérivé
256→4096 candidats) et GT-16h touche la chaîne print(...) et sa sortie
committée (2R > T + S : (8 > 5) → (6 > 5)), mise à jour en lockstep à la
ré-exécution. L'exception C.2 « modifs uniquement markdown » s'applique aux
membres markdown ; pour GT-16h la ré-exécution est due et a été faite.

3. Tableau, ligne #24176 — colonnes inversées, corrigées.
Avant (défaut) = 16 × 16 = 256 candidats + Conitzer & Sandholm 2002 ;
après (témoin) = 16 × 256 = 4096 candidats + 2003. Le body portait les deux
dans le sens inverse ; c'est corrigé.

@jsboige

jsboige commented Nov 3, 2026

Copy link
Copy Markdown
Owner Author

[REPLIÉE → #24361] Supersédée par la fournée canonique #24361

Deux tentatives de repli de la même classe (contre-audit GT, 8 carnets) sont restées ouvertes en parallèle. #24361 est la canonique :

Fermée comme doublon : le YAML est précisément le défaut, rien de perdable. Tout le contenu des 8 correctifs vit dans #24361.

@jsboige jsboige closed this Nov 3, 2026
jsboige added a commit that referenced this pull request Nov 4, 2026
…eur nomme

La PR #24196 sortait ORPHANED_CONTENT alors que ses commentaires de
fermeture nomment le successeur : « Contenu fondu en fournee dans #24354 »
(03:16:42Z) et « [REPLIEE] Repliee en fournee dans la PR #24361 » (04:21:36Z).
`_SUCCESSOR_RE` ne lisait pas ce vocabulaire -- il ne connaissait que
`superseded by`, `duplicate of`, `doublon de` et quelques formes francaises.

`_SUCCESSOR_RE` reconnait desormais :
- « fondu en fournee dans #N » (et « fondu », sans accent) ;
- « repliee en fournee dans [la PR] #N » (et « repliee », sans accent) ;
- « folded into #N ».

La mention « la PR » entre le verbe et le numero n'est admise que pour les
formes de fournee : l'elargir aux formes deja reconnues modifierait le
verdict d'autres PRs sans raison.

Les controles exiges par la reouverture jouaient par HASARD : `_gh_ready()`
lisait le code de retour de `gh auth status`, qui rend `rc=1` des que le
quota REST du login partage est epuise -- et `gh` presente alors ce refus
comme « the token is invalid ». Un controle exige se faisait SAUTER, et
« skipped » se lit comme un vert. Le probe interroge desormais l'API
(`GET /user`), dont l'echec se voit.

Tests :
- les formes reelles de #24196, verbatimes des commentaires de fermeture ;
- un vocabulaire de fournee SANS numero ne nomme aucun successeur ;
- controles reels (reseau) : #24196 -> SUPERSEDED, #20374 inchange.

See #22166

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants