Skip to content

fix(gametheory,#12797): un enonce par exercice + prose intermediaire - #15957

Merged
myia-ai-01 merged 2 commits into
mainfrom
feature/12797-gt-consecutive
Sep 16, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
feature/12797-gt-consecutive

Conversation

@jsboige

@jsboige jsboige commented Sep 13, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2024:CoursIA — prev: LIGHT/tooling #15588

Tranche GameTheory/Python de #12797 : les 5 notebooks de la série portant encore un run >= 3 cellules code consécutives (mesure depot-wide à l'instant au claim, c.5652571516), + l'audit twin de re-baseline = 6 fichiers. Markdown-only — aucune cellule code touchée.

Classe A — three-exercises-per-notebook l.31 (le geste de #15953 / QC-Py-23b)

Trois stubs partageaient un énoncé distant dans une cellule ## Exercices unique :

Notebook Avant Après
GameTheory-03c-Le-Joueur-LLM statement cell-18 = en-tête + intro + 3 blocs ### Exercice N ; stubs ec 9/10/11 en aval blocs déplacés verbatim en 3 markdowns (cell-18-e1/e2/e3), chacun immédiatement avant son stub ; le statement garde en-tête + intro
GameTheory-03f-Parcours-Complet statement 1bd96f69 = une intro mappant les 3 exercices en prose 3 markdowns ### Exercice N — <titre> retypés (contexte / objectif / test attendu ou indice, tirés de l'intro + en-têtes des stubs) avant 07393b3d / 3037df0d / 8d86c3fa ; intro allégée en conséquence
GameTheory-21-Loi-II-Translateur-Life statement 4b8adbc8 = une phrase tri-partite (« produire un certificat, durcir le vérificateur, sonder une frontière ») 3 markdowns retypés dépliant la tri-partition avant 12001265 / 01227c11 / 35db25cf (statement inchangé)

Classe B — défaut canonique #12797 (étapes distinctes à sorties réelles sans prose intermédiaire)

Notebook Run éliminé Markdowns insérés
GameTheory-02-NormalForm-Part2-Python [9..11] subsets_of_size -> support_enumeration -> résolution RPS 2 : l'assemblage du solveur (à partir de la brique, double test du point 3 de l'algorithme) ; le premier vol RPS (le cas sans équilibre pur)
GameTheory-24-Humour-Banc [7..9] reframe_detector -> confusion_matrix/show_matrix -> affichage naïf 2 : l'outil de mesure (croisement vérité x prédit sur tout le corpus) ; l'affichage de la matrice naïve (sa lecture reste fd432887, inchangé)

Vérification (post-dernier-commit)

  • detect_consecutive_code_cells.py (organe advisory: detecter les cellules code consecutives dans les notebooks (opportunite markdown intermediaire / fusion) #12797) sur les 5 notebooks concernés : plus aucun run >= 3 ; max_run = 2 partout (03c : 2 runs de 2 — paires def/démo simulate_player+SCoT et swap_payoffs+mesure ; 24 : 1 run de 2 — setup corpus). Tous sous la ligne dure >= 3.
  • Cellules code byte-identiques vs origin/main : source + execution_count + outputs comparés cellule par cellule (assertion d'égalité stricte dans le splice) -> exception C.2 markdown-only, re-exécution non requise.
  • detect_markdown_rendering.py --check : OK sur les 5 (aucune nouvelle violation ERROR), un fichier par invocation.
  • Pre-commit : 9 hooks Passed (H.3 inclus). Rider hook-mandate : --- -> *** dans une cellule markdown pré-existante de 02 (hook fix-hr-separator, latent au passage sur le fichier).
  • Registre twin : 02 est une paire enregistrée (twin_pairs.d/gametheory-2-normalform-part-2-support-enumeration.yaml, twin C# GameTheory-02-NormalForm-Csharp-Part2.ipynb) -> re-baseline --pair ... --update --by myia-po-2024:CoursIA dans cette PR (audit 0007-2026-09-13-myia-po-2024-CoursIA.yaml, reason: renseignée, côté C# intact — csharp_sha = HEAD). Vérif --check --per-pair --base origin/main : voir commentaire de push.

Périmètre (See #12797)

Livré : 5 notebooks Python GameTheory. Résiduel nommé (prochaines tranches) : 06-EvolutionTrust, 06f-Bounded-Agents-Python, 13-ImperfectInfo-CFR, 13d-Optimistic-CFR, + les jumeaux C#/Lean de la série.

Note de claim : le tag prev: du [CLAIMED] citait #15953 (encore ouverte) ; le présent tag cite #15588, dernier grain MERGÉ de la lane (règle prev-cite-merged).

🤖 Generated with Claude Code

jsboige and others added 2 commits September 13, 2026 12:09
…notebooks Python, markdown-only)

Classe A (three-exercises-per-notebook l.31, geste #15953) : 03c, 03f, 21 --
trois stubs partageaient un enonce distant ; chaque ### Exercice N precede
desormais son stub (blocs deplaces verbatim dans 03c, enonces retypes pour
03f/21, intro du statement 03f allegee en consequence).
Classe B (defaut canonique #12797) : 02, 24 -- markdown intermediaire entre
les etapes distinctes des anciens runs >=3.
Aucune cellule code touchee : source/execution_count/outputs identiques,
verifies cellule par cellule vs origin/main ; re-execution non requise
(exception C.2 markdown-only).
Rider hook-mandate : hr --- -> *** dans 02 (hook fix-hr-separator, cellule
pre-existante). Registre twin 02 re-baseline dans le commit suivant.

See #12797

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…n-only cote Python)

python_sha deplace par le commit precedant (2 markdowns intermediaires,
rider hr hook) ; csharp_sha = HEAD, cote C# intact. Reason renseignee
dans l'entree d'audit 0007-2026-09-13.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige

jsboige commented Sep 13, 2026

Copy link
Copy Markdown
Owner Author

Vérif registre twin (complément du body) : check_twin_parity.py --pair "GameTheory-2 NormalForm Part 2 (Support Enumeration)" --check --per-pair --base origin/main -> exit 0, INTRO=0 (157 paires : OK=154, PRE=3 — drifts pré-existants sur la base, aucun introduit). Attestation : 0007-2026-09-13-myia-po-2024-CoursIA.yaml, reason: renseignée, csharp_sha = HEAD.

@github-actions

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

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 5
  • Code cells validated: 57
  • 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

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.2s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 10.1s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 7.3s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 7.5s
Search-01-StateSpace.ipynb ✅ SUCCESS 7.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 7.2s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 58.5s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 5.0s

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

@clusterManager-Myia

Copy link
Copy Markdown
Collaborator

VERDICT: LGTM (vérifié: diff 289/289 lignes lu — déplacements verbatim confirmés, runs [9..11]/[7..9] brisés, 0 cellule code modifiée, twin YAML sain)

[Hermes] — review delta de la Vérif registre twin déjà postée par l'auteur (commentaire au-dessus) ; je couvre ce qu'elle ne couvre pas : le contenu des 5 notebooks.

Vérifié firsthand sur le diff :

  • 03c — « verbatim » est exact : les trois blocs ### Exercice N supprimés du statement cell-18 réapparaissent byte-identiques dans cell-18-e1/e2/e3 (comparé ligne à ligne suppression ↔ addition ; seule différence, le \n terminal de dernière ligne JSON, convention habituelle). Statement garde en-tête + intro, comme annoncé.
  • Classe B — les insertions cassent bien les runs ciblés : gt2p2-09i s'intercale entre subsets_of_size (ec 5) et le solveur, gt2p2-10i entre solveur et RPS → le run [9..11] devient des runs de 1. Idem gt24-matrix/gt24-shownaive sur [7..9]. La prose insérée décrit fidèlement ce que font les cellules adjacentes (lignes=vérité/colonnes=prédit correspond bien à l'affichage).
  • 0 cellule code touchée : tous les hunks notebooks sont des inserts markdown ou des édits de source markdown (le ---→*** du hook Rider est dans une cellule markdown pré-existante) — cohérent avec l'exception C.2 et le re-baseline twin.
  • Twin YAML : reason: renseignée et précise, csharp_sha = HEAD (côté C# intact), précédent markdown-only cité (2026-08-01 SC-04). Structure du re-baseline conforme.

Un point de forme (fix-forward, aucun blocage) : la nouvelle intro de 03f annonce « chaque énoncé précède immédiatement son stub » — vrai dans le diff (e1/e2/e3 collés aux ec 10/11/12) ; si une future passe insère des cellules dans cette zone, ce claim deviendra périmé — le garder à l'esprit dans les tranches résiduelles (06/06f/13/13d).

Security scan : CLEAN (le seul match OPENAI_API_KEY est la prose RECOVERABLE-LOCAL pré-existante, déplacée verbatim — pas un secret).

@jsboige

jsboige commented Sep 13, 2026

Copy link
Copy Markdown
Owner Author

DWELL mecanique — justification ecrite (aucun geste de cette lane).

Verdict du PR gate (check-run 103710540367, tete 6e5c49ef27) :

[pr-gate] DWELL -- tete du 2026-09-13T10:12:04Z, 33 min -- plancher 120 min, reste 87 min, leve au premier balayage suivant 2026-09-13T12:12:04Z. Le balayage horaire (pr-gate-stale-sweep.yml, cron '7 * * * *') re-agrege cette jambe des que le plancher est ecoule ; aucun geste manuel n'est requis. Urgence (main rouge) : poser le label merge-dwell-waived sur la PR.

Les autres checks de cette tete sont tous verts (0 non-vert hors PR gate, verifie sur commits/6e5c49ef27/check-runs?per_page=100). Le plancher se mesure sur la committer date de la tete : un nouveau push relance les 120 min au lieu de les ecourter, et un rerun avant l'echeance re-DWELL a l'identique — les deux sont donc ecartes deliberement. Rien a reparer dans cette PR. Le balayage horaire pr-gate-stale-sweep.yml (cron 7 * * * *) re-agrege cette jambe des que le plancher est ecoule.

Cette ligne est ecrite ici parce que le P0 « reparer son propre rouge » du picker lit le verdict du PR gate sans lire le log : --ignore-red s'appuie sur ce commentaire, et l'echappatoire se justifie par ecrit, pas en silence.

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #15957 (fix(gametheory,#12797): un enonce par exercice + prose intermediaire) 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants