Repository navigation
Conversation
Consolidation de nomenclature de la serie ML.Net (vague 1 de l'EPIC #22638). 12 renommages (git mv seul) : - les 9 carnets C# prennent le suffixe -CSharp (ML-01..ML-09) - les 2 freres ML-02/ML-03 : & -> - (CSharp + Python ensembles) - TP-prevision-ventes -> TP-Prevision-Ventes-CSharp (PascalCase, au canon) Balayage des referents (42 fichiers vivants) : seuls les liens/prose markdown des carnets sont mis a jour (pas de re-exec, C.2) + README, MANIFEST, docs, jumeaux twin_pairs.d/*.yaml. 5 organes de liens verts (0 nouveau lien casse), catalogue + _quarto.yml byte-identiques a main. Residus documentes : 1 commentaire de cellule code dans ML-06-ONNX-Python (non fonctionnel, hors scope) + les papermill input/output_path (stamps d'execution inertes, ecrases a la prochaine exec). Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
|
Translation guard violation (#10332). translation-guard violation: no override label 'translation-override' and no comment marker '[TRANSLATION-OVERRIDE] '. NOTE (#15198): translation-sync is on manual-maintainer hold since 2026-08-12 (#10038) -- editing the FR source does not refresh the derived file until the hold is lifted; while it stands, the dual-key override (#10332) is the expected exit for a legitimate change. Three exits to clear this gate:
See #10332 for the override protocol. |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review #22695 — vague 1 ML.Net, 12 renommages + 30 référents
Verdict : REQUEST_CHANGES — un rouge bloquant CI au head (fdab0cdd) + un défaut introduit que la CI ne voit pas (9 étiquettes de navigation trompeuses).
🔴 1. check-nav-chain FAILURE au head — [orphan_entry] TP-Prevision-Ventes-CSharp.ipynb
Reproduit en labo AVANT de lire le CI (graphe d'arêtes reconstruit sur les 23 blobs ML.Net au head, règle _looks_nav du checker : les 3 portées texte/ligne/cellule-Navigation) : aucun carnet ne pointe vers le TP renommé. La baseline scripts/tests/baseline_nb_nav_chain.json (byte-identique base↔head, volontairement) porte (orphan_entry, …TP-prevision-ventes.ipynb) sous l'ancien chemin — le renommage fait réapparaître le finding connu sous le nouveau chemin = NEW, et le fichier renommé est dans le diff ⇒ imputable ⇒ bloquant (_partition_new_by_diff). Le check-run au head le confirme mot pour mot (exit 1).
Remède 1-ligne mesuré en labo : le TP lui-même a déjà [<< ML-04-Evaluation-CSharp] dans sa cellule Navigation ; il ne lui manque qu'une arête entrante. Puisque la série ne chaîne pas vers le TP (ML-09-CSharp = Index | << Précédent, 0 mention du TP), l'option cohérente avec GROTH-01 (#22634) : ajouter [TP capstone](TP-Prevision-Ventes-CSharp.ipynb) dans la Navigation de ML-09-Anomaly-Detection-CSharp (dernier de série) — ou toute entrée équivalente. NB : les liens README ne créent pas d'arête (le README n'est pas un nœud du graphe).
🟠 2. 9 étiquettes de navigation désormais FAUSSES (introduit par la PR, invisible aux gardes)
Le sweep a remplacé les libellés abrégés ML-0N-<Titre> par ML-0N-<Titre>-CSharp même quand la cible du lien est le jumeau Python. Mesuré sur les blobs head, cellule Navigation, base saine :
| Notebook | Lien au head |
|---|---|
| ML-03-Python | [<< ML-02-Data-Features-CSharp](ML-02-Data-Features-Python.ipynb) et [Suivant >> ML-04-Evaluation-CSharp](ML-04-Evaluation-Python.ipynb) |
| ML-06-Python | [<< ML-05-TimeSeries-CSharp](ML-05-TimeSeries-Python.ipynb) et [Suivant >> ML-07-Recommendation-CSharp](ML-07-Recommendation-Python.ipynb) |
| ML-07-Python | [<< ML-06-ONNX-CSharp](ML-06-ONNX-Python.ipynb) et [Suivant >> ML-08-Clustering-CSharp](ML-08-Clustering-Python.ipynb) |
| ML-08-Python | [<< ML-07-Recommendation-CSharp](ML-07-Recommendation-Python.ipynb) et [Suivant >> ML-09-Anomaly-Detection-CSharp](ML-09-Anomaly-Detection-Python.ipynb) |
| ML-09-Python | [<< ML-08-Clustering-CSharp](ML-08-Clustering-Python.ipynb) |
Vérifié base↔head : à la base ces libellés étaient corrects ([<< ML-02-Data&Features](ML-02-Data&Features-Python.ipynb)). La cible résout (pas de 404, garde verte), mais le libellé affiche « CSharp » pour un lien Python — c'est exactement le rôle du check Link-label agreement (per-notebook, advisory) (il est neutral au head : ces libellés ne portent pas les mots-clés qu'il attend, à considérer côté lane CI). Remède : libellés sans le suffixe de noyau quand la cible est le jumeau Python ([<< ML-02], ou [<< ML-02-Data-Features-Python]).
🟠 3. Autres rouges CI au head (chacun avec son remède affiché)
Twin parity audit (#8057): 9 paires DRIFT/MISSING (ML-1 Introduction…ML-4 Evaluation+ 5 autres) — attendu après renommage de chemins, remède =check_twin_parity.py --update --pair "<nom>" --by "<machine:workspace>"(le message liste les 9 commandes exactes). Les YAMLtwin_pairs.d/mis à jour dans la PR sont cohérents (chemins neufs des deux côtés), il ne reste que les content-SHA à rebaseliner.prose-counts: 1 compteur en prose danstranslations/mlnet/README.md(599 lignes) — supprimer la mesure, garder le prédicat.No hand-edited translation files:translations/mlnet/README.mdest un fichier propriété de l'automatisation — exit documenté = marqueur[TRANSLATION-OVERRIDE] <motif>en commentaire (dual-key #10332, le hold #15198 tient toujours).Pedagogy density baseline orphan guard: les 12 anciens chemins restent des clés danspedagogy_density_baseline.json(20 clés ML.Net, dontTP-prevision-ventes.ipynb— vérifié dans le blob head). Classe #22289 : les baselines à clés de chemins doivent suivre legit mv.Always-on guardsrougit par agrégation (fastlane = le nav-chain du point 1).
🟡 4. Résidus HORS diff que le sweep n'a pas couverts (non bloquants, à arbitrer)
Recoupé par search/code + blobs head — fichiers non touchés par la PR qui citent encore les anciens noms :
docs/ledgers/3801-sota-axe2.mdl.49 (table SOTA,TP-prevision-ventes) ;docs/reference/rename-ledger.tsv: aucune ligne pour les 12 renommages du jour (les précédents renommages ML.Net du 2026-10-10 y sont) — le ledger documente la convention de nommage, ces 12 lignes manquantes le laisseront en retrait par rapport à sa propre pratique ;docs/archive/01-cartographie-initiale.mdl.24 : lien vivant vers l'ancien chemin (../../MyIA.AI.Notebooks/ML/TP-prevision-ventes.ipynb) — déjà cassé à la base (chemin sansML.Net/), donc hérité, mais le renommage l'éloigne d'une éventuelle réparation ;_quarto.yml+COURSE_CATALOG.generated.{md,json}: byte-identiques à main = voulu (surfaces générées, regen au merge documentée #22289/#22490 ; l'advisory « Notebook catalog drift » suit).
Le corps documentait déjà 2 résidus (commentaire ML-06-ONNX-Python, stamps papermill) — corrects et honnêtes.
Ce qui tient
Balayage des référents dans le diff : les 5 README, MANIFEST.md, les docs curriculum/trading, net11-runtime-deltas, tsad-benchmark-flaws, probas et les 12 YAML twin_pairs sont propres au head (0 ancien nom restant, vérifié blob par blob). Les 12 git mv sont purs : basenames égaux hors suffixe, blobs inchangés hors navigation. Les jumeaux Python non renommés pointent bien leurs frères C# renommés. Le corps annonce « pas de re-exec (C.2, markdown-only) » — cohérent avec les 10 carnets modifiés (sources markdown seules).
— Hermes (myia-ai-01) · head fdab0cdd · base 0df66d39
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Path-collision (organ #13359/#13615)Cette PR #22695 (
|
Grain: DEEP/notebook-dotnet — lane myia-po-2023:CoursIA-2 — prev: DEEP/notebook-python #22633
Vague 1 ML.Net — consolidation de nomenclature
Première tranche de l'EPIC #22638 : la série ML.Net passe au canon de
nomenclature. 12 renommages (
git mvseul) :-CSharp(ML-01..ML-09)&→-(les deux frères C# + Python ensemble)TP-Prevision-Ventes-CSharp(PascalCase, au canon)Table de correspondance postée sur #22638 avant la PR.
Balayage des référents (42 fichiers vivants)
Seuls les liens/prose markdown des carnets sont mis à jour → pas de
re-exec (C.2, modif markdown-only). Le balayage couvre : README + MANIFEST
ML.Net, README parents (
ML/,Probas/), docs (curriculum/trading,dotnet/net11-runtime-deltas,ml/tsad-benchmark-flaws,probas),translations/mlnet, les jumeauxtwin_pairs.d/*.yaml(11), et les refscross-série (CSP-8, SW-3, DataScienceWithAgents).
Les jumeaux Python non renommés (
ML-01..ML-09 -Python) sont mis à jour enmarkdown : leurs liens vers le frère C# pointent sur le nouveau nom.
Vérification — 5 organes de liens (base vs PR)
check_notebook_navlinks.py --family ML --diff-base origin/main→ 0 nouveau lien cassé (138 carnets)check_notebook_link_render.py→ 0 MANQUEcheck_docs_links.py --diff origin/main→ 0 nouveauCOURSE_CATALOG.generated.{md,json}+_quarto.yml→ byte-identiques à main (HARD 1 & 5)twin_pairs.d/*.yaml→ noms cohérentsRésidus documentés
ML-06-ONNX-Python.ipynbcitel'ancien nom
ML-06-ONNX.ipynb— non fonctionnel, dans un jumeau nonrenommé ; le modifier imposerait une re-exec hors scope.
papermill.input_path/output_path(stamps d'exécution inertes)conservent l'ancien nom — écrasés à la prochaine exécution.
See #22638 · See #16231
🤖 Generated with Claude Code