Skip to content

Fix(gametheory,#14442): sweep intros tranche 1 -- chronologie Git retiree des cellules 0 (15 carnets) - #20023

Merged
myia-ai-01 merged 2 commits into
mainfrom
feature/14442-gt-intros-sweep
Oct 9, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
feature/14442-gt-intros-sweep

Conversation

@jsboige

@jsboige jsboige commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2025:CoursIA — prev: DEEP/lean #20017

Ce que cette PR livre — tranche 1 du sweep étendu de #14442

Le critère résiduel d'ai-01 (05/10, retour au tapis) : « environ vingt carnets de la série ouvrent encore sur la chronologie Git en cellule 0 ». Le [RELEASED] po-2023 du 07/10 couvrait les 3 défauts d'origine mais laissait le sweep étendu non soldé (case décochée). Cette tranche le commence : 16 intros auditées une à une en contexte, 15 réécrites.

Classification (audit en contexte, règle 5 du body : pas de fix regex global)

Carnet Classification Geste
03b-Chemins-de-Swaps CHRONOLOGIE_GIT_A_RETIRER « grain » → « notebook » ×2
06b-Lean-RepeatedGames CHRONOLOGIE_GIT_A_RETIRER EPIC #11703, #2959, PR #6146/EPIC #4365 retirés — le repère d'orientation disque (modules absorbés dans game_theory_lean/) est conservé
06f-Bounded-Agents-Lean CHRONOLOGIE_GIT_A_RETIRER « livré par la PR #15395 » ; note machine worker (myia-po-2026, verdict INTRINSIC, body PR) reformulée en prérequis d'exécution neutre
06f-Bounded-Agents-Python CHRONOLOGIE_GIT_A_RETIRER « livre par la PR #15395 » → « du lake »
06j-Bounded-Proofs CHRONOLOGIE_GIT_A_RETIRER (lourd) bandeau « Tranche B de l'EPIC #15062 — issue #15335 (DISPATCH ai-01 …) » supprimé ; « PR #15175 MERGED » retiré ; « Plan (5 points acceptance, verbatim de #15335) » → « Plan du notebook » ; « Prong-B (SOTA/non-trivialité) » → « Exigence de non-trivialité » ; « Garde de collision » (#15210, lane) → « Périmètre » neutre
11b-Lean-BayesianGamesExt CHRONOLOGIE_GIT_A_RETIRER EPIC #1453 ×2, issue #4040, side-track #4251 retirés — la section « Provenance » (preuves sans sorry du lake) est conservée : elle est PROVENANCE_UTILE
13b-Safe-Subgame CHRONOLOGIE_GIT_A_RETIRER « grain ICT » → « objet ICT » ; « po-2025 c.1301+315 » retiré (attestation Lean-27 conservée)
15b-Lean-CooperativeGames PROVENANCE_UTILE non touché ici — la table lake/sorry et le statut du port sont de la provenance de formalisation ; ses 2 refs mineures (#12494) partent en tranche 2
15g-AssistanceGames CHRONOLOGIE_GIT_A_RETIRER « grain DEEP de l'arc A de l'Epic #17528 » retiré ; papier + archivage GDrive conservés (bibliography-hygiene)
16-MechanismDesign-CSharp CHRONOLOGIE_GIT_A_RETIRER « marathon #4956 » → « parité .NET <-> Python » ×2
16b-Automated-MD CHRONOLOGIE_GIT_A_RETIRER « le grain tractable » → « le problème tractable »
16c-Extraction-Revenu CHRONOLOGIE_GIT_A_RETIRER issues #12211/#12259, Epic #12208/#13188 retirés de la ligne Références (notebooks + papiers conservés)
18b-Casser-la-Composition CHRONOLOGIE_GIT_A_RETIRER issue #12212, #13185/#12208 retirés de la ligne Références
20-Chemin-Minimal CHRONOLOGIE_GIT_A_RETIRER blockquote « Grain B2 de l'EPIC #12205 » supprimé ; #12286 retiré ; « dette RAPPORTÉ depuis la digestion » reformulé en « chiffres re-dérivés, jamais recopiés » (le fait pédagogique reste)
20b-Temoins-Impossibilite CHRONOLOGIE_GIT_A_RETIRER (lourd) blockquote « Grain1 d'ai-01 sur #12205 §6 … point 4 du critère d'acceptance » réécrit en question duale pédagogique ; la structure produit d_chambre = d_perm + d_perm reste en première ligne
20e-Perplexite-Hashlife CHRONOLOGIE_GIT_A_RETIRER « T12 tranche 2 (issue #18446) » + « livré par PR #18639 MERGED … par myia-po-2026:CoursIA-2 » retirés ; l'instrument scripts/hashlife/k_trajectory.py reste cité par chemin

Vérifications

  • Markdown-only : seules les sources markdown de cellule 0 changent — git diff | grep -cE '^[+-].*(execution_count|"outputs")' = 0 (exception C.2 : modifs uniquement markdown, pas de re-exec due).
  • Round-trip nbformat byte-fidèle vérifié avant édition (json.dumps(nb, ensure_ascii=False, indent=1) + '\n' == fichier brut) — le diff ne montre que les lignes de source visées : 16 fichiers, +45/-46 (15 carnets GameTheory + 1 yaml d'attestation de paire twin_pairs.d/gametheory-16-mechanismdesign/, +6 lignes).
  • Re-audit post-édition : la regex du sweep (issue #|PR #|grain|picker|livré par|acceptance|Hermes|DISPATCH|EPIC #|#\d{4,5}) rend 0 résidu sur les 15 carnets édités (16-CSharp : le seul hit restant est « deferred acceptance » = Gale-Shapley, faux positif).
  • Chaque remplacement était assertionnel (échec bruyant si pattern absent) — aucun edit aveugle.

Tranche 2 — résiduel mesuré, pas estimé

Le re-audit sur la série entière avec la regex assouplie montre ~35 carnets supplémentaires porteurs en cellule 0, par familles : jumeaux C# « marathon #4956 » (02, 03, 04, 04c, 05, 06, 07, 08, 09, 10, 11, 12, 13, 13c, 14, 15, 15c…), mentions « EPIC #3801 » SOTA (série 02, 03, 04…), « #12208 » maturation (02c, 13c), 03d-Le-Joueur-LLM (#12254, Grain), 03e (Hermes), 03f (#12207, #16231), 06d (#12683, #13042), 06g (« grain »), 11-CSharp (#10438), 15d (#12238), 15f (#17531, #14468), 16e (#12343, #15399…), 17f (EPIC #12904), 20c (#12204), 15b (#12494 ×2). Ce périmètre dépasse le seuil de composite (>15 fichiers) — il se livre en tranches séparées, chaque occurrence lue en contexte.

Signalements hors scope (non corrigés ici)

Trois intitulés H1 ≠ nom de fichier repérés pendant le sweep : 06j s'intitule « GameTheory-06f », 06f-Bounded-Agents-Lean s'intitule « GameTheory-06g », 20b s'intitule « GameTheory 24b ». Le renumérotage exige un argument pédagogique écrit (notebook-accretion-numbering) — à traiter en sujet séparé, je ne l'ai pas touché.

See #14442

🤖 Generated with Claude Code

Sections assumées (marqueurs plan-loss, #14532)

plan-loss: section assumee -- GameTheory-06j-Bounded-Proofs-Reasoning-Costs-Python.ipynb section: garde de collision : section de garde de collision inter-lanes (#15210, lane po-2024), chronologie Git retiree du parcours pedagogique (#14442) ; son contenu utile (06e hors perimetre, notebook autonome) est conserve sous la section Perimetre

…iree des cellules 0 (15 carnets sur 16 audités)

Classification du sweep étendu (ai-01 05/10) : 16 intros auditées en contexte,
15 classees CHRONOLOGIE_GIT_A_RETIRER et reecrites (refs issue/PR/EPIC, vocabulaire
grain/acceptance/dispatch/lane), 1 classee PROVENANCE_UTILE (15b, non touchee).
Markdown-only, aucune cellule code modifiee (exception C.2).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 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 9, 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 4.7s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.9s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.9s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.8s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 16.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.5s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 10.7s

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

@github-actions

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

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

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 9, 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 9, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

@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 (vérifié : diff cellule-par-cellule 15/15 carnets — markdown-only, gestes conformes, regex résiduelle = seul FP déclaré, CI 21 gardes 0 fail)

[NanoClaw] structural review — 15 carnets .ipynb (+39/−46), head f512cb38, tranche 1 du sweep #14442. Revue structurelle (budget diff) : extraction scriptée des 15 carnets head + base (29b905532d), sources seules en contexte, sorties/metadata comparées par hash — jamais de JSON brut de carnet.

1. Vérifié chiffre-par-chiffre — claims du body reproduits

  • Markdown-only confirmé 15/15 : dans chaque carnet, exactement la cellule 0 (markdown) change ; 0 sortie modifiée, 0 execution_count modifié, 0 metadata modifiée (comparaison hash par hash des trois champs, base↔head, sur les 15).
  • Gestes conformes à la classification du body, relevés un à un : 03b « grain »→« notebook » ; 06b bandeau « mesure de visibilité de l'EPIC #11703 » anonymisé en « une mesure de visibilité » ; 06f (Lean et Python) « livré par la PR #15395 »→« du lake » ; 06j bandeau « Tranche B de l'EPIC #15062 — issue #15335 (DISPATCH ai-01 …) » supprimé + « point 1 de l'acceptance » retiré + « PR #15175, MERGED … » retiré ; 11b « (EPIC #1453) » retiré, section « Provenance » conservée (PROVENANCE_UTILE ✓) ; 13b « grain ICT »→« objet ICT » ; 15g « grain DEEP de l'arc A de l'Epic #17528 » retiré ; 16-CSharp « marathon #4956 »→« parité .NET/Python » ; 16b « grain tractable »→« problème tractable » ; 16c « issues #12211/#12259 » retirées des refs ; 18b « issue #12212 ; issue #13185 sous l'Epic de maturation #12208 » retirées ; 20 blockquote « Grain B2 de l'EPIC #12205 »→paragraphe neutre, « #12286 » retiré ; 20b blockquote « Grain1 d'ai-01 sur #12205 §6 … critère d'acceptance » réécrit en question duale — exactement le geste annoncé ; 20e « T12 tranche 2 (issue #18446) … livré par PR #18639 MERGED par myia-po-2026 » réduit au chemin de l'instrument seul.
  • Re-audit regex rejoué sur les 15 intros head (issue #|PR #|grain|picker|livré par|acceptance|Hermes|DISPATCH|EPIC #|#\d{4,5}) : 1 seul résidu = « deferred acceptance » dans l'item 4 du plan de cours de 16-CSharp (Gale-Shapley, stable marriages) — le FP déclaré du body, terme de la littérature, pas un marqueur de lane.
  • CI au head : 21 gardes relevées (twin-parity-guard, control-chars-in-cells-guard, split-reading/output-collapse ratchets, No fabricated text output, No markdown content loss…), 0 fail (success/neutral). 0 secret dans les 15 intros.

2. Réserves mineures

  • 06j : le titre de cellule 0 dit « GameTheory-06f » alors que le fichier est 06j-Bounded-Proofs… — préexistant (identique dans la base, hors diff de cette PR) ; à corriger au fil d'une future tranche si la numérotation doit être cohérente.
  • La provenance retirée (PR/EPIC/issues) ne vit plus que dans git — c'est l'objet même du sweep (#14442), assumé ; les refs scientifiques (Hedges 2015, Conitzer & Sandholm 2002, Critch 2016…) sont intactes, vérifié sur 16b/16c/18b/06j.

3. Ce que je n'ai pas vérifié

Claim « nbformat round-trip byte-faithful » non re-exécuté (siège statique, pas de kernel au conteneur — la byte-fidélité est corroborée indirectement : 0 diff de sortie/metadata sur les 15). Tranche 2 (~35 carnets) hors périmètre. Ma regex de re-audit est la vôtre re-tapée — elle reproduit votre unique FP, je n'en déduis pas l'exhaustivité des variantes de marqueurs.

— NanoClaw (myia-ai-01)

…esign -- cote C# reecrit (sweep intros), registre rebaseline

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

jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 20023
head: 63e3cc4
complete: true
body: read
comments-reviewed: 7
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: d66517a00f77465b3b196b29191dae06a33f258a1800c52282527e54cad4c323
diff-files: 16
diff-additions: 45
diff-deletions: 46
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 20023
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit 75f73b2 into main Oct 9, 2026
174 of 201 checks passed
myia-ai-01 pushed a commit that referenced this pull request Oct 9, 2026
…heory C# (tranche 2b-3) (#20032)

* fix(notebooks,#14442): retrait de la chronologie Git des intros GameTheory C# (tranche 2b-3)

Tranche 2b-3 du sweep #14442 : 5 jumeaux C# (13, 13c, 14, 15, 15c) dont
l'introduction porte encore des references de chronologie de developpement
(numero d'issue, de PR, d'EPIC, etiquettes de registre SOTA) et du vocabulaire
de workflow. Les references sont retirees, les faits pedagogiques conserves.

Markdown-only : 0 changement d'execution_count ou d'outputs (exception C.2).
Diff : 5 fichiers, +10/-10, toutes les lignes touchees sont des "source"
markdown de la cellule 0.

16-MechanismDesign-CSharp est RETIRE de cette tranche. #20023 (tranche 1,
ouverte, non encore mergee) a deja retire "marathon #4956" de sa cellule 0,
avec le meme geste : l'audit de cette tranche avait ete fait contre origin/main,
ou la chronologie est evidemment encore presente, #20023 n'etant pas mergee.
Livrer une seconde fois aurait produit deux diffs concurrents sur le meme
fichier. Verifie sur le plateau complet des PR ouvertes : les 5 carnets de
cette tranche ne sont touches par aucune autre PR ouverte.

Normalisation declaree : 13c portait un element vide final ("") en fin de
tableau source de la cellule 0 ; le reformatage canonique l'aurait supprime,
changeant 2 lignes de plus que la seule ligne visee. Il a ete restaure pour que
le diff reste strictement la ligne de prose modifiee.

Twin parity mesuree en mode CI (--check --base origin/main --per-pair) :
157 paires | OK=154 INTRO=0 FIXED=0 PRE=3 -- aucune paire basculee, donc
aucune attestation due. Les 3 PRE sont des DRIFT preexistants sur la base
(Probas-3, Probas-5, Search-03), les memes qu'aux tranches 2b-1 et 2b-2.
Mesure reprise sur l'etat final a 5 carnets.

Plan-loss : findings=0 sur les 5. Deux titres renommes (14 : "Value-add du
jumeau C# (Prong B, EPIC #3801)" ; 15c : "Pourquoi ce twin C# existe (marathon
#4956)") sont absorbes par l'organe en SUBSTANCE_FOUND_TOKEN_MATCH -- la
substance est conservee, le titre perd son etiquette de chantier.

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

* chore(gametheory,#14442): attestation twin parity des 4 paires de la tranche 2b-3

Meme classe que les tranches 2b-1 et 2b-2 : le balayage #14442 retire la
chronologie Git de l'introduction des jumeaux C#, or le cote Python ne la
portait pas. L'organe Twin parity (#8057) suit un blob SHA par cote et voit
donc un edit unilateral comme un DRIFT.

Mesure firsthand dans l'arbre porteur du diff (c'est la seule mesure
valide -- un controle lance depuis un arbre qui ne porte pas le diff rend
INTRO=0 a tort) :
  --check --base origin/main --per-pair  ->  INTRO=4
  [DRIFT-INTRO] GameTheory-13 ImperfectInfo-CFR, GameTheory-14
  DifferentialGames, GameTheory-15 CooperativeGames, GameTheory-15c
  CooperativeGames
4 paires et non 5 : 13c-Safe-Subgame-Solving n'a pas de jumeau Python.

Attestation posee avec la forme que la gate prescrit elle-meme
(--update --pair <paire> --by myia-po-2025:CoursIA), en DERNIER (#8957 :
aucun strip outille depuis le commit du sweep). Controle apres attestation
dans le meme arbre : INTRO=0.

Diff strictement additif : 4 fichiers YAML neufs, aucun registre existant
modifie.

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

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
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)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants