Skip to content

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

Description

@myia-ai-01

Nit user posé sur #14480 le 2026-09-03T13:56Z :

Il va falloir enchaîner assez rapidement avec l'ajout du padding zero du reste de la série, car en l'état la numérotation est illisible.

#14480 introduit les accrétions Search-03b/03c/03d (paddées) dans une série dont la première moitié ne l'est pas. Cette issue porte le reste du geste ; elle est la levée par report du nit (forme 3 de CLAUDE.md §B.0), ouverte avant le merge de #14480.

Le défaut est mesurable, pas esthétique

Mesure sur la tête de #14480 (a236ea73b87b, 2026-09-03T23:38Z) :

Répertoire Paddés Non paddés
Search/Part1-Foundations 22 18
Search/Part4-Metaheuristics 22 12

Le mélange casse l'ordre lexicographique, qui est celui de tous les listings (explorateur, ls, arbres README, catalogue) :

Search-03e-AStar-Optimality.ipynb     <- 3e
Search-09d-Lean-Discrepancy-Komlos.ipynb  <- 9e
Search-1-StateSpace.ipynb             <- 1er, affiche APRES le 9e
Search-10-SymbolicAutomata.ipynb
Search-2-Uninformed.ipynb             <- 2e, affiche APRES le 10e

Même rupture sur Part4 : MGS-10-CenterBias s'affiche avant MGS-2-Composition.

Périmètre

A. Search/Part1-Foundations — 18 fichiers (paires FR + -Csharp) :
Search-1-StateSpace, Search-2-Uninformed, Search-3-Informed, Search-4-LocalSearch, Search-5-GeneticAlgorithms, Search-6-AdversarialSearch, Search-7-MCTS-And-Beyond, Search-8-DancingLinks, Search-9-LinearProgramming -> Search-01- … Search-09-.

B. Search/Part4-Metaheuristics — 12 fichiers :
MGS-1-Introduction, MGS-2-Composition, MGS-3-Eukaryote, MGS-4-Islands, MGS-5-CompoundMetaheuristics, MGS-6-Benchmarks, MGS-7-TSP, MGS-7b-LandscapeMultidim, MGS-7c-RosenbrockGriewank, MGS-7d-MichalewiczDixonPrice, MGS-8-LandscapeExplorer, MGS-9-EverestRelief -> MGS-01- … MGS-09- (suffixes b/c/d préservés).

Hors périmètre : Part2-CSP (CSP-1 … CSP-9, aucun nombre à deux chiffres -> l'ordre lexicographique est déjà correct, le padding n'y apporterait rien).

Ce qu'un renommage traîne derrière lui

Un git mv seul laisse le dépôt incohérent. Chaque renommage doit être suivi d'un sweep des référents :

  • les README de série et de partie (tables de structure, liens de navigation) ;
  • les liens inter-notebooks (cellules markdown « notebook suivant / précédent ») ;
  • le catalogue — ne PAS le régénérer à la main sur la branche (catalog-pr-hygiene.md HARD 1) : le cron ou la CI par-PR s'en charge ;
  • toute référence dans docs/** et dans les workflows qui nomment un chemin de notebook.

Vérification attendue avant merge : git grep -n "Search-[1-9]-" -- '*.md' '*.ipynb' '*.yml' ne doit plus rendre de référence aux anciens noms de la partie traitée.

Acceptance

  • A : les 18 notebooks de Part1-Foundations renommés en Search-0N-
  • B : les 12 notebooks de Part4-Metaheuristics renommés en MGS-0N-
  • Sweep des référents passé, git grep des anciens noms vide sur le périmètre traité
  • ls de chaque répertoire rend l'ordre narratif (1, 2, 3 … 10, 11) et non l'ordre lexicographique cassé
  • Catalogue laissé byte-identique à main sur la branche

A et B peuvent partir en deux PR distinctes (une par partie) : ce sont deux périmètres indépendants.

Part of #5081 (renumérotation narrative des séries).

Activity

  1. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 4, 2026
  2. added 2 commits that reference this issue on Sep 4, 2026
  3. removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 5, 2026
  4. jsboige commented on Sep 5, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2025:CoursIA — tranche A : padding zéro des 18 notebooks Search/Part1-Foundations (Search-N → Search-0N, git mv + sweep référents), exécution Vibe + relay. Amend 05/09 soir (fix review de la PR tranche A) : les 4 surfaces REGISTRE du sweep ajoutées au scope.

    paths: MyIA.AI.Notebooks/Search/Part1-Foundations/**, scripts/notebook_tools/twin_pairs.d/search-{01,02,03,04,05,06,07,08,09}-*.yaml, scripts/notebook_tools/pedagogy_density_baseline.json, scripts/tests/test_check_lane_claim.py, scripts/notebook_tools/tests/test_detect_markdown_rendering.py (tranche A + registres — tranche B Part4-Metaheuristics laissée libre)

  5. jsboige commented on Sep 5, 2026

    @jsboige
    Owner

    Tranche A livrée : PR #14790 (18 git mv Search-N → Search-0N + sweep référents Part1-Foundations, 63 fichiers, 0 ligne non-référence dans le diff, catalogue byte-identique). Le grep d'acceptance rend 8 occurrences résiduelles intentionnellement préservées (catalogue régénéré par cron/CI + 7 refs historiques/inexistantes, inventaire case par case dans le body de la PR).

    La tranche B (Part4-Metaheuristics, 12 fichiers MGS-1 → MGS-09) reste ouverte : mon claim ne couvre que les chemins Part1 (paths:), elle est claimable telle quelle. Case A de l'acceptance à cocher au merge de #14790.

  6. myia-ai-01 commented on Sep 5, 2026

    @myia-ai-01
    CollaboratorAuthor

    [INFO] Consequence en aval mesuree, hors du perimetre declare de cette issue

    En instruisant un defaut voisin (#14832, absence de liens dans les pages de parcours), j'ai mesure que le padding zero repare aussi l'ordre des tables de docs/curriculum/.

    Le mecanisme : generate_catalog.py:1346 trie les entrees par key=lambda e: e.get("path", "") — lexicographique sur le chemin. generate_parcours.py preserve cet ordre sans retrier. Un App-11 precede donc un App-2 dans toutes les pages de parcours, pas seulement dans les listings de serie.

    Verification (entrees Search/Applications/CSP/App-*) :

    ordre ACTUEL : 1 11 11b 15 15b 16 16 19 19 1b 2 2 20 20b
    ordre PADDE  : 1 1b 2 2 2b 3 3b 4 4b 5 5 6 6 7
    padding repare l'ordre : True
    

    Deux consequences pratiques :

    1. Pas d'action supplementaire ici — le tri par chemin est correct une fois les noms paddes ; il n'y a pas de second defaut de tri a corriger dans les generateurs.
    2. Un controle positif gratuit pour cette PR : apres le renommage, relancer generate_parcours.py et lire l'ordre des tables donne une verification end-to-end du padding, en aval du renommage lui-meme. Les pages docs/curriculum/*.md etant regenerees par le cron quotidien, l'effet se constatera sur main sans geste supplementaire — mais le verifier dans la PR evite d'attendre une nuit pour decouvrir un residu.

    Aucun changement de perimetre demande : c'est un effet de bord favorable, signale pour qu'il ne soit pas re-diagnostique comme un defaut independant.

  7. added 2 commits that reference this issue on Sep 6, 2026
  8. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 7, 2026
  9. jsboige commented on Sep 8, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2025:CoursIA — tranche B : padding zéro des 12 notebooks Search/Part4-Metaheuristics (MGS-N → MGS-0N, git mv + sweep référents), exécution Vibe + relay (dispatch [WAKE-VIBE] 23:22Z, run 110,6 s, livraison relay en cours).

    paths: MyIA.AI.Notebooks/Search/Part4-Metaheuristics/**, _quarto.yml, docs/curriculum/ia-classique.md, translations/search-part4/README.md

  10. jsboige commented on Sep 8, 2026

    @jsboige
    Owner

    [DELIVERED] tranche B — PR #15147 (wt/vibe-mgs-padding, base 7af725e96).

    Chaîne complète Vibe + relay : dispatch [WAKE-VIBE] 23:22:36Z → pickup 21 s → PROMPT_OK 110,6 s / 0,19 $ (12 git mv + sweep Part4, commit d4e0feb12) → relay sweep 54 remplacements binaires (formes b/c/d + référents externes _quarto.yml/docs/curriculum/translations, commit 313426d38). 22 fichiers, 132+/132-.

    Acceptance : grep MGS-[1-9]- sur *.md *.ipynb *.yml = 0 hit ; ordre ls narratif (01…09, 10) ; catalogue byte-identique (aucun COURSE_CATALOG.generated.* au diff) ; 2 refs MGS-7c/7d préservées dans docs/archive/reference/notebook-counts-reconciliation.md (doc datée, précédent tranche A). Garde perimeter VERDICT OK + lane_claim guard_pass local. Cases A-B + sweep + ordre + catalogue cochées sur l'issue avant merge.

    Tranche A : #14790 MERGED. Cette PR porte Closes #14545.

  11. jsboige commented on Sep 8, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2025:CoursIA -- paths: MyIA.AI.Notebooks/Search/Part4-Metaheuristics/**, _quarto.yml, docs/curriculum/ia-classique.md, translations/search-part4/README.md, 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

    Scope repair post-delivery : le commit registre 10f63b775 a ajouté quatre surfaces absentes du claim initial. Cette déclaration rend le scope réel explicite ; elle ne lève pas le finding séparé du preflight #15147 sur translations/search-part4/README.md bot-owned.

  12. jsboige commented on Sep 8, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2025:CoursIA -- paths: MyIA.AI.Notebooks/Search/Part4-Metaheuristics/**, ./_quarto.yml, docs/curriculum/ia-classique.md, translations/search-part4/README.md, 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

    Correction mécanique du scope précédent : ./_quarto.yml rend le chemin racine matchable par l'organe sans changer le périmètre.

  13. added a commit that references this issue on Sep 8, 2026
  14. jsboige commented on Sep 8, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2025:CoursIA -- paths: MyIA.AI.Notebooks/Search/Part4-Metaheuristics/**, *_quarto.yml, docs/curriculum/ia-classique.md, 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

    Scope final après restauration de la surface bot-owned : 25 fichiers / 148+ / 148-. *_quarto.yml remplace le glob racine précédemment classé empty_scope ; aucun chemin translations/** ne reste dans le diff.

  15. removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions