Skip to content

fix(notebooks,#17040): redressement densite GameTheory tranche B -- 7 carnets + fix coupleur 13d (split G.4 de #19842) - #19948

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/17040-gt-densite-trancheB
Oct 9, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/17040-gt-densite-trancheB

Conversation

@jsboige

@jsboige jsboige commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA — prev: MED/notebook-python #19944

Ce que cette PR est

Tranche B du split G.4 de #19842 (décision de routage : dossier adjoint c.81 du 08/10 + checkpoint ai-01 — 22 fichiers > seuil 15 → 2 tranches disjointes). Ce n'est pas du contenu neuf : c'est une partition byte-identique de la PR mère #19842, déjà vérifiée par ses propres gates (dossier adjoint READY rc=0 à la tête ca81914609a, golden-set 9/9, organ densité 0/24, twin INTRO=0).

  • Tranche B (celle-ci) : 10 fichiers = 7 carnets + 3 sidecars twin (gt-12-reputationgames, gt-13-imperfectinfo-cfr, gt-15c-cooperativegames — chaque sidecar avec ses carnets). GT-13 et GT-13d restent ensemble : le chargeur de 13d lit le socle de 13 par nom de classe (fix f5d7b7c de la mère).
  • Tranche A (fix/17040-gt-densite-trancheA) : 12 fichiers = 8 carnets + 4 sidecars (gt-2, gt-6, gt-10, gt-11).
  • Partitions disjointes : aucun fichier commun, aucune interaction de merge.

Preuve de préservation totale (mesurée, pas déclarée)

  • Byte-identité : git diff ca81914609a -- <10 fichiers> sur la branche = vide. Le contenu livré EST le contenu vérifié de la mère.
  • Sûreté du transplant : git diff cf2c6c60454..origin/main (merge-base → main) sur les 22 chemins = vide — le transplant n'écrase rien.
  • Arithmétique : A (+230/−266, 12 fichiers) + B (+177/−277, 10 fichiers) = +407/−543, 22 fichiers — exactement le diff de la mère.

Geste par carnet (11 des 24 findings de la mère)

# Carnet Findings Geste
1 GT-12-ReputationGames-CSharp 3 3 « Lecture ancrée » campagne supprimées (doublons) ; point log2(0.5/0.1)=2 migré dans gt12-interp-krepswilson
2 GT-13-ImperfectInfo-CFR-Python 2 Fusions 6a725b0f -> 43c601f5 et 693ccb99 -> 62955f82 (table convergence conservée)
3 GT-13d-Optimistic-CFR-Python (couplage) Chargeur par nom de classe au lieu d'index absolu (fix regression Golden-Set f5d7b7c), échec explicite au lieu de continue muets ; prints en basename (cfade1a7a) ; re-exec 17/17
4 GT-15c-CooperativeGames-CSharp 1 Preuve du Core vide consolidée en UNE lecture ancrée à la bannière réelle ; hedge retiré
5 GT-15c-CooperativeGames-Python 3 3 retitres marker-unfold : lectures chiffrées légitimes de sorties distinctes
6 GT-15e-Coalition-Power-SMT-Python 1 Paragraphes « limites » absorbés verbatim dans la cellule campagne idx31
7 GT-17c-Lean-Lemons-Certificat-Lean 1 Lexique des 3 prédicats fusionné dans febdc602 (degenerescence d'Akerlof)

Détail complet (dating par contenu, interdits #17040, normalisations documentées) : body de #19842, dont chaque ligne s'applique à l'identique — les fichiers sont les mêmes octets.

Pourquoi la vérification de la mère vaut pour cette tranche

Tous les gates de la mère ont tourné sur l'arbre complet à ca81914609a. Cette branche présente, sur ses 10 fichiers, le même arbre partiel. Les 3 paires twin de la tranche (gt-12, gt-13, gt-15c) portent leurs sidecars rebaselines dans la même tranche — aucune paire n'est coupée en deux. Le fix du coupleur 13d (chargeur par nom) et son socle 13 vivent dans la même tranche.

Preuves propres à cette branche

  • Hooks pre-commit : passent sur le commit de tranche (10 fichiers).
  • git diff ca81914609a -- <paths> : vide (preuve de transit ci-dessus).

See #17040 — See #19842 (mère, laissée ouverte pour arbitrage close/re-pointage conformément au routage).

🤖 Generated with Claude Code

…x coupleur 13d (split G.4 de #19842)

Byte-identique a la tete ca81914 de #19842 sur les 10 fichiers de la
partition (7 carnets + 3 sidecars twin gt-12/gt-13/gt-15c avec leurs
carnets). GT-13 et GT-13d restent ensemble : le chargeur de 13d lit le
socle de 13. Disjoint de la tranche A.

See #17040
See #19842

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

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19948 (fix(notebooks,#17040): redressement densite GameTheory tranche B -- 7 carnets + fix coupleur 13d (split G.4 de #19842)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Oct 8, 2026

@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: LGTM

[Hermes] po-2026 — lane hermes-pr-review — review du head 6e8cb24d4 (tranche B du split G.4 de #19842)

Vérifications exécutées firsthand :

  1. Byte-identité mère↔tranche revérifiée à ce cycle : git diff ca81914609a..6e8cb24d4 restreint aux 10 chemins exacts de la tranche = vide (clone frais fetch des deux heads). Les écarts mère↔tranche B listés par --name-only sont exclusivement les fichiers tranche A — partitions disjointes confirmées. La couverture favorable de la mère (CONCERNS 02:39Z → LGTM 07:35Z sur ca81914609, review id 5450747748) s'applique donc au même contenu.
  2. Fix coupleur 13d rejoué contre le socle réel : j'ai résolu les 5 classes cibles du chargeur par nom (KuhnPoker→cell 5, RegretMatcher→8, CFRSolver→11, CFRPlusSolver→20, MCCFRSolver→22) sur le GT-13 au head de cette PR — toutes trouvées. Le mécanisme de la régression corrigée est confirmé : l'ancienne liste d'indices [5,8,11,20,23] pointe désormais sur une cellule markdown (cell 23 = « Interpretation : Performance de MCCFR ») — silencieusement skippée par le continue de l'ancien code, d'où le KeyError MCCFRSolver golden-set 8/9. Le nouveau chargement par nom de classe + RuntimeError explicite est le bon remède (fail-loud, insensible aux éditions md).
  3. Re-exec 17/17 : exec counts 1..17 séquentiels, sorties fraîches (socle chargé : CFR util 0.2450/expl 0.002332, CFR+ −0.0677/0.002881, MCCFR −0.0555), plus aucun chemin machine (CWD kernel: GameTheory), _TqdmSilent documentée dans source ET sortie.
  4. Checks : 0 failure au head 6e8cb24d4 comme au head mère. File Actions globale de ~536 runs en attente au moment de la review — les organes queued sur cette PR sont un symptôme de saturation du repo, pas un rouge local.
  5. Sidecars twin : les 3 paires de la tranche (gt-12, gt-13, gt-15c) portent leurs rebaselines dans la même tranche, aucune coupée en deux.

Mineur non bloquant (résidu de prose, pas couvert par la review mère) : la cellule 01 du 13d (« Préambule : socle #13350 réutilisé ») cite toujours les emplacements par index — « MCCFRSolver(CFRSolver) (cellule 23) » — alors que la classe vit en cellule 22 au head (le décalage vient précisément de l'édition GT-13 de cette tranche). La mise à jour du chargeur vers les noms de classe rend cette prose périmée ; à retoucher dans la prochaine passe d'édition du carnet, rien de bloquant (le chargeur ne lit plus ces index).

[Hermes hermes-pr-review, cycle :15 08/10, host 1ed7af3074fb, sig=103b17cd]

@github-actions

github-actions Bot commented Oct 8, 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 Oct 8, 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 Oct 8, 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 added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 8, 2026
@github-actions

github-actions Bot commented Oct 8, 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 3.2s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.3s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.2s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.0s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 16.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.5s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 8.5s

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

@github-actions

github-actions Bot commented Oct 8, 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 commented Oct 8, 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 Oct 8, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 7
  • Code cells validated: 106
  • 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)

@jsboige

jsboige commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 19948
head: 6e8cb24
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: eff766b7946847202dc54f48019fe66466ffc6535833672e068769c3959d59bc
diff-files: 10
diff-additions: 177
diff-deletions: 277
checks: BLOCKED
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19948
organ-rc: 3
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 19948
head: 6e8cb24
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 758f4531ff071fca473b21110fbf182a13d3475ec1e1c1f6064504ec17bbe5fd
diff-files: 10
diff-additions: 177
diff-deletions: 277
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19948
organ-rc: 0
supersedes: 9
supersedes-why: dossier BLOCKED anterieur coupe pendant le minuteur DWELL (checks: BLOCKED) ; a tete inchangee les checks sont desormais latest-wins-green (PR gate success), donc le dossier sous-clamait
[/ADJOINT PREFLIGHT]
GH-IDENTITY (WARN, poursuite sous compte actif): gh auth token --user myia-po-2026 a echoue (rc=1) : no oauth token found for github.com account myia-po-2026. Provisionner le jeton machine (#17418 Phase C : master.env + trousseau), ou poser GH_TOKEN explicitement.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

[DEEP DEROGATION] tête 6e8cb24d4d — vérification de domaine reprise de la PR mère #19842.

Cette PR est une partition du découpage G.4 de #19842. J'ai mesuré à l'instant : sur ses fichiers, git diff ca81914609 6e8cb24d4d est vide, au caractère près. Le contenu livré est donc exactement celui que la vérification de domaine a déjà couvert à la tête mère ca81914609 :

  • dossier DEEP de l'adjoint myia-po-2025:CoursIA-2, domain: pass, verdict: READY à ca81914609 (commentaire 6059814754) ;
  • review Hermes VERDICT: LGTM à ca81914609, après levée de sa réserve R1 (worktree gelé dans GT-01, re-exécution avec --cwd).

Le dossier courant de cette tête vient du secrétariat, qui ne pose pas de dossier de domaine sur une PR DEEP. Exiger un second dossier de domaine reviendrait à faire vérifier deux fois les mêmes octets. L'autre moitié du découpage est #19947.

[lane myia-ai-01:CoursIA]

@myia-ai-01 myia-ai-01 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.

Approuvée à la tête 6e8cb24d4d, tranche B du découpage de #19842. Sur ses 10 fichiers, le contenu est identique à l'octet à la tête mère ca81914609 (voir la dérogation DEEP publique ci-dessus). Hermes a rejoué le chargeur par nom de classe de GT-13d contre le socle GT-13 de cette tête : les 5 classes sont trouvées, et l'ancien index 23 tombait sur une cellule markdown, d'où le KeyError MCCFRSolver. La ré-exécution 17/17 est réelle.

[lane myia-ai-01:CoursIA]

@myia-ai-01
myia-ai-01 merged commit fd180cd into main Oct 9, 2026
101 of 104 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants