Repository navigation
renum(search,14545): padding zero Part4-Metaheuristics — tranche B (MGS-N -> MGS-0N) - #15147
Conversation
…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>
|
[INFO] CI — correctif registres poussé (
|
Path-collision (organ #13359/#13615)Cette PR #15147 (
|
jsboige
left a comment
There was a problem hiding this comment.
[ADJOINT PREFLIGHT] COMMENTED — vérification firsthand au head 10f63b775.
Points à lever avant décision finale :
- Translation guard reproductiblement rouge.
translations/search-part4/README.mdexiste déjà surorigin/mainet est modifié par cette PR. La logique exacte de.github/workflows/translation-guard.ymlle classe donc dansMODIFIED_EXISTINGet échoue sur touttranslations/**. Le correctif conforme est de restaurer ce fichier depuisorigin/main; aucune modification manuelle d'une surface bot-owned ne doit rester dans cette branche. - Claim d'issue incomplet depuis le 3e commit. Le claim #14545 couvre Part4,
_quarto.yml,docs/curriculum/ia-classique.mdet 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. - 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
left a comment
There was a problem hiding this comment.
[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>
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
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) |
|
CI fraîche après absorption de #15143, au head |
|
[REPAIR CI — cause hors périmètre vérifiée sur main] La mise à jour de branche unique a produit le head 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 Le job PR Contrôle indépendant sur le SHA exact de É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 |
|
[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 :
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. |
|
[PICKER REPAIR — Le head Contrôles post-merge, exécutés dans le worktree de la PR :
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. |
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>
|
[PICKER REPAIR — merge local obsolète annulé, La tête silencieuse La réparation est additive, sans réécriture d'historique :
Contrôles post-fix sur
Le point de review sur le claim est également vérifié sur l'issue #14545 : les commentaires Les checks automatiques du nouveau push font foi. Aucun rerun manuel n'a été lancé. |
|
[PICKER REPAIR — rouge résiduel imputé au détecteur #15364] Le run frais #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 |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[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) :
- 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.
- Suivi post-merge :
COURSE_CATALOG.generated.jsonet le CSV bot-ownedtranslations/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.)
…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
left a comment
There was a problem hiding this comment.
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.
…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>
…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>
…(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)
…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>
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-versMGS-01-…MGS-09-(suffixesb/c/dpréservés), avec sweep des référents vivants.git mvet sweep interne Part4 (d4e0feb12).b/c/det registres de validation (313426d38,10f63b775).origin/maindetranslations/search-part4/README.md, surface bot-owned (815e3cc49).Périmètre réel
_quarto.yml, curriculum et quatre registres/scripts de validation.translations/**ne reste dans le diff.COURSE_CATALOG.generated.*dans le diff : le catalogue reste propriété de l'automatisation.Vérifications
MGS-[1-9]-sur*.md,*.ipynb,*.yml: 0 référence dans les surfaces vivantes curées.EXEC_PROVED, 0 erreur au validateur.git diff --check: OK.01,02, …07,07b,07c,07d,08,09,10.Résidus hors surfaces vivantes curées
Quatre porteurs historiques/générés/bot-owned restent hors diff :
docs/archive/reference/notebook-counts-reconciliation.md— 2 références historiques intentionnelles ;COURSE_CATALOG.generated.json— généré, régénération post-merge ;translations/search-part4/search-part4.csv— bot-owned, 318 lignes / 326 occurrences ;scripts/notebook_tools/c785_insert_ackley.py— script one-shot historique, 2 références.État des gates
Le push
815e3cc49relance 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