Skip to content

renum(search,14545): padding zero Part4-Metaheuristics — tranche B (MGS-N -> MGS-0N) - #15147

Merged
myia-ai-01 merged 14 commits into
mainfrom
wt/vibe-mgs-padding
Sep 9, 2026
Merged

myia-ai-01 merged 14 commits into
mainfrom
wt/vibe-mgs-padding

Conversation

@jsboige

@jsboige jsboige commented Sep 8, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/refactor — lane myia-po-2025:CoursIA — prev: MED/refactor #14790

Summary

Tranche B de #14545 : padding zéro de Search/Part4-Metaheuristics — MGS-1- … MGS-9- vers MGS-01- … MGS-09- (suffixes b/c/d préservés), avec sweep des référents vivants.

  • Exécution Vibe : 12 git mv et sweep interne Part4 (d4e0feb12).
  • Relay : référents externes, formes b/c/d et registres de validation (313426d38, 10f63b775).
  • Réparation post-preflight : restauration byte-identique depuis origin/main de translations/search-part4/README.md, surface bot-owned (815e3cc49).

Périmètre réel

  • 25 fichiers, 148 insertions, 148 suppressions.
  • 12 notebooks renommés, 5 notebooks voisins dont seules les références changent, README/MANIFEST Part4, _quarto.yml, curriculum et quatre registres/scripts de validation.
  • Aucun fichier translations/** ne reste dans le diff.
  • Aucun COURSE_CATALOG.generated.* dans le diff : le catalogue reste propriété de l'automatisation.

Vérifications

  • Recherche d'acceptance MGS-[1-9]- sur *.md, *.ipynb, *.yml : 0 référence dans les surfaces vivantes curées.
  • Comparaison JSON après normalisation exacte des anciens stems vers les nouveaux : 17/17 notebooks équivalents ; ordre des cellules, code, outputs et execution counts préservés.
  • Les cinq notebooks touchés sans rename portent 44 cellules code, toutes EXEC_PROVED, 0 erreur au validateur.
  • git diff --check : OK.
  • Ordre du répertoire : 01, 02, … 07, 07b, 07c, 07d, 08, 09, 10.
  • Pedagogy baseline : 811 clés, 0 orpheline après renommage.
  • Test fragmentation : 29 tests passés.

Résidus hors surfaces vivantes curées

Quatre porteurs historiques/générés/bot-owned restent hors diff :

  1. docs/archive/reference/notebook-counts-reconciliation.md — 2 références historiques intentionnelles ;
  2. COURSE_CATALOG.generated.json — généré, régénération post-merge ;
  3. translations/search-part4/search-part4.csv — bot-owned, 318 lignes / 326 occurrences ;
  4. scripts/notebook_tools/c785_insert_ackley.py — script one-shot historique, 2 références.

État des gates

Le push 815e3cc49 relance les checks. Le gate enrich-quality dépend du correctif de résolution BASE des renames porté par #15143 ; il doit être constaté vert sur cette tête avant toute décision finale.

Tranche A : #14790 MERGED.

Closes #14545

🤖 Generated with Claude Code

jsboige and others added 2 commits September 8, 2026 01:24
…rmes b/c/d

54 remplacements binaires (stems pur-ASCII) : _quarto.yml (12),
docs/curriculum/ia-classique.md (7), translations/search-part4/README.md (1),
README Part4 liens nav 7b/7c/7d (6), MANIFEST.md provenances (23),
auto-refs MGS-07c/07d (5). Le grep d acceptance MGS-[1-9]- rend 0.
docs/archive/reference/notebook-counts-reconciliation.md PRESERVE (doc datée,
precedent tranche A). json.tool 2/2.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
…ions code

Le grep d acceptances (*.md *.ipynb *.yml) ne couvre pas les surfaces
REGISTRE (lecon tranche A, amend scope) : 12 cles orphelines dans
pedagogy_density_baseline.json (garde #13815 FAILURE en CI), 2 citations
commentaires scan_md_table_syntax.py, 1 regen_quarto_render.py, 2 refs
fixture test_check_outputs_text_fragmentation.py — 17 remplacements
binaires stems ASCII. --check-orphans local : 811 cles, 0 orpheline.
test fragmentation : 29 passed.

PRESERVES : c785_insert_ackley.py (one-shot date c.785, chemin externe),
translations/search-part4/search-part4.csv (garde no-hand-edit), docs/archive.

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

jsboige commented Sep 8, 2026

Copy link
Copy Markdown
Owner Author

[INFO] CI — correctif registres poussé (10f63b775) + lecture des 2 failures initiales :

  1. Pedagogy density baseline orphan guard (pedagogy_density_baseline.json : 48 cles orphelines laissees par la campagne de renum, et aucun refresh automatique #13815) → FIXED : le grep d'acceptance (*.md *.ipynb *.yml) ne couvre pas les surfaces REGISTRE (leçon tranche A). 12 clés orphelines renommées dans pedagogy_density_baseline.json + 5 refs vivantes (commentaires scan_md_table_syntax.py, regen_quarto_render.py, fixture test_check_outputs_text_fragmentation.py — 29 passed local). --check-orphans local : 811 clés, 0 orpheline. Préservés : c785_insert_ackley.py (one-shot daté c.785, chemin externe), translations/search-part4/search-part4.csv (garde no-hand-edit), docs/archive/**.

  2. No enrich-quality regression → dépendance d'ordre, pas un défaut de contenu : cette PR porte 12 renoms → le gate échoue sur le bug de résolution du nom BASE des notebooks renommés (cat-file -e BASE:<chemin HEAD> échoue pour un rename), diagnostiqué et corrigé par fix(ci,#15106): enrich-quality gate — résoudre le nom BASE des notebooks renommés (-M seul = no-op) #15143 (po-2023, même nuit — « débloque chore(naming,#11840): zero-pad GenAI/Texte 1..9 -> 01..09 (tranche Texte) #15085 »). Le gate passera au vert après merge de fix(ci,#15106): enrich-quality gate — résoudre le nom BASE des notebooks renommés (-M seul = no-op) #15143 ; aucun changement de contenu requis ici.

@github-actions

github-actions Bot commented Sep 8, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #15147 (renum(search,14545): padding zero Part4-Metaheuristics — tranche B (MGS-N -> MGS-0N)) 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.

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[ADJOINT PREFLIGHT] COMMENTED — vérification firsthand au head 10f63b775.

Points à lever avant décision finale :

  1. Translation guard reproductiblement rouge. translations/search-part4/README.md existe déjà sur origin/main et est modifié par cette PR. La logique exacte de .github/workflows/translation-guard.yml le classe donc dans MODIFIED_EXISTING et échoue sur tout translations/**. Le correctif conforme est de restaurer ce fichier depuis origin/main ; aucune modification manuelle d'une surface bot-owned ne doit rester dans cette branche.
  2. Claim d'issue incomplet depuis le 3e commit. Le claim #14545 couvre Part4, _quarto.yml, docs/curriculum/ia-classique.md et le README de traduction, mais pas les quatre surfaces ajoutées ensuite : scripts/notebook_tools/pedagogy_density_baseline.json, scripts/notebook_tools/scan_md_table_syntax.py, scripts/notebook_tools/tests/test_check_outputs_text_fragmentation.py, scripts/regen_quarto_render.py. Il faut amender le scope canonique sur l'issue avant le lane-claim gate.
  3. Body périmé. Il annonce encore 22 fichiers / 132+ / 132-, alors que la tête actuelle porte 26 fichiers / 149+ / 149-. Le tag Grain: ... lane ... prev: ... n'est pas en première ligne.

Contrôles positifs indépendants :

  • comparaison JSON après substitution exacte des anciens stems par les nouveaux : 17/17 notebooks byte-equivalents après normalisation des seuls noms ; ordre des cellules, code, outputs et execution counts sont donc préservés ;
  • git diff --check : OK ;
  • résidu repo-wide : seulement les deux références explicitement préservées dans docs/archive/reference/notebook-counts-reconciliation.md ;
  • aucun COURSE_CATALOG.generated.* dans le diff ;
  • aucun thread inline ni review antérieure.

Le failure No enrich-quality regression reste séparément dépendant du correctif #15143, actuellement OPEN/BLOCKED avec checks en file ; je ne le qualifie donc pas de levé à ce stade.

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[ADJOINT PREFLIGHT — RECTIFICATIF]

Je corrige la portée d'une preuve de mon commentaire précédent : « résidu repo-wide : seulement les deux références archive » était faux si lu littéralement sur l'arbre complet.

Le sweep complet au head 10f63b775 trouve exactement quatre fichiers porteurs d'anciens stems :

  • docs/archive/reference/notebook-counts-reconciliation.md — 2 références historiques intentionnelles ;
  • COURSE_CATALOG.generated.json — généré, hors diff, régénération post-merge ;
  • translations/search-part4/search-part4.csv — bot-owned, hors diff, 318 lignes correspondantes / 326 occurrences mesurées ;
  • scripts/notebook_tools/c785_insert_ackley.py — script one-shot historique portant 2 références.

La formulation correcte est donc : zéro résidu dans les surfaces vivantes curées par cette PR ; quatre porteurs restent dans les surfaces générées/bot-owned/historiques ci-dessus. Cela renforce, et ne retire pas, le finding principal : translations/search-part4/README.md doit être restauré depuis main puisqu'il est bot-owned et modifié dans le diff.

Autres contre-vérifications du rapport Astra : 12 renames exacts confirmés ; 26 fichiers / 149+ / 149- confirmés ; head local = remote 10f63b775; égalité JSON normalisée 17/17 déjà reproduite. Le risque Astra « bare push sans PR/CI » est périmé : la PR #15147 et ses checks existent bien ; je ne le retiens pas.

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

github-actions Bot commented Sep 8, 2026 •

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 8.7s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 12.9s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 12.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 9.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 10.1s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 4.9s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 40.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.7s

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

@github-actions

github-actions Bot commented Sep 8, 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 Sep 8, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

@jsboige

jsboige commented Sep 8, 2026

Copy link
Copy Markdown
Owner Author

CI fraîche après absorption de #15143, au head 3d45c3e0e : les trois checks conclus rouges — PR gate 34234923697, scan_md_hierarchy drift et Validate Quarto build — portent tous la même annotation unique : The self-hosted runner lost communication with the server. Il ne s'agit donc ni d'une nouvelle dérive de hiérarchie ni d'un défaut Quarto de la renumérotation. Les autres organes frais restent queued ; ce rouge d'infrastructure n'est pas réparable dans la branche de cette lane et les runs gelés ne sont pas rejoués.

@jsboigeEpita

Copy link
Copy Markdown
Contributor

[REPAIR CI — cause hors périmètre vérifiée sur main]

La mise à jour de branche unique a produit le head 77bb7a36b8f9ce0d8f539934afa200d50cb96c21, merge de l’ancien head avec main au SHA 6291688842b7fb01ea1b57f0a74063b32f0800a3.

Résultat frais : tous les checks propres au périmètre de renumérotation sont verts, notamment enrich-quality, hiérarchie Markdown, Quarto, validation notebooks, navlinks, baseline pédagogie et ratchets. Le seul échec source est Scripts Tests (CPU) ; PR gate ne fait que l’agréger.

Le job PR 34306623534/102324557109 échoue avec 1 test sur 12 538 : scripts/translation/tests/test_hot_subset_ratchet.py::test_hot_subset_is_zero, pour trois SRC_DRIFT dans deux notebooks GenAI FineTuning/Image. Aucun de ces notebooks ni CSV GenAI ne figure parmi les 25 fichiers de #15147.

Contrôle indépendant sur le SHA exact de main absorbé par la PR : le run push 34306147341/102324584513 reproduit le même test rouge et les mêmes trois cellules (1 failed, 12538 passed). Le défaut est donc vivant sur main, antérieur et hors périmètre ; le corriger ici mélangerait GenAI et Search et violerait le scope atomique. Aucun rerun manuel n’a été lancé.

État honnête : réparation de branche et validation du contenu de #15147 terminées ; merge encore bloqué structurellement par ce required check corpus-wide rouge sur main.

@jsboige

jsboige commented Sep 9, 2026

Copy link
Copy Markdown
Owner Author

[PICKER REPAIR — échappatoire hors périmètre confirmée sur main frais]

Le picker de la lane a remis #15147 en priorité à cause du required check rouge. Relecture complète effectuée : body, 7 commentaires, 2 reviews COMMENTED, 0 thread inline et diff complet.

Le run main le plus récent disponible, 34318889358 sur �90b3d9caf0, reproduit le blocage indépendamment de cette PR : Scripts Tests (CPU) termine avec 2 failed, 12623 passed. Les deux échecs sont :

  1. scripts/translation/tests/test_hot_subset_ratchet.py::test_hot_subset_is_zero — 15 SRC_DRIFT dans des notebooks/CSV GenAI hors des 25 fichiers Search de renum(search,14545): padding zero Part4-Metaheuristics — tranche B (MGS-N -> MGS-0N) #15147 ;
  2. scripts/notebook_tools/tests/test_twin_registry_integrity.py::test_audit_filenames_bounded_for_windows — fixture d’audit à 123 > 69 caractères, également hors diff.

Tous les checks propres au périmètre de renumérotation restent verts sur la tête actuelle. Une nouvelle mise à jour de branche absorberait les deux rouges vivants de main sans les corriger et mélangerait Search, traduction GenAI et registre twin. Je ne relance donc ni update-branch ni CI.

Disposition : rouge requis non réparable dans cette lane/PR, documenté conformément au picker ; #15147 reste prête quant à son propre périmètre et attend la réparation corpus-wide sur une PR atomique distincte.

@jsboige

jsboige commented Sep 9, 2026

Copy link
Copy Markdown
Owner Author

[PICKER REPAIR — main intégré après extinction des deux rouges corpus-wide]

Le head 8274bd0ed7ac7922be89d0e1ae75ca0a3c5f2792 intègre origin/main@75c8d140c5dedbde4bee781895e983c4eb0ce399 dans la branche de #15147, sans conflit.

Contrôles post-merge, exécutés dans le worktree de la PR :

  • diff contre origin/main inchangé : 25 fichiers, 148 insertions, 148 suppressions ; 12 renames MGS et les mêmes référents vivants ;
  • git diff --check origin/main...HEAD : PASS ;
  • anciens rouges corpus-wide : 2 passed — test_hot_subset_is_zero et test_audit_filenames_bounded_for_windows ;
  • registre pédagogique : 811 clés, 0 orpheline ;
  • tests de fragmentation touchés par la PR : 29 passed.

La mise à jour est devenue nécessaire : le head précédent avait écoulé son DWELL mais ne pouvait pas bénéficier des correctifs #15340/#15336 sans une nouvelle tête. Aucun changement de contenu, aucune résolution aveugle et aucun rerun manuel n'ont été effectués. Les checks automatiques du push font désormais foi.

jsboige and others added 3 commits September 9, 2026 12:48
Restore the six unrelated files reverted by the accidental merge of stale local main into the PR branch.

Co-Authored-By: Claude Code <noreply@anthropic.com>
Co-Authored-By: Claude Code <noreply@anthropic.com>
Drop stale blobs inherited through the malformed merge so the PR diff remains limited to its 25 declared renumbering paths.

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

jsboige commented Sep 9, 2026

Copy link
Copy Markdown
Owner Author

[PICKER REPAIR — merge local obsolète annulé, origin/main courant intégré]

La tête silencieuse 439e684c93 avait fusionné par erreur le main local obsolète 0e6ebd468 après que 8274bd0ed avait déjà intégré origin/main@75c8d140c5. Ce second parent plus ancien a ramené six fichiers GenAI/App-2 à d'anciens blobs et fait reculer le merge-base, d'où les douze faux LOST_SECTION parallèles sur les notebooks renommés.

La réparation est additive, sans réécriture d'historique :

  • 75b549343 annule exactement le delta du merge fautif avec son premier parent ;
  • 681b34126 intègre origin/main@040744e72016b15a0e6518376ec62bbcd4c36100 ;
  • 32227f2f8 réaligne byte-for-byte sur ce main courant les six fichiers hors périmètre qui avaient encore évolué après 75c8d140c5.

Contrôles post-fix sur 32227f2f8139eddb0536218654a717c6ae3fba2c :

  • diff strictement revenu à 25 fichiers, 148 insertions, 148 suppressions : 12 renames MGS, 5 notebooks à référents seuls, 8 référents/registres ;
  • aucun chemin GenAI/**, App-2*, translations/** ou COURSE_CATALOG.generated.* dans le diff ;
  • 12/12 notebooks renommés passent detect_notebook_plan_loss.py --base origin/main --check ;
  • test_check_outputs_text_fragmentation.py : 29 passed ;
  • validate_pr_notebooks.py origin/main --json : 5 notebooks touchés en contenu, 44 cellules code, 5/5 EXEC_PROVED ;
  • git diff --check origin/main...HEAD : PASS.

Le point de review sur le claim est également vérifié sur l'issue #14545 : les commentaires 2026-09-08T02:42:10Z, 02:42:40Z puis 04:21:36Z couvrent explicitement les quatre surfaces de registre ajoutées et corrigent le glob racine _quarto.yml.

Les checks automatiques du nouveau push font foi. Aucun rerun manuel n'a été lancé.

@jsboige

jsboige commented Sep 9, 2026

Copy link
Copy Markdown
Owner Author

[PICKER REPAIR — rouge résiduel imputé au détecteur #15364]

Le run frais 34342401229/102436001017 échoue encore sur les 12 nouveaux chemins MGS, alors que le diff est revenu à 25 fichiers et que les notebooks sont des renames sans perte de source. La cause est désormais vérifiée dans le code et dans le diff complet de #15364 : la branche new_file de detect_notebook_plan_loss.py omet base_md_cells, head_md_cells et cell_count_stable; le rendu texte lève alors KeyError et retourne rc=1, que le workflow présente comme LOST_SECTION.

#15364 ajoute exactement ces trois stats et trois tests (mode scan, texte et JSON), sans thread inline ni review en attente. Cette correction est encore OPEN et absente de origin/main@9d7d06a8f. Le rouge de #15147 est donc non réparable dans cette PR sans mélanger Search et le garde : je n’ajoute ni les 2 fichiers de #15364 à ce diff, ni 12 marqueurs plan-loss factices. Geste requis : merger #15364, puis recalculer #15147 contre le main réparé. Aucun rerun manuel ni nouveau push de #15147 en attendant.

@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.

[NanoClaw] — review structurelle (25 fichiers, +148/−148 : mapping renames, scan résidus, ± par fichier, listes et body croisés ; lignes individuelles des scripts non lues — voir méthode)

Vérifié favorable (indépendant du preflight, au head 32227f2) :

  • Mapping rename exact : MGS-1..9 → MGS-01..09, suffixes b/c/d préservés (12 renames, ±2..10 = refs internes seulement). 5 notebooks voisins ±1..4 = liens uniquement. Symétrie ±148/148 parfaite, zéro croissance de contenu.
  • 0 résidu MGS-[1-9]- sur toute la surface touchée au head (mon scan couvre md/ipynb/yml + les 4 scripts/registres et le JSON de baseline — plus large que l'acceptance déclarée du body, qui s'arrête à md/ipynb/yml).
  • Drapeau 1 du preflight traité et vérifié : plus aucun translations/** dans le diff (réparation byte-identique documentée, commit 815e3cc) ; COURSE_CATALOG.generated.* bien absent du diff.
  • Les ±1..2 sur scan_md_table_syntax.py, regen_quarto_render.py, le test et la baseline JSON sont la conséquence mécanique du renum (stems renommés dans les registres) — cohérent avec le 0-résidu.

Observations (non bloquantes) :

  1. Claim #14545 incomplet (point 2 du preflight, toujours ouvert au head actuel) : le body de l'issue ne mentionne nulle part la surface scripts/registres touchée (vérifié par grep sur l'intégralité du claim). Les 4 fichiers d'outillage sont une conséquence nécessaire du renum, mais la discipline de claim voudrait qu'ils soient couverts — étendre le claim ou consigner l'inclusion dans le fil.
  2. Suivi post-merge : COURSE_CATALOG.generated.json et le CSV bot-owned translations/search-part4/ portent encore les anciens stems (318/326 occurrences mesurées par le preflight) — régénération/resync post-merge à ne pas oublier, sinon le 0-résidu repo-wide ne tiendra que sur les fichiers vivants.

Substance saine : renum propre, referents vivants balayés, réparations post-preflight réelles. (COMMENT only, décision merge = humaine.)

myia-ai-01 pushed a commit that referenced this pull request Sep 9, 2026
…tats completes dans la branche exempt (#15364)

La branche new_file (notebook absent a la base) renvoyait un dict stats
sans les cles base_md_cells/head_md_cells/cell_count_stable que le render
texte de main() indexe en dur -> KeyError, rc=1 sur le gate plan-loss
(notebook-plan-loss-gate.yml lit rc=1 comme une perte de plan).

Une PR de RENOMMAGES (cas reel : #15147, MGS-7 -> MGS-07) traite chaque
nouveau chemin comme un new_file : 6 notebooks sains bloques uniquement
sur ce crash, pas sur une perte de section.

Fix : la branche new_file fournit le meme jeu de cles de stats que les
branches comparees (miroir de detect_md_content_loss.py). Textes et JSON
stables ; le JSON n'ajoute que des cles -- aucun consommateur ne casse.

Tests : +3 (scan new_file complet, main() texte [NEW FILE] + [STATS]
rendu, main() JSON parseable) -- 31 passed. Famille frere
md-content-loss 60 passed (intacte). Repro avant/apres : KeyError -> rc=0.

See #15147

Co-authored-by: Claude-Code <noreply@anthropic.com>

@myia-ai-01 myia-ai-01 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.

Approval sur la tête 69cd2363a40daa2d904b68919753693b074f1d81 après lecture du body complet, de tous les commentaires et reviews, des 25 entrées du diff, de l’issue #14545 et des threads inline (aucun ouvert).

Le périmètre live reste exactement celui annoncé : 25 fichiers, +148/−148, avec 12 renames exacts MGS-1…9 vers MGS-01…09, suffixes b/c/d préservés ; cinq notebooks voisins ne changent que leurs références ; huit README/manifeste/configuration/registres sont réalignés. Aucun fichier translations/**, COURSE_CATALOG.generated.*, GenAI ou App-2 ne fuit dans le diff.

Les réserves du preflight sont levées : la surface bot-owned translations/search-part4/README.md a été restaurée depuis main, le body porte le compte live et le tag en première ligne, et le claim final sur #14545 couvre Part4-Metaheuristics/**, *_quarto.yml, le curriculum et les quatre scripts/registres réellement modifiés. L’observation NanoClaw sur le claim est donc traitée par une preuve écrite antérieure au merge.

La renumérotation préserve le contenu pédagogique : comparaison normalisée 17/17, ordre/IDs/code/outputs/execution counts conservés ; les cinq notebooks non renommés portent 44 cellules code et restent EXEC_PROVED. Les checks navlinks, link rendering, Quarto, enrich-quality, plan-loss, output-failure, Papermill, baseline orphans et Scripts Tests sont verts au head courant. Les quatre porteurs résiduels sont correctement classés historiques, générés ou bot-owned ; leur resynchronisation post-merge ne justifie pas de hand-edit dans cette branche.

Closes #14545 est cohérent : la tranche A est déjà mergée et cette tranche B satisfait l’acceptance restante. B.0 retourne rc=0. Le PR gate rouge actuel est seulement le verdict DWELL émis avant maturité de cette tête datée du 2026-09-09T17:52:48Z ; merge uniquement après réagrégation post-120 minutes et gate verte.

@myia-ai-01
myia-ai-01 merged commit 7331d30 into main Sep 9, 2026
73 of 77 checks passed
jsboige added a commit that referenced this pull request Sep 10, 2026
…S-9 resuscites par erreur

Le checkout initial depuis le residu avait stage les anciens chemins
(supprimes de main par la renum #15147) ; ils ont survecu au changement
de branche via l'index. Seuls les nouveaux chemins MGS-07c/MGS-09
(convertus depuis le contenu main courant) doivent exister.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Sep 11, 2026
…ion source str->list (renum #15147 géré) (#15448)

* chore(notebooks,#14209): tranche T2b du split -- normalisation source str->list sur Search Metaheuristics

See #15429 (T2b, second morceau du T2 sous-splitte). Contenu identique
cellule par cellule : 16 conversions str->list verifiees par script (source
joinee == source str d'origine, zero drift outputs/execution_count/metadata).
MGS-07c et MGS-09 : la renum #15147 (padding zero, MGS-N -> MGS-0N) a
renomme ces fichiers sur main apres la creation du residu -- la conversion
y est GENEREE depuis le contenu main courant aux nouveaux chemins (au lieu
d'un checkout du resididu qui ressusciterait les anciens chemins supprimes).
Les quatre MGS-vs-mealpy gardent leur chemin : reprise du residu
a1e83ff telle quelle.

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

* chore(notebooks,#14209): T2b -- retirer les anciens chemins MGS-7c/MGS-9 resuscites par erreur

Le checkout initial depuis le residu avait stage les anciens chemins
(supprimes de main par la renum #15147) ; ils ont survecu au changement
de branche via l'index. Seuls les nouveaux chemins MGS-07c/MGS-09
(convertus depuis le contenu main courant) doivent exister.

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

* chore(notebooks,#14209): restore final newline on split tranche T2b (EOF drift #15429)

Le writer de normalisation source str->list a perdu la newline finale des
notebooks modifies (fin `}` au lieu de `}\n` comme sur main). Restauration
d'un octet par fichier : les blobs redeviennent suffixe-identiques a main,
contain JSON/nbformat inchange.

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

---------

Co-authored-by: jsboige <jsboige@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 11, 2026
…(tranche B #15335)

Issue DISPATCH ai-01 c.1044: tranche B EPIC #15062 (Math for AI Safety)
acceptance #15335 - 5 points: instrument identique, seuil DUPOC(k) avec
courbe, cout epsilon x profondeur, controle negatif, >=3 exercices C.1.
Vocabulaire honnete: coherent avec (jamais demontre) le theoreme
parametrique borne de Lob (Critch 2016 arXiv 1602.04184).

Squelette c.1044 execute (cycle split Tell c.963 ★ respectee):
- 21 cellules (10 md + 11 code), outputs reels via nbclient (Tell c.711-L1)
- Moteur reproduit localement: T,R,P,S=5,3,1,0 + MAX_DEPTH=3 + STEP_BUDGET=1000
- Bots: CooperateBot_toy, DefectBot_toy, FairBot_toy, CUPOD_toy, PrudentBot_toy
- DUPOC(k) + courbe sur k in {1,2,3,5,10,20}
- 3 exercices C.1 (pass / print, JAMAIS raise NotImplementedError)
- Prong-B: difference d'issue selon k sur couple de bots (TODO etudiant)
- Controle negatif: budget serre step_cap=4 -> SimulationTimeout
- References: Critch 2016, Garrabrant 2018, Papadimitriou & Tsitsiklis 1999

Fixes pre-commit appliques c.1044:
- #13326 syntax error (cellule 6 _sources_of chaine CUPOD_toy fermee)
- H.3 outputs vides (execution kernel nbclient, 11/11 cellules remplies)
- Schema nbformat 4.5 strict (outputs:[], execution_count:null partout)

A faire c.1045-1046 (Tell c.963 ★ grain split):
- Completion Prong-B (run effectif + visualisation courbes)
- Finalisation controleur negatif (epsilon eleve restaure defection)
- PR vers main apres validation end-to-end

See #15335 (grain split, PR differee c.1045-1046)

Grain: MED/notebook-python - lane myia-po-2026:CoursIA-2
prev: MED/guard #15147 (REPAIR P0 c.1043 final)
myia-ai-01 pushed a commit that referenced this pull request Sep 27, 2026
…pilote Astra, fix_hr_separator) (#18003)

* fix(search,#15227): separateurs markdown --- -> *** dans 11 carnets (pilote Astra)

Tranche fix_hr_separator du pilote Astra : 13 separateurs convertis dans
11 carnets Search. Diff markdown-seul (0 cellule code touchee, verifie),
exclusions documentees (_archive x2 ; MGS-10 : exclusion levee, #15147
MERGED et aucune PR ouverte sur le chemin). Normalisation basename
metadata papermill sur Search-06 (auto-fix hook, tolerance regle 6).

See #15227

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

* fix(search,#15227): retrait des 5 carnets jumeaux du lot -- tripwire twin parity

Le gate Twin parity (#8057) passe DRIFT_INTRODUCED sur toute edition
unilaterale d'un carnet jumeau (ledger = tripwire fail-closed) : les 5
paires touchees (Search-03b, Search-06, Search-07, Search-09,
App-14-CSharp) ont leurs jumeaux PROPRES (0 separateur, mesure) -- pas
de fix symetrique possible, et le rebaseline --update est interdit par
les lignes rouges du pilote (zero changement de twin ledger). Retrait du
lot : 8 separateurs / 6 carnets restants. Finding canary documente dans
le body de la PR.

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

---------

Co-authored-by: jsboige <jsboige@gmail.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
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.

renum(Search): padding zero du reste des series Search Part1 et Part4 — l'ordre lexicographique est casse

4 participants