From 1c690667d0ee7e9c36a1475fb83edd135f8cabe5 Mon Sep 17 00:00:00 2001 From: jsboige Date: Sun, 13 Sep 2026 06:00:56 +0200 Subject: [PATCH 1/4] fix(search,#13751): standardize Search/Applications/CSP/ App-{6,8,16,19} Csharp -> CSharp (4 renames + 4 yaml refs) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Split tranche from #15813. Part of #15813. Le rouge sequencement de PR #15854 (pedagogy baseline orpheline, 4 fichiers App-{6,8,16,19}-CSharp manquant sur main) tient au décalage de nomenclature CSharp/Csharp sur main. Cette tranche livre la normalisation minimale qui fait disparaitre les 4 orphans : 8 fichiers au total, scope strict G-VAR-1 (narrow heritage). Fichiers (8) : Renames Windows core.ignorecase=true via intermediate name (Tell c.524 / ai-01 DM c.524 *Un renommage de casse sur Windows est un piege connu*) : - CSP/App-6-Minesweeper-Csharp.ipynb -> -CSharp.ipynb - CSP/App-8-MiniZinc-Csharp.ipynb -> -CSharp.ipynb - CSP/App-16-Crossword-CSP-Csharp.ipynb -> -CSharp.ipynb - CSP/App-19-ProceduralGeneration-WFC-Csharp.ipynb -> -CSharp.ipynb Modifs yaml (chemin double-cote) : - twin_pairs.d/app-6-minesweeper.yaml : -Csharp.ipynb -> -CSharp.ipynb - twin_pairs.d/app-8-minizinc.yaml : -Csharp.ipynb -> -CSharp.ipynb (+ 1 cross-ref minizinc) - twin_pairs.d/app-16-crossword-csp.yaml : -Csharp.ipynb -> -CSharp.ipynb - twin_pairs.d/app-19-proceduralgeneration-wfc.yaml : -Csharp.ipynb -> -CSharp.ipynb Hors scope (reste sur #15813 + tranches ulterieures) : - App-15b / App-17b / App-18b / Planners-4 : autre nomenclature CSharp/Csharp - Search/README.md + Search/Applications/README.md : rename -Csharp : -CSharp: (5 hits) - docs/curriculum/ia-classique.md : 6 hits - App-15b-SportsScheduling-CSharp.ipynb : 1 ref - App-17 yaml : 1 ref Sequencement documente Tell c.517 L2 + Tell c.523 : (1) merge cette tranche (#15920) -> orphans disparaissent (2) rebase #15854 sur main post-rename -> baseline validee (3) merge #15854 narrow +6/-6 (livraison c.514 inchangée) Tell c.1502 strict 0 merge/close d'autrui : geste coord (split PR d'autrui), le merge reste coord ai-01. Tell c.1053-L1 x 9d + c.480 PRE-FLIGHT BODY-EDIT-NOT-REFRESH. Co-Authored-By: Claude Haiku 4.5 (1M context) --- ...ord-CSP-Csharp.ipynb => App-16-Crossword-CSP-CSharp.ipynb} | 0 ...arp.ipynb => App-19-ProceduralGeneration-WFC-CSharp.ipynb} | 0 ...inesweeper-Csharp.ipynb => App-6-Minesweeper-CSharp.ipynb} | 0 ...pp-8-MiniZinc-Csharp.ipynb => App-8-MiniZinc-CSharp.ipynb} | 0 scripts/notebook_tools/twin_pairs.d/app-16-crossword-csp.yaml | 2 +- .../twin_pairs.d/app-19-proceduralgeneration-wfc.yaml | 2 +- scripts/notebook_tools/twin_pairs.d/app-6-minesweeper.yaml | 2 +- scripts/notebook_tools/twin_pairs.d/app-8-minizinc.yaml | 4 ++-- 8 files changed, 5 insertions(+), 5 deletions(-) rename MyIA.AI.Notebooks/Search/Applications/CSP/{App-16-Crossword-CSP-Csharp.ipynb => App-16-Crossword-CSP-CSharp.ipynb} (100%) rename MyIA.AI.Notebooks/Search/Applications/CSP/{App-19-ProceduralGeneration-WFC-Csharp.ipynb => App-19-ProceduralGeneration-WFC-CSharp.ipynb} (100%) rename MyIA.AI.Notebooks/Search/Applications/CSP/{App-6-Minesweeper-Csharp.ipynb => App-6-Minesweeper-CSharp.ipynb} (100%) rename MyIA.AI.Notebooks/Search/Applications/CSP/{App-8-MiniZinc-Csharp.ipynb => App-8-MiniZinc-CSharp.ipynb} (100%) diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP-Csharp.ipynb b/MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP-CSharp.ipynb similarity index 100% rename from MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP-Csharp.ipynb rename to MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP-CSharp.ipynb diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC-Csharp.ipynb b/MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC-CSharp.ipynb similarity index 100% rename from MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC-Csharp.ipynb rename to MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC-CSharp.ipynb diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper-Csharp.ipynb b/MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper-CSharp.ipynb similarity index 100% rename from MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper-Csharp.ipynb rename to MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper-CSharp.ipynb diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc-Csharp.ipynb b/MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc-CSharp.ipynb similarity index 100% rename from MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc-Csharp.ipynb rename to MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc-CSharp.ipynb diff --git a/scripts/notebook_tools/twin_pairs.d/app-16-crossword-csp.yaml b/scripts/notebook_tools/twin_pairs.d/app-16-crossword-csp.yaml index 8fef6fc57b..fe92a1d7b0 100644 --- a/scripts/notebook_tools/twin_pairs.d/app-16-crossword-csp.yaml +++ b/scripts/notebook_tools/twin_pairs.d/app-16-crossword-csp.yaml @@ -1,7 +1,7 @@ - name: App-16 Crossword CSP family: Search/Applications python: MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP.ipynb - csharp: MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP-Csharp.ipynb + csharp: MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP-CSharp.ipynb parity_level: native-both bridge_verdict: SOTA-OK bridge_verdict_reason: "Python = OR-Tools CP-SAT (cp_model + AddElement/inter constraints, dataclass) + numpy + matplotlib (11 cellules code). C# = Google.OrTools.Sat (NuGet, C# binding du MEME engine OR-Tools CP-SAT 9.11) + Tranche 1 from-scratch BCL pure (System.Linq/Text, 0 NuGet) PRESERVEE (12 cellules code). Verdict SOTA-OK (lib-vs-lib native-both) : les deux cotes invoquent le MEME moteur CP-SAT 9.11 (ortools.sat.python.cp_model <-> Google.OrTools.Sat.CpModel). Prong-B (#3801) : hierarchie sur grids 15x15 -- exact SOLUTION_OPTIMAL, backtracking from-scratch timeout sur les grands grilles -- discrimination mesuree. Tranche 1 from-scratch preservee intacte (byte-identique a main). Python met l'accent sur SOTA + viz matplotlib + experimentation comparative ; C# demontre from-scratch + binding NuGet. parity_level: native-both preserve." diff --git a/scripts/notebook_tools/twin_pairs.d/app-19-proceduralgeneration-wfc.yaml b/scripts/notebook_tools/twin_pairs.d/app-19-proceduralgeneration-wfc.yaml index d1fc7ebf3a..a7014a688a 100644 --- a/scripts/notebook_tools/twin_pairs.d/app-19-proceduralgeneration-wfc.yaml +++ b/scripts/notebook_tools/twin_pairs.d/app-19-proceduralgeneration-wfc.yaml @@ -1,7 +1,7 @@ - name: App-19 ProceduralGeneration WFC family: Search/Applications python: MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC.ipynb - csharp: MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC-Csharp.ipynb + csharp: MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC-CSharp.ipynb parity_level: native-both bridge_verdict: SOTA-OK bridge_verdict_reason: "Python = `wfc_cpsat` (module local qui wrappe `ortools` CP-SAT, moteur de production) + ipywidgets + matplotlib viz. C# = WFC from-scratch BCL pure (sections 1-8) + Tranche 2 : binding officiel **Google.OrTools CP-SAT** (NuGet 9.11.4210) portant le meme modele que le jumeau — adjacence par disjonction AddBoolOr, ratio sol 30-60 %, densite ennemis 5-20 %, comptes cles/coffres exacts, relaxation flow connectivite (source (0,0) forcee sol + arcs entrants), objectif variete via AddElement. Mesure 12x12 seed 42, instance identique au jumeau (cell 10) : 43 cases sol (30 %), 3 ennemis (7,0 % du sol), 1 cle, 1 coffre, connectivite BFS 7 % des cases sol (relaxation flow — meme ordre de grandeur que le ~7 % observe du jumeau), OPTIMAL ~1,5 s. Prong B : les contraintes globales (ratio, densite, comptes, connectivite) sont hors de portee du WFC pur (contraintes locales + backtracking) — le passage au solveur industriel fait valoir le moteur. parity_level: native-both : les deux cotes atteignent un moteur de production (OR-Tools CP-SAT)." diff --git a/scripts/notebook_tools/twin_pairs.d/app-6-minesweeper.yaml b/scripts/notebook_tools/twin_pairs.d/app-6-minesweeper.yaml index 99f5fa8547..a006686cac 100644 --- a/scripts/notebook_tools/twin_pairs.d/app-6-minesweeper.yaml +++ b/scripts/notebook_tools/twin_pairs.d/app-6-minesweeper.yaml @@ -1,7 +1,7 @@ - name: App-6 Minesweeper family: Search/Applications python: MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper.ipynb - csharp: MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper-Csharp.ipynb + csharp: MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper-CSharp.ipynb parity_level: native-both bridge_verdict: SOTA-OK bridge_verdict_reason: "Resolved 2026-08-12 (myia-po-2023:CoursIA, tranche 2). Le C# desormais branche Google.OR-Tools CP-SAT (#r nuget:Google.OrTools), le meme solveur de production que le twin Python. Le verdict RECOVERABLE-LOCAL pose par #10588 (ecart = NuGet first-class manquant) est clot : le port est livre. Le solveur from-scratch (section 4) reste pour enseigner la mecanique ; la tranche 2 (section 4bis) demontre la deduction par propagation UNSAT + la contrainte globale total-mines (Exercice 1), deux capacites que le backtracking manuel n'a pas. parity_level passe semantic -> native-both : les deux twins invoquent maintenant le solveur natif de leur ecosysteme (OR-Tools)." diff --git a/scripts/notebook_tools/twin_pairs.d/app-8-minizinc.yaml b/scripts/notebook_tools/twin_pairs.d/app-8-minizinc.yaml index 341fcab59d..c4bf0d5f18 100644 --- a/scripts/notebook_tools/twin_pairs.d/app-8-minizinc.yaml +++ b/scripts/notebook_tools/twin_pairs.d/app-8-minizinc.yaml @@ -1,12 +1,12 @@ - name: App-8 MiniZinc family: Search/Applications python: MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc.ipynb - csharp: MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc-Csharp.ipynb + csharp: MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc-CSharp.ipynb parity_level: native-both bridge_verdict: SOTA-OK bridge_verdict_reason: "Python = minizinc (binding Python pour MiniZinc modeling language, MIT, https://github.com/MiniZinc/libminizinc, dekker 2024) + OR-Tools CP-SAT (driver pour cross-solve depuis MiniZinc) + numpy + matplotlib (19 cellules code). C# = Google.OrTools.Sat (NuGet, C# binding OR-Tools CP-SAT 9.11) + System.* BCL, 14 cellules code. Verdict SOTA-OK (lib-vs-lib) : Python invoque minizinc (modeling language) + OR-Tools CP-SAT (solver backend) ; C# invoque Google.OrTools.Sat (C# binding du MEME engine OR-Tools CP-SAT 9.11). MiniZinc utilise OR-Tools comme solver backend par defaut, donc les deux cotes aboutissent au MEME moteur CP-SAT reel. L'asymetrie est mineure : Python passe par la couche modeling language MiniZinc (plus declarative, plus haut niveau d'abstraction), C# utilise directement le binding CP-SAT (plus proche du moteur). parity_level: semantic preserve (post-#10382 les deux cotes utilisent le MEME solver)." known_differences: - - '2026-08-31 : ATTESTATION UNILATERALE (PR #13659, lane myia-ai-01:CoursIA) -- reparation d''echappements JSON manges dans le markdown du cote Python. CAUSE : dans le .ipynb, la sequence dollar-\bot-dollar ecrite avec UN SEUL antislash est lue par le parseur JSON comme l''echappement \b (backspace, U+0008) ; la source chargee porte un caractere de controle et le notebook rend un dollar-ot-dollar prive de sa commande LaTeX. FIX : doubler l''antislash (\\bot). Le DRIFT est UNILATERAL parce que le DEFAUT l''est : la contrepartie App-8-MiniZinc-Csharp.ipynb (C#), 19 cellules markdown, a ete scannee sous controle positif (le litteral defectueux passe a json.loads doit rendre U+0008 -- assertion verifiee avant le scan) et ne porte AUCUN caractere de controle U+0008/U+000B/U+000C. Il n''y a donc rien a reparer de ce cote : l''attestation ne consacre aucune asymetrie de contenu. PORTEE DU DIFF cote repare (comparaison des JSON parses origin/main -> HEAD) : markdown uniquement, 0 cellule code touchee, 0 sortie modifiee, 0 execution_count deplace, 0 cellule ajoutee ou retiree.' + - '2026-08-31 : ATTESTATION UNILATERALE (PR #13659, lane myia-ai-01:CoursIA) -- reparation d''echappements JSON manges dans le markdown du cote Python. CAUSE : dans le .ipynb, la sequence dollar-\bot-dollar ecrite avec UN SEUL antislash est lue par le parseur JSON comme l''echappement \b (backspace, U+0008) ; la source chargee porte un caractere de controle et le notebook rend un dollar-ot-dollar prive de sa commande LaTeX. FIX : doubler l''antislash (\\bot). Le DRIFT est UNILATERAL parce que le DEFAUT l''est : la contrepartie App-8-MiniZinc-CSharp.ipynb (C#), 19 cellules markdown, a ete scannee sous controle positif (le litteral defectueux passe a json.loads doit rendre U+0008 -- assertion verifiee avant le scan) et ne porte AUCUN caractere de controle U+0008/U+000B/U+000C. Il n''y a donc rien a reparer de ce cote : l''attestation ne consacre aucune asymetrie de contenu. PORTEE DU DIFF cote repare (comparaison des JSON parses origin/main -> HEAD) : markdown uniquement, 0 cellule code touchee, 0 sortie modifiee, 0 execution_count deplace, 0 cellule ajoutee ou retiree.' - "Socle pedagogique commun : MiniZinc (modeling language CSP, OR-Tools CP-SAT cross-solve) comme application canonique. Les deux twins couvrent le meme socle theorique (formulation variables/domaines/contraintes, resolution, experimentation) avec parite semantique sur les concepts cibles." - "Idiomes framework : Python = minizinc + OR-Tools CP-SAT ; C# = Google.OrTools.Sat NuGet (C# binding du meme solver OR-Tools)." - "Asymetrie pedagogique : Python met l'accent sur le solveur SOTA (OR-Tools CP-SAT / library specialisee) + visualisation matplotlib + experimentation comparative ; le C# demontre l'implementation from-scratch en BCL pure (ou binding NuGet du meme solver pour App-8/10/15), presentation compacte. Meme socle theorique, leviers de demonstration differents." From 71cd0548900e7f9fc43580058ece519d8c63acbf Mon Sep 17 00:00:00 2001 From: jsboige Date: Sun, 13 Sep 2026 06:07:02 +0200 Subject: [PATCH 2/4] fix(search,#13751): update 3 outgoing navlinks to renamed -CSharp files The renames in the previous commit moved 4 notebooks from -Csharp.ipynb to -CSharp.ipynb, but 3 outgoing navlinks in adjacent notebooks (App-15b, App-18b, Planners-4) still pointed to the lowercase filenames. check-navlinks (PR gate) caught these 3 NEW broken links as a substance defect (Tell c.466 rouge substance != test-logic). Scope extension: 8 files -> 11 files (+3 navlink corrections). Each link is a single-line change in a markdown cell[0] nav block. No code cells, no outputs modified, no re-execution required. Tranche 1 narrow heritage EPIC #13751 still holds: 11 files vs 78 remaining in #15813. The 3 navlink fixes are the minimum cost to unblock the rename tranche without leaving broken links for the rest of the corpus. Co-Authored-By: Claude Haiku 4.5 (1M context) --- .../Applications/CSP/App-15b-SportsScheduling-CSharp.ipynb | 2 +- .../Hybrid/App-18b-HyperparameterTuning-CSharp.ipynb | 2 +- .../Planners/02-Classical/Planners-4-Fast-Downward-Csharp.ipynb | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MyIA.AI.Notebooks/Search/Applications/CSP/App-15b-SportsScheduling-CSharp.ipynb b/MyIA.AI.Notebooks/Search/Applications/CSP/App-15b-SportsScheduling-CSharp.ipynb index 97d0469904..ae8f80d872 100644 --- a/MyIA.AI.Notebooks/Search/Applications/CSP/App-15b-SportsScheduling-CSharp.ipynb +++ b/MyIA.AI.Notebooks/Search/Applications/CSP/App-15b-SportsScheduling-CSharp.ipynb @@ -10,7 +10,7 @@ "> **Twin C#** de [`App-15-SportsScheduling`](App-15-SportsScheduling.ipynb) (Python + OR-Tools CP-SAT + numpy + matplotlib).\n", "> Marathon **.NET / Python** (#4956), volet **Search / Applications / CSP**.\n", "\n", - "**Navigation** : [<< App-15 Python](App-15-SportsScheduling.ipynb) | [Index](../../README.md) | [App-16 Crossword >>](App-16-Crossword-CSP-Csharp.ipynb)\n", + "**Navigation** : [<< App-15 Python](App-15-SportsScheduling.ipynb) | [Index](../../README.md) | [App-16 Crossword >>](App-16-Crossword-CSP-CSharp.ipynb)\n", "\n", "## Objectifs d'apprentissage\n", "\n", diff --git a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-18b-HyperparameterTuning-CSharp.ipynb b/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-18b-HyperparameterTuning-CSharp.ipynb index 288c163ef8..d1a40d93d1 100644 --- a/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-18b-HyperparameterTuning-CSharp.ipynb +++ b/MyIA.AI.Notebooks/Search/Applications/Hybrid/App-18b-HyperparameterTuning-CSharp.ipynb @@ -7,7 +7,7 @@ "source": [ "# App-18b : Optimisation d'Hyperparametres - Jumeau C#\n", "\n", - "> **Twin C#** de [`App-18-HyperparameterTuning`](App-18-HyperparameterTuning.ipynb) (Python / scikit-learn + Optuna). Navigation : [<< App-17b VRP](App-17b-VRP-Logistics-Csharp.ipynb) | [Index](../../README.md) | [App-19 WFC >>](../CSP/App-19-ProceduralGeneration-WFC-Csharp.ipynb)\n", + "> **Twin C#** de [`App-18-HyperparameterTuning`](App-18-HyperparameterTuning.ipynb) (Python / scikit-learn + Optuna). Navigation : [<< App-17b VRP](App-17b-VRP-Logistics-Csharp.ipynb) | [Index](../../README.md) | [App-19 WFC >>](../CSP/App-19-ProceduralGeneration-WFC-CSharp.ipynb)\n", "\n", "## Objectif pedagogique\n", "\n", diff --git a/MyIA.AI.Notebooks/SymbolicAI/Planners/02-Classical/Planners-4-Fast-Downward-Csharp.ipynb b/MyIA.AI.Notebooks/SymbolicAI/Planners/02-Classical/Planners-4-Fast-Downward-Csharp.ipynb index 7f6f725e5e..fd5bf5bc76 100644 --- a/MyIA.AI.Notebooks/SymbolicAI/Planners/02-Classical/Planners-4-Fast-Downward-Csharp.ipynb +++ b/MyIA.AI.Notebooks/SymbolicAI/Planners/02-Classical/Planners-4-Fast-Downward-Csharp.ipynb @@ -32,7 +32,7 @@ "\n", "### Duree estimee : 45 minutes\n", "\n", - "> **Verdict SOTA (#3801 Prong A).** Ce twin C# est un **planificateur SAS+ pedagogique from-scratch** (SOTA-OK pour le concept du moteur). Le notebook Python [Planners-4-Fast-Downward](Planners-4-Fast-Downward.ipynb) invoque le **vrai Fast Downward** (IPC winner, Helmert 2006) via Docker + `unified-planning` = **RECOVERABLE-MACHINE** (le solveur reel n'est pas lie a .NET pedagogique). Le twin from-scratch rend visibles les internes (representation SAS+, opérateurs prevail/pre/eff, RPG, EHC) que Fast Downward cache dans son binaire C++ — compagnon pedagogique intentionnel, même pattern que le twin [App-19 WFC C#](../../../Search/Applications/CSP/App-19-ProceduralGeneration-WFC-Csharp.ipynb). Implementation en BCL .NET 9 **pure, 0 NuGet**." + "> **Verdict SOTA (#3801 Prong A).** Ce twin C# est un **planificateur SAS+ pedagogique from-scratch** (SOTA-OK pour le concept du moteur). Le notebook Python [Planners-4-Fast-Downward](Planners-4-Fast-Downward.ipynb) invoque le **vrai Fast Downward** (IPC winner, Helmert 2006) via Docker + `unified-planning` = **RECOVERABLE-MACHINE** (le solveur reel n'est pas lie a .NET pedagogique). Le twin from-scratch rend visibles les internes (representation SAS+, opérateurs prevail/pre/eff, RPG, EHC) que Fast Downward cache dans son binaire C++ — compagnon pedagogique intentionnel, même pattern que le twin [App-19 WFC C#](../../../Search/Applications/CSP/App-19-ProceduralGeneration-WFC-CSharp.ipynb). Implementation en BCL .NET 9 **pure, 0 NuGet**." ] }, { From 3894fd4ffea7f1ccc85d40119c40d46eeb4cb3c3 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Sun, 13 Sep 2026 06:17:02 +0200 Subject: [PATCH 3/4] =?UTF-8?q?fix(twin-parity,#8057):=20rebaseline=20App-?= =?UTF-8?q?15/18=20+=20Planners-4=20post=20narrow-h=C3=A9ritage=20navlink?= =?UTF-8?q?=20fix=20c.524?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Le narrow héritage geste du c.524 (commit 1581f733c) corrige 3 navlinks sortants cassés par le rename casse-pure d'App-{6,8,16,19} vers CSharp. Le twin parity audit (#8057) mesure les git blob SHA de chaque jumeau : corriger un contenu markdown bouge le SHA, donc 3 paires en DRIFT_INTRODUCED étaient attendues et leur substance est correcte. Rebaseline file-per-audit (#14911) -- 3 nouvelles attestations datées 2026-09-13 (Tell c.8957 : en DERNIER après strip outillé éventuel, ici aucun strip requis). Drift pré-existant (3 paires) hors scope -- PR dédiée cf #8264. Lane: myia-po-2023:CoursIA-2 Ref: PR #15909 tranche 1 split #15813 (Tell c.524 fondateur navlinks sortants cassés) --- .../0009-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml | 6 ++++++ .../0006-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml | 6 ++++++ .../0008-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml | 6 ++++++ 3 files changed, 18 insertions(+) create mode 100644 scripts/notebook_tools/twin_pairs.d/app-15-sportsscheduling/0009-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml create mode 100644 scripts/notebook_tools/twin_pairs.d/app-18-hyperparametertuning/0006-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml create mode 100644 scripts/notebook_tools/twin_pairs.d/planners-4-fast-downward/0008-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml diff --git a/scripts/notebook_tools/twin_pairs.d/app-15-sportsscheduling/0009-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml b/scripts/notebook_tools/twin_pairs.d/app-15-sportsscheduling/0009-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml new file mode 100644 index 0000000000..3c6c58659c --- /dev/null +++ b/scripts/notebook_tools/twin_pairs.d/app-15-sportsscheduling/0009-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml @@ -0,0 +1,6 @@ +date: '2026-09-13' +by: lane myia-po-2023:CoursIA-2 +python_sha: 25bd1e99bac08467847225c6c1bef27284108879 +csharp_sha: ae8f80d872996154014b6fd4bc746e5f7b820240 +content_python_sha: 6bc97a786ead73280efd5ab9062fd87f8625ba308268932374d4234885dbbb46 +content_csharp_sha: d7499933e03ca2e5c2d5f88b78b8f6183492c880a2b94cc1f1fe07700f45fff3 diff --git a/scripts/notebook_tools/twin_pairs.d/app-18-hyperparametertuning/0006-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml b/scripts/notebook_tools/twin_pairs.d/app-18-hyperparametertuning/0006-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml new file mode 100644 index 0000000000..924588e6af --- /dev/null +++ b/scripts/notebook_tools/twin_pairs.d/app-18-hyperparametertuning/0006-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml @@ -0,0 +1,6 @@ +date: '2026-09-13' +by: lane myia-po-2023:CoursIA-2 +python_sha: 17ba5d66c7ff9ea1eae59c503364c77210b9c50a +csharp_sha: d1a40d93d1e1e33d98d3ea587e08700047bfcadb +content_python_sha: 73920f7e8592771a8d78b6b7e285242e81f2e5c883da5d5ba5097102d78ce505 +content_csharp_sha: 61f67ec6bb0f8f7dc3d71215c168723efe443be68a543bc71bb069b011e336ea diff --git a/scripts/notebook_tools/twin_pairs.d/planners-4-fast-downward/0008-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml b/scripts/notebook_tools/twin_pairs.d/planners-4-fast-downward/0008-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml new file mode 100644 index 0000000000..b52c23f968 --- /dev/null +++ b/scripts/notebook_tools/twin_pairs.d/planners-4-fast-downward/0008-2026-09-13-lane-myia-po-2023-CoursIA-2.yaml @@ -0,0 +1,6 @@ +date: '2026-09-13' +by: lane myia-po-2023:CoursIA-2 +python_sha: 90853b19dc0d5375a47c21372a4664aa4bff5786 +csharp_sha: fd5bf5bc76ac9c24d2c9268fe15e4ccaaeb16bf5 +content_python_sha: e2274aa89c2aca8823dd3cc1b2f8a5e3f61158a6fd9f3847251e11ddaa97d551 +content_csharp_sha: d9b439a500f192e57eb0f9126a4e36d0e7dddc9f8b56ad21112f67478f8070e6 From e9f8d3f1f774712877f726415c4d7d4efc338b8b Mon Sep 17 00:00:00 2001 From: jsboige Date: Mon, 14 Sep 2026 02:43:55 +0200 Subject: [PATCH 4/4] fix(search,#13751): pedagogy baseline 4 orphelins -Csharp -> -CSharp (#15909 4e rouge VIVANT) Le guard Pedagogy density baseline (#13815) rougissait sur 4 cles -Csharp minuscule (App-{6,8,16,19}-Minesweeper/MiniZinc/Crossword/WFC) parce que la PR renomme les fichiers .ipynb en -CSharp majuscule sans re-cler le baseline.json : les 4 cles pointaient alors vers des fichiers qui n'existaient plus sur disque. Recette tracee par ai-01 (DM msg-20260913T231202-inrnz4) : renommer les 4 cles dans le baseline en preservant leur flottant, count inchange. N'utilise PAS --update-baseline (re-ecrit toute la population, retro-fit que la docstring du baseline interdit). Validation : - python scripts/notebook_tools/pedagogy_density.py --check-orphans -> OK: 811 cles du baseline, 0 orpheline - JSON parse OK, count=811, 4 flottants preserves (787.75 / 646.2 / 1083.273 / 1214.857) - Diff baseline: 4 insertions, 4 deletions, format preserve Refs : - PR #15909 (cette branche feature/15813-tranche1-rename-apps-6-8-16-19) - DM ai-01 [LEVEE + ORDRE] msg-20260913T231202-inrnz4 - Tell c.553 fondateur cycle c.524 (rebascule narrow heritage) Co-Authored-By: Claude Haiku 4.5 (1M context) --- scripts/notebook_tools/pedagogy_density_baseline.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/notebook_tools/pedagogy_density_baseline.json b/scripts/notebook_tools/pedagogy_density_baseline.json index 364658f4a3..38f570badf 100644 --- a/scripts/notebook_tools/pedagogy_density_baseline.json +++ b/scripts/notebook_tools/pedagogy_density_baseline.json @@ -448,9 +448,9 @@ "MyIA.AI.Notebooks/Search/Applications/CSP/App-11b-Picross-CSharp.ipynb": 849.417, "MyIA.AI.Notebooks/Search/Applications/CSP/App-15-SportsScheduling.ipynb": 1181.588, "MyIA.AI.Notebooks/Search/Applications/CSP/App-15b-SportsScheduling-CSharp.ipynb": 1475.733, - "MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP-Csharp.ipynb": 787.75, + "MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP-CSharp.ipynb": 787.75, "MyIA.AI.Notebooks/Search/Applications/CSP/App-16-Crossword-CSP.ipynb": 660.25, - "MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC-Csharp.ipynb": 646.2, + "MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC-CSharp.ipynb": 646.2, "MyIA.AI.Notebooks/Search/Applications/CSP/App-19-ProceduralGeneration-WFC.ipynb": 705.062, "MyIA.AI.Notebooks/Search/Applications/CSP/App-1b-NQueens-CSharp.ipynb": 870.071, "MyIA.AI.Notebooks/Search/Applications/CSP/App-2-GraphColoring-Statistical-Validity-Python.ipynb": 1031.273, @@ -464,11 +464,11 @@ "MyIA.AI.Notebooks/Search/Applications/CSP/App-4b-JobShopScheduling-CSharp.ipynb": 1189.7, "MyIA.AI.Notebooks/Search/Applications/CSP/App-5-Timetabling-CSharp.ipynb": 1304.6, "MyIA.AI.Notebooks/Search/Applications/CSP/App-5-Timetabling.ipynb": 887.35, - "MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper-Csharp.ipynb": 1083.273, + "MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper-CSharp.ipynb": 1083.273, "MyIA.AI.Notebooks/Search/Applications/CSP/App-6-Minesweeper.ipynb": 964.652, "MyIA.AI.Notebooks/Search/Applications/CSP/App-7-Wordle.ipynb": 1009.333, "MyIA.AI.Notebooks/Search/Applications/CSP/App-7b-Wordle-CSharp.ipynb": 698.0, - "MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc-Csharp.ipynb": 1214.857, + "MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc-CSharp.ipynb": 1214.857, "MyIA.AI.Notebooks/Search/Applications/CSP/App-8-MiniZinc.ipynb": 1171.474, "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-10-Portfolio.ipynb": 1120.158, "MyIA.AI.Notebooks/Search/Applications/Hybrid/App-10b-Portfolio-CSharp.ipynb": 1966.273,