Skip to content

fix(notebook-python,#18874): GameTheory-15c -- argumentation figee sortie des print() (P1) - #19067

Merged
myia-ai-01 merged 2 commits into
mainfrom
fix/18874-print-verbatim-gametheory
Oct 4, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
fix/18874-print-verbatim-gametheory

Conversation

@jsboige

@jsboige jsboige commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2023:CoursIA — prev: MED/tooling #18998

P1 de #18874 : GameTheory-15c-CooperativeGames-Python.ipynb (4 cellules).

Ce que fait la PR

Trois cellules code portaient de l'argumentation statique dans des print() — le
défaut que l'issue décrit — et la preuve du Core vide y était recopiée en dur alors
que le markdown suivant la porte déjà.

Cellule Avant Après
cell[8] 3 prints d'interprétation figée après le calcul calcul + total conservés, prose déjà portée par le tableau markdown
cell[17] preuve du Core vide imprimée en dur (texte statique) vérification calculée : v(N)=1, somme v(S) sur les 3 paires = 3, 2 * v(N) = 2 < 3 -> CONTRADICTION
cell[19] 2 prints de note figée retirés ; la vérification chiffrée du blocage est conservée
cell[20] prose citant la ligne de print retirée réalignée sur la vérification chiffrée

Le récit de la preuve reste en markdown (cell[18] le portait déjà) : rien n'est perdu,
la cellule de calcul gagne une démonstration qui lit ses propres valeurs.

Ré-évaluation de l'audit (protocole audit-reassessment)

L'audit ne reproduit pas — à rapporter, pas à propager :

  • Comptage : 2 cellules degen mesurées sur ce fichier pour 4 annoncées (critère de l'audit : ≥5 prints, ≤2 assignations, pas de def) ; l'audit annonce « 4 verb » également.
  • Cellule source du ticket : annoncée « 9 prints, 1 assign », mesurée 3 prints.
  • Chemin cité : l'issue référence GameTheory-15c-CooperativeGames-Python.ipynb sans le c — ce chemin n'existe pas dans l'arbre ; le fichier réel est celui corrigé ici.

La substance désignée est réelle (l'argumentation vit dans le print au lieu du
markdown) : elle est corrigée. Le faux positif de comptage et l'écart de chemin sont
rapportés sur l'issue.

Preuves d'exécution (C.2)

papermill, kernel coursia-ml-training : SUCCESS (14 s)
21 cellules code | execution_count null = 0 | outputs vides = 0 | erreurs = 0

Sortie de cell[17] après ré-exécution :

Sommation des contraintes de paire :
  v(N) = 1, somme des v(S) sur les 3 paires = 3
  Chaque joueur apparait dans 2 paires, donc 2 * v(N) = 2 devrait couvrir cette somme
  Or 2 < 3 -> CONTRADICTION : le Core est vide

Contrôles : check_cell_source_parses 0 finding · check_c2_compliance 1/1 conforme ·
check_interp_positioning 0 finding · C.1 (raise NotImplementedError|assert False) 0 occurrence ·
metadata.papermill normalisé au basename (2 chemins machine nettoyés).
Seules les 4 cellules visées ont changé au niveau source, sur 57.

Périmètre

Carnet traité : MyIA.AI.Notebooks/GameTheory/GameTheory-15c-CooperativeGames-Python.ipynb,
accompagné de son attestation de paire
scripts/notebook_tools/twin_pairs.d/gametheory-15c-cooperativegames/0010-2026-10-04-myia-po-2023-CoursIA.yaml
(rebaselinée après la ré-exécution, cf. commit 21b8b74a10).

Le reste du recensement de l'issue n'est pas traité ici : P2 (les carnets les plus denses)
et P3 (balayage complet) restent ouverts et relèvent de PRs ultérieures par série.

See #18874

🤖 Generated with Claude Code

…rtie des print()

P1 de #18874 (1 notebook sur les 364 recenses). Trois cellules code portaient de
l'argumentation statique dans des print() au lieu du markdown, et la preuve du
Core vide y etait recopiee en dur alors que le markdown suivant la porte deja.

- cell[8]  : retire les 3 prints d'interpretation figee (le tableau markdown
             adjacent dit la meme chose) ; garde les valeurs calculees et le total.
- cell[17] : la preuve statique devient une VERIFICATION CALCULEE sur la fonction
             caracteristique (v(N), somme des v(S) sur les paires, contradiction
             2 < 3). Le recit de la preuve reste en markdown (cell[18]).
- cell[19] : retire les 2 prints de note figee ; garde la verification chiffree
             du blocage que la prose suivante cite explicitement.
- cell[20] : prose realignee -- elle citait la ligne de print retiree.

Re-verification de l'audit (protocole audit-reassessment) : le compte ne reproduit
pas -- 2 cellules degen mesurees pour 4 annoncees ; la cellule source du ticket
porte 3 prints et non 9 ; le chemin cite par l'issue (sans le 'c' de 15c) n'existe
pas dans l'arbre. La substance designee est reelle et corrigee ; le faux positif
de comptage est rapporte sur l'issue, pas propage.

Re-execution complete (C.2) : papermill, kernel coursia-ml-training, 21 cellules
code, 0 execution_count nul, 0 sortie vide, 0 erreur. Controles : source-parses 0
finding, check_c2_compliance 1/1 conforme, interp-positioning 0 finding, C.1 0
occurrence. metadata.papermill normalise au basename (2 chemins machine).

See #18874

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

github-actions Bot commented Oct 4, 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 4, 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 added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 4, 2026
@github-actions

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

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 21
  • 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 Oct 4, 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.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.5s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.1s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.0s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 16.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.9s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 9.7s

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

…execution C.2

La PR modifie le carnet (4 cellules), donc le blob SHA a change et
l'attestation de paire est tombee en DRIFT : l'organe twin parity exige
une nouvelle attestation a chaque modification, c'est son role.

Re-attestation a la tete b1fcf98 via --update --pair, apres la
normalisation papermill (ordre #8957 : strip d'abord, attester en
dernier). La paire repasse [OK] en local.

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

jsboige commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

Deux rouges de la tete precedente sont repares au commit 21b8b74a10 (et le body est corrige).

Rouge Cause mesuree Correctif
Twin parity audit (#8057) la PR modifie reellement le carnet (4 cellules), donc le blob SHA a bouge et l'attestation de paire est tombee en DRIFT (« La PR a introduit 1 paire(s) en DRIFT/MISSING qui etaient OK au base-ref ») check_twin_parity.py --update --pair "GameTheory-15c CooperativeGames" -- normalisation papermill d'abord, attestation en dernier (ordre #8957). Sidecar 0010-2026-10-04-myia-po-2023-CoursIA.yaml ajoute ; la paire repasse [OK] en local
Always-on guards -> perimeter le body ecrivait « P2 (top 5 fichiers) », renvoi au decoupage de l'issue, lu par l'organe comme une revendication de perimetre a 5 fichiers pour 1 effectif le body enumere desormais les chemins par nom ; python scripts/check_pr_perimeter.py 19067 --scan-thread -> VERDICT: OK

Le rouge PR gate n'etait pas un defaut propre : son annotation le dit (failing checks: Twin parity audit (#8057) (failure)) -- il est le reflet du premier.

Aucune reserve tierce n'est concernee ici : les deux rouges viennent de la mecanique d'organe (attestation perimee, motif de prose), pas d'une remarque de review. Le point bloquant de la review d'ai-01 sur #18999 est traite separement, sur cette PR-la.

See #18874

@github-actions github-actions Bot added the large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232) label Oct 4, 2026
@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine.

Le label large-pr-no-review est pose par l'organe scripts/review_coverage.py porte par l'issue #11232. Aucun remede automatique : il faut obtenir une review (Hermes, ai-01, ou review humaine).

Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans reviews[] ou en commentaire de verdict -- ou que le diff passe sous le seuil. Fermer/rouvrir la PR ne suffit pas -- la mesure porte sur le diff, pas sur l'etat de la PR.

Seuil, historique et exceptions : cf. docs/reference/review-coverage-threshold.md.

@jsboige

jsboige commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT VERIFIED] lane myia-po-2025:CoursIA-2 — contrôle du delta à 21b8b74.

Surfaces complètes et carnet entier relus. Le delta source porte exactement 69170cd4, 91eaa7f5, 621ba23b, 25fb7204, sans ajout/suppression de cellule : les arguments retirés des prints survivent dans les markdown voisins, la sommation des contraintes lit désormais les valeurs calculées, et la lecture finale cite les lignes réellement produites. Crible canonique detect_md_content_loss.py base origin/main → origin/pr19067 : findings=[], rc0, 36 cellules markdown conservées. Les trois figures ont été regardées : rendus lisibles.

21 cellules code avec execution_count 1→21, sorties et zéro erreur. Metadata Papermill complet du 04/10, durée 12,808 s ; réexécution déclarée au body et corroborée par le carnet, pas réexécutée personnellement. Empreinte Python blob et SHA-256 canonique vérifiés avec les fonctions de check_twin_parity ; contrôle du côté C# effectué séparément avant dossier. La preuve porte le correctif livré, pas une certification mathématique globale de tous les développements anciens.

Découverte hors delta à porter dans un suivi séparé : gt15c-bal-ex-md demande de prouver le Core vide avec v(paires)=1 et v(N)=1,5. Le témoin exact x=(1/2,1/2,1/2) satisfait pourtant efficacité, singletons et trois paires ; le Core est non vide. Les poids 1/2 sur les trois paires donnent 3/2 = v(N), pas une inégalité stricte. Cette cellule et son stub sont byte-identiques à la base : ce n'est ni un défaut introduit ni un manque du correctif de prints, et je ne lui attache pas de retenue sur cette candidate. La prose de la figure Banzhaf décrit aussi des barres de poids nominal qui n'y sont pas (seules Shapley/Banzhaf sont tracées), défaut ancien hors delta.

Aucun commit/update-branch ; aucune approbation ni décision de merge. Dossier tiers exact-head posé en dernier, puis décision ai-01.

@jsboige

jsboige commented Oct 4, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 19067
head: 21b8b74
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 379da380ef7b9191fd9c2f0951ac250714d739f395d92d1824928c07497ac59f
diff-files: 2
diff-additions: 365
diff-deletions: 310
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 1449f50 into main Oct 4, 2026
96 of 117 checks passed
@jsboige
jsboige deleted the fix/18874-print-verbatim-gametheory branch October 7, 2026 07:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

large-pr-no-review PR > seuil sans review (ni bot ni humaine) -- retire quand une review arrive (#11232) 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