Repository navigation
fix(gametheory,#15615): reparer la couche de renvois cassee par la renum #15586 - #15987
Conversation
…num #15586 La renum #15586 a laisse des renvois FAUX-MAIS-NON-CASSES : les references pointent vers des fichiers qui existent encore, mais qui ne sont plus les notebooks dont la prose parle. Aucun lien mort, donc aucun instrument ne les voit -- il faut lire la cible. Perimetre = tranche « renvois » de l'etape 3 seulement : aucune permutation, aucun git mv, aucune renum (l'acceptance 2 de l'issue reserve l'ordre cible a une validation user/coordinateur). 13 substitutions dans 6 notebooks + 4 globs/count de index.qmd : - 23b : titre et prose « 27b » -> « 23b » (reliquats de 27b -> 23b) - 03a/03g : « GameTheory-21 = deux especes de fleches » -> 03h (21 est desormais Loi-II-Translateur-Life : le renvoi resolu sur le MAUVAIS notebook) - 04b : « notebook 17 » (definitions) -> GameTheory-02b-Lean-Definitions - 02b : prerequis « 1-4 » -> 01-02, prev 17 -> 02-NormalForm, Index -> README - 19 : chaine prev/next (retour de 16 crans) -> 18b / 20 - index.qmd : globs zero-paddes + count « 96 racine + 8 SocialChoice » Rendu index.qmd : 16 -> 35 notebooks racine couverts (sur 96). Preuve de non-changement de contenu : digest SHA-256 des cellules code identique a origin/main sur les 6 notebooks (execution_count + outputs preserves) -> exception C.2 markdown-only, pas de re-execution requise. La forme "source": [ligne, ...] du disque est preservee (un effondrement en chaine unique reecrirait chaque cellule source). See #15615 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
Grain: MED/tooling -- lane myia-po-2026:CoursIA -- prev: LIGHT/readme #15552 Diagnostic du rouge : le seul garde en echec est un faux positif du detecteur — correctif en review dans #15994Reproduction locale firsthand ( La comparaison de la cellule de navigation basse isole la cause : Le lien Les deux checks rouges de cette PR ( Correctif propose : #15994 — Apres merge de #15994 : cette PR doit rejouer ses checks sur une tete |
…ble n'est pas une perte (#15994) detect_md_content_loss.py ne comptait que les cibles *.ipynb : un lien de navigation re-cible d'un notebook vers le README.md de serie (convention du sommaire haut du meme fichier, et majoritaire sur les barres de navigation basse de GameTheory) etait rapporte comme LOST_NAV_LINKS (4 -> 3) et bloquait la PR #15987 dont l'objet meme etait cette re-cible. Le lien n'a pas disparu, sa cible a change. Contre-epreuve : la suppression reelle d'un lien decremente toujours le compte (test_nav_link_real_removal_still_signals). Detecteur rejoue sur les 6 notebooks de #15987 : findings=0 partout. 86/86 tests du detecteur + 5717 tests notebook_tools : aucun echec. See #8655. See #15987. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
Grain: MED/notebook-python — lane myia-po-2026:CoursIA — prev: DEEP/slides #15865
Contexte
La renumérotation mécanique (#14944, tranches #15586 / #15613) a refermé les trous de numérotation de la série
GameTheorysans toucher au contenu. Résultat : une partie de la couche de renvois est devenue fausse sans être cassée — les références pointent encore vers des fichiers qui existent, mais qui ne sont plus les notebooks dont la prose parle. Aucun lien mort, donc aucun instrument ne les voit.Cette PR est la tranche « renvois » de l'étape 3 de #15615. Elle ne réordonne rien : l'acceptance 2 exige un « ordre cible validé (user ou coordinateur) avant toute exécution », donc aucune permutation, aucun
git mv, aucune renumérotation ici. Le périmètre est exactement : réparer ce que la renum a cassé ou rendu faux.Livrable — 13 substitutions, mesure sur
origin/main(8cbe1828c)GameTheory-23b-Lean-Assignment-Native.ipynb27b → 23b)23b×3GameTheory-03a-Chemins-de-Swaps.ipynbGameTheory-21comme « deux espèces de flèches » — or21est désormaisLoi-II-Translateur-Life: le renvoi ne casse pas, il résout silencieusement sur le mauvais notebookGameTheory-03h×3GameTheory-03g-Derivation-Quotient.ipynbGameTheory-03h×2GameTheory-04b-Lean-NashExistence.ipynb02bGameTheory-02b-Lean-Definitions×2GameTheory-02b-Lean-Definitions.ipynb01-02×1GameTheory-02b-Lean-Definitions.ipynbprev=GameTheory-17-MultiAgent-RLGameTheory-02-NormalForm(palier parent) ×1GameTheory-19-Abstraction-a-Dette.ipynbprev=17etnext=03h— soit un retour de 16 crans dans la chaîne18b-Casser-la-Composition/20-Chemin-Minimal-Robinson-Goforth×2GameTheory/index.qmd[2-6],[89],1,7) → 16 notebooks rendus sur 96 ; count annoncé « 27 racine + 4 SocialChoice »96 + 8Contrôle positif du balayage : le même relevé trouve les renvois légitimes (
GameTheory-03a,GT-3b,GameTheory-04c…). Les constats ci-dessus sont des lectures, pas un silence d'instrument.Résolution des cibles — les 13 substitutions pointent vers des fichiers dont l'existence a été vérifiée :
03h-Deux-Especes-de-Fleches,18b-Casser-la-Composition,20-Chemin-Minimal-Robinson-Goforth,02-NormalForm,02b-Lean-Definitions,README.md. 0 cible manquante (vérifié fichier par fichier).Effet mesuré sur le rendu
index.qmd.ipynbracine sans variante_en/_output, 8 SocialChoice)Preuve de non-changement de contenu (C.2, exception markdown-only)
Aucune cellule de code n'a été touchée : digest SHA-256 des cellules
code(JSON canonique) identique àorigin/mainpour les 6 notebooks — doncexecution_countetoutputssont préservés, l'exception markdown-only de C.2 s'applique et aucune ré-exécution n'est requise.Le sérialiseur a été validé avant édition : re-sérialiser un notebook non modifié doit rendre les octets du disque à l'identique (contrôle sur les 6 fichiers, passé). La forme
"source": [ligne, ligne, …]du disque est préservée — nbformat accepte aussi une chaîne unique, mais l'effondrement du tableau réécrit chaque cellulesourceet noie l'édition dans le churn.Résiduel — hors périmètre, nommé
README.mdnon touché (volontairement). Sa table « Ce que chaque notebook apporte » (l.381-389) est en numérotation pré-Reorganisation : ranger en sides (-b/-c) les ajouts recents qui ont pris un numero sequentiel (GT-19..23, Lean-25/26, Audio 04-7..13, ICT-Life, rlpt_, Planners-13) #12375 et contredit la table « Partie 4 » du même fichier (l.312-316, mise à jour par renum(gametheory,#14944): refermer la colonne canonique (trou 20-23) -- tranche A #15586) : deux tables incompatibles. Non corrigé ici parce queverify_catalog_readme.pycroise le compte de prose du README avec le marqueurCATALOG-STATUS, et parce que la PR chore(catalog): scheduled auto-regenerate (long-lived PR) #15942 (bot catalogue) touche ce fichier. À traiter comme tranche propre.index.qmd(side-tracks lettrés +18..24b). Ajouter un bloc de listing au-delà de 17 est la décision d'ordre cible que l'acceptance 2 exige de faire valider avant exécution — je ne la préempte pas.Vérifications passées
detect_markdown_rendering.py --check— 6/6 « no new ERROR-level violations »detect_code_in_markdown_cells.py --check— « no new violations »check_source_collapse.py(ratchet feat(ratchet,#15901): detect notebook SOURCE collapse (advisory) #15903) — 0 notebook signalépre-commit— 10/10 hooks OK (dont gitleaks, H.3execution_count=null,cell-source-parses)03f,21,24,24b,06,06f,13,13d,06e,SocialChoice/01sont pris par fix(gametheory,#12797): un enonce par exercice + prose intermediaire #15957 / fix(gametheory,#12797): prose intermediaire runs CFR (13, 13d) — tranche 2 #15961 / docs(notebook,#12797): tranche 3 GameTheory -- 7 cellules de prose qui cassent les runs de code #15984 / feat(gametheory,#14033): banc humour falsifiable - paires minimales unfun GT-24b #15926 / fix(gametheory,#15210): distillation 06e Aumann/Nash/correlated -- rebase propre (1 fichier, +209/-195) #15862)Note de diff : le hook
fix-hr-separatora normalisé 11 séparateurs décoratifs---→***dans04b-Lean-NashExistence.ipynb(convention déjà en vigueur dans la série, cf la cellule Conclusion de23b). C'est l'auto-fix du dépôt qui s'applique dès qu'un fichier est touché, pas une édition de ma part.See #15615 (contribution partielle — les acceptance 1 et 2 restent ouvertes)
🤖 Generated with Claude Code