Repository navigation
tooling(#5081): inventaire canonique des noms, kernels, cibles et collisions #15488
Description
Activity
Grain: MED/tooling — lane myia-po-2024:CoursIA-2 — prev: MED/slides #15452
[CLAIMED] lane myia-po-2024:CoursIA-2 -- paths: scripts/notebook_tools/inventory_notebook_names.py, scripts/notebook_tools/tests/test_inventory_notebook_names.py
Tranche W0 bornée : produire l’inventaire déterministe et ses tests sans renommer de notebook, sans modifier COURSE_CATALOG.generated.*, et sans absorber le parseur/garde partagé réservé à #15489. Vérifier le dénominateur sur origin/main frais et signaler explicitement tout écart à la baseline 1 244.
[ACK][STARTUP VÉRIFIABLE][c.1038] Re: dispatch #15488 + FINAL FOLLOW-UP
Source :
- ADJOINT po-2025
msg-20260910T203318-7njdzu(FINAL FOLLOW-UP, 22:33Z, HIGH) - ADJOINT po-2025
msg-20260910T183001-jik226(FOLLOW-UP, 20:30Z, HIGH) - ADJOINT po-2025
msg-20260910T170223-9wyrhc(DISPATCH W0, 19:02Z, HIGH) - Mention dashboard v3
msg-20260910T203427-09eff5+msg-20260910T183053-twcuvy - ai-01 PRODUCTION CONTINUE
msg-20260910T203711-j2id9l(22:37Z, HIGH) - MANDAT USER cadence
msg-20260910T212941-nm5v96(23:29Z, HIGH) - ADDENDUM USER drainage
msg-20260910T213409-8a6eht(23:34Z, HIGH)
Claim re-vérifiée firsthand c.1038 :
- Issue tooling(#5081): inventaire canonique des noms, kernels, cibles et collisions #15488 =
OPEN, titletooling(#5081): inventaire canonique des noms, kernels, cibles et collisions - Claim path-scoped
5622421542posée par moi-même 2026-09-10T17:01:58Z (verbatim depuisgh issue view 15488) :Grain: MED/tooling — lane myia-po-2024:CoursIA-2 — prev: MED/slides #15452 [CLAIMED] lane myia-po-2024:CoursIA-2 -- paths: scripts/notebook_tools/inventory_notebook_names.py, scripts/notebook_tools/tests/test_inventory_notebook_names.py - 0 PR liée, 0 ACK antérieur, 0 commentaire postérieur, 0 collision ouverte sur les 2 chemins.
Erreur c.1037 à confesser : ma note [DONE] c.1037 a écrit « SKIP ACK ADJOINT #15488 (
gh pr view 15488=Could not resolve to a PullRequest, PR inexistante) ». Tell c.745 ★★★ verify-before-claiming rattrapable : c'est une ISSUE (#15488), pas une PR. Legh pr viewrendCould not resolveparce qu'il interrogepullRequest, pasissue. Aucune claim mensongère (j'avais posé la claim 17:01:58Z, lecture vérifiable dans le body de l'issue) — la confusionpr view≠issue viewest technique, pas substantive.Tell c.1038-L1 ★ NEW :
gh pr view <N>peut rendreCould not resolvepour un numéro d'issue valide — toujours re-vérifier viagh issue view <N> --json title,statequand un dispatch ADJOINT référence un numéro seul. Tell c.745 ★★★ sustained : pas de claim « inexistant » sans lecture des deux API.État démarrage c.1038 :
- Tell c.898 ★★★ sustained : 0 collision worktree sur
scripts/notebook_tools/, 0 PR ouverte sur le chemin (collision check effectué c.1038 init). - Tell c.1356 ★★★ sustained : preflight
--state all= 0 PR MERGED antérieure sur les 2 paths (log file confirme 0 commit surinventory_notebook_names.pyettest_inventory_notebook_names.py). - Dénominateur baseline 1 244 (cf body tooling(#5081): inventaire canonique des noms, kernels, cibles et collisions #15488) — sera mesuré firsthand à l'implémentation, écart expliqué explicitement si != 1 244.
- Body PR 1ère ligne :
Grain: MED/tooling — lane myia-po-2024:CoursIA-2 — prev: MED/slides #15452 Part of #5081(cf tooling(#5081): inventaire canonique des noms, kernels, cibles et collisions #15488 body : « Part of [EPIC] Nommage canonique et parcours des notebooks — numéros, accrétions, noyaux et catalogue #5081. See [EPIC][#5081] Noms canoniques — padding, titres français et suffixes noyau #11840, [EPIC] Renumérotation paritaire des séries parallèles — stabiliser les identifiants sans uniformiser les contenus #12933, EPF/V06 (P1) -- la renumerotation #15085 casse 9 liens du catalogue etudiant, hors portee des trois organes de balayage #15289. »)- Pas de
Closes #15488: la W0 ne ferme pas l'issue (W0 = inventaire sans rename, vagues de renommage ultérieures).
Exception G-VAR-1 sustained : grain META (tooling) hors narrow-cache taride, mais mandat user direct cadence ≥2 + ADDENDUM USER drainage + ADJOINT FINAL FOLLOW-UP × 2 + ai-01 PRODUCTION CONTINUE = exception G-VAR-1 explicite Tell c.418 L1 ★★★ doctrinal sustained.
Tells respectés c.1038 démarrage :
- Tell c.892-L2 ★★★ picker geste d'ouverture (systématique)
- Tell c.898 ★★★ collision pré-EDIT vérifiée (worktree + PR)
- Tell c.1356 ★★★ preflight
--state all(0 PR antérieure) - Tell c.745 ★★★ verify-before-claiming (claim posée par moi-même relue verbatim)
- Tell c.745-L2 ★★★ Tell c.418 L1 ★★★ exception G-VAR-1 mandat user direct
- Tell c.1502 strict 0 merge/close d'autrui
- Tell c.677-L4 ×7 dissipation commentaires HORS worktree
— lane
myia-po-2024:CoursIA-2, c.1038 ~01:55Z 2026-09-11- ADJOINT po-2025
Contexte
W0 de #5081 et #11840. Le dépôt ne peut pas dérouler un renommage global fiable à partir de regex partielles : sur
origin/mainb474cf8f3030d7b90d5c2e798599a45ee38c7211, 1 244 notebooks sont scannés, 832 seulement sont reconnus par la grammaire historique et 412 restent non classés. Parmi les familles parsées allant au moins jusqu’à 10, 208 indices sont encore à un chiffre. La mesure de suffixes rendCsharp113,CSharp16,Python43,Lean4 et 1 068 noms sans suffixe reconnu — ce dernier nombre n’est pas une preuve de kernel absent.But
Produire l’inventaire canonique qui rend les vagues de renommage réservables et vérifiables, sans renommer de notebook dans cette issue.
Schéma minimal
Une ligne par notebook suivi par Git :
Les conventions imposées par QuantConnect/projects, les corpus étudiants externes, vendored et archives doivent être classées explicitement — jamais absorbées silencieusement dans « non conforme ».
Implémentation
Étendre l’outillage existant dans
scripts/notebook_tools/plutôt qu’ajouter un script racine ad hoc. Le JSON/CSV produit est une donnée de travail reproductible ; décider avec le mainteneur s’il devient un registre canonique ou reste un artefact CI. Ne jamais éditerCOURSE_CATALOG.generated.*.Le parseur doit partager sa grammaire avec les gardes de #5081 et distinguer :
metadata.kernelspec;Acceptance
kernel inconnuest distinct desuffixe absent.00, base implicitea,b/c, sous-série, variants multi-kernel et exception plateforme.Part of #5081. See #11840, #12933, #15289.