Repository navigation
Description
Constat (mesuré le 2026-11-04, lane myia-po-2024:CoursIA, lecture de gradation Z3-API)
inventory_notebook_names.py classe 760 des 872 « ambigu » (87 %) comme non conformes alors que leur nom suit la grammaire canonique <Prefixe>-<NN><lettre?>-<Titre>-<Noyau> (règle notebook-accretion-numbering.md §1).
Cause : l'inventaire tire idx de index_key() (naming_canon.py:144) qui ne lit que l'index en tête (INDEX_RE = ^\d+..., naming_canon.py:102). Un nom à préfixe de série (Z3-01-Introduction-Python, GameTheory-03-..., ICT-15-...) ne rend jamais d'idx ; avec un suffixe de langue, la branche « idx None + suffixe » (inventory_notebook_names.py:177-180) le jette en ambigu.
Le parseur complet qui lit ces noms existe déjà dans la même lib : parse_name() / SERIES_NUM_RE (naming_canon.py:108) rend prefix + number + accr + lang. L'inventaire ne branche pas dessus.
Familles dominantes du angle mort : GameTheory 105, ICT 86, Sudoku 39, Tweety 38, MGS 33, SC 31, Z3 30, App 28, Argumentation 28, RL 27, Lean 27, Search 26.
Conséquence
L'entrée padding-nommage du registre anti-entropie (#23175, cible 0, sens descend) est inatteignable à instrument constant : chaque carnet canonique à préfixe de série ajouté au corpus fait monter le bucket « ambigu ». Les valeurs publiées 776 → 813 → 872 mesurent d'abord la croissance du corpus et la géométrie du filet, pas une dérive des noms.
Travail demandé
- Brancher l'extraction d'idx de
inventory_notebook_names.pysurparse_name(ouSERIES_NUM_RE) : un nom parsé en préfixe+numéro ne doit plus tomber enambigupour raison d'idx — sa classification reste du ressort du classify (suffixe vs kernel, zero-pad, exceptions). - Passer le changement au registre comme changement d'instrument (précédent Fix(tooling,#23175): inventaire nommage — 813 faux ambigu ramenés à 36 (suffixe reconnu + kernels réels) #23193) : la nouvelle mesure ne se compare pas aux anciennes sans note ; l'entrée
padding-nommagerepart d'une référence neuve. - Tests : les fixtures doivent couvrir préfixe à chiffre (
Z3-01-...-Python), préfixe alphabétique (GameTheory-03-...), tête nue (01-Foo), et un non-parsé réel (leambigurésiduel légitime). - Après le branchement, re-mesurer : le résidu « ambigu » attendu est l'angle mort connu restant (kernels inconnus, suffixes non pairs) — publier la nouvelle valeur dans le fil [EPIC] Nommage canonique et parcours des notebooks — numéros, accrétions, noyaux et catalogue #5081.
Périmètre
scripts/notebook_tools/inventory_notebook_names.pyscripts/notebook_tools/naming_canon.py(si l'API doit être ajustée)- tests associés
Aucun carnet renommé dans cette issue : la lecture de gradation Z3-API (c. 6633625232) conclut aucune renum — les 760 ne sont pas des défauts de nommage.
Part of #5081
Activity
jsboige commentedon Nov 4, 2026
Grain: MED/tooling -- lane myia-po-2023:CoursIA -- prev: MED/notebook-python #24716
[CLAIMED] lane myia-po-2023:CoursIA -- paths: scripts/notebook_tools/inventory_notebook_names.py, scripts/notebook_tools/naming_canon.py, scripts/tests/ -- 2026-11-04T23:26Z
jsboige commentedon Nov 4, 2026
[DELIVERED] lane myia-po-2023:CoursIA -- PR #24752 (paths: scripts/notebook_tools/inventory_notebook_names.py, scripts/coordination/anti_entropy_register.py, scripts/tests/test_anti_entropy_register.py)
La premisse de ce body ne tient plus sur
maincourant. Mesure firsthand surorigin/main536cf434700:ambigupour raison d'indexnot suffixainventory_notebook_names.py:177-180Aucun des 40
ambigun'est un nom parsable en serie+numero dont l'index seraitNone. Implementer la procedure demandee (brancherindex_key) n'aurait rien corrige et aurait ramene 1602 notebooksconformeversambigu.Ce que la mesure a trouve a la place : 14 noms legitimes mal classes par
_index_zero_padded, qui ne lisait pas la lettre d'accretion zero-padée —Les 26 restants sont
ambigua juste titre (kernel inconnu).Criteres
ambigu— couvert par refutation : zero instance de ce cas. Le mecanisme demande n'est pas livre, et c'est deliberé (cf ci-dessus).26.0au 2026-11-05, avec correction de la cause structurelle des trois rebasages precedents (comparabilite par source du script, plus par sha de branche).test_creation_budget.py.See #24678et nonCloses: les quatre criteres sont couverts sur leur resultat, mais le critere 1 l'est par mesure et non par le mecanisme qu'il demandait. La cloture revient au coordinateur.Fix(tooling,#24678): registre -- le 3e rebasage n'est pas un point de…
Fix(tooling,#24678): identite derivee epinglee en fin de jour -- le c…
Fix(tooling,#24678): inventaire -- lettre d'accretion zero-padee, ide…