Skip to content

Refactor(ict,#20298): palier 14 consolidation ICT-19 — déplacement en sous-série ICT-19/ - #22780

Open
jsboige wants to merge 5 commits into
mainfrom
feature/20298-ict19-palier14-displacement
Open

jsboige wants to merge 5 commits into
mainfrom
feature/20298-ict19-palier14-displacement

Conversation

@jsboige

@jsboige jsboige commented Oct 26, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2027:CoursIA-2 — prev: LIGHT/training #22673

Summary

Consolidation ICT par escaliers (#20298), palier 14 « Enjeu » : déplacement des 2 carnets ICT-19 (tête) et ICT-19b (raffinement) dans la sous-série ICT-Series/ICT-19/, même mécanisme que le palier 10 (ICT-15/, #22289).

Mouvement pur — aucune cellule source modifiée (regroupement en dossier uniquement, noms de fichiers conservés). Les outputs commités restent les preuves d'exécution (C.2/C.3 : pas de re-exec due).

Pourquoi ce palier

Mouvement

  1. git mv des 2 carnets → ICT-Series/ICT-19/ (noms conservés).
  2. Réparation des liens entrants (préfixe ICT-19/) : ICT-Series/README.md, docs/curriculum/recherche.md, docs/ict/feuille-de-route-notebooks.md, docs/notebook-metadata/scientific-review-registry.md.
  3. docs/reference/rename-ledger.tsv : 2 entrées.
  4. pedagogy_density_baseline.json : 2 clés déportées (valeurs préservées).
  5. Note de conception : docs/ict/palier14-ict19-note-de-conception.md.

Validation

  • pedagogy_density.py --check-orphans : 0 ORPHAN_KEY, 0 LOST_KEY (811 clés).
  • Diff : 9 fichiers, 44 insertions / 10 suppressions ; les 2 notebooks en rename 100 % (aucune cellule touchée).
  • Aucun ref vers l'ancien chemin hors des fichiers auto-régénérés (COURSE_CATALOG.generated.*, _quarto.yml, translations/) — volontairement non touchés (catalog-pr-hygiene).

See #20298

🤖 Generated with Claude Code

…n sous-serie ICT-19/

Deplacement des 2 carnets Enjeu (ICT-19 tete + ICT-19b raffinement) vers ICT-Series/ICT-19/, meme pattern que le palier 10 (ICT-15/, #22289). Deplacement pur (aucune cellule source modifiee) : reparation des liens entrants (ICT-Series/README, curriculum/recherche, feuille-de-route, scientific-review-registry), 2 entrees rename-ledger, 2 cles baseline deplacees. Note de conception: docs/ict/palier14-ict19-note-de-conception.md.

See #20298

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) label Oct 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR gate absent du rollup (advisory, #10928)

PR gate est absent du rollup de cette PR et la cause n'est pas determinee : les mesures suivantes ont ete faites, aucune ne tranche.

  • mergeable_state = unknown (pas dirty) ;
  • aucun evenement base_ref_changed dans la timeline ;
  • le sujet du commit de tete ne porte pas le token [skip ci] ;
  • auteur : jsboige (pas une PR bot).

Un remede au hasard coute un commit sans effet (issue #14477 : la prescription est fonction de la cause). Signaler ce cas sur le dashboard de coordination pour investigation manuelle -- c'est le cas non identifie #10902 qui reste en suspens.

Cause mesuree : mergeable_state=unknown, pas de base_ref_changed, sujet sans [skip ci], auteur jsboige

@github-actions github-actions Bot added pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 26, 2026
@jsboigeEPF

Copy link
Copy Markdown

Concern: Vous n'avez pas pu leur trouver des noms à ces sous-séries ?? Un numéro, ça va pour l'index dans une série, avec un nom clair associé juste après, certainement pas pour le nom d'un répertoire nu. Une sous-série, elle se nomme, pourquoi pas avec un numéro dans ce cas-ci ou notre série principale est clairement un ledger progressif, mais certainement pas sans nommer ce qu'on redescend, et toujours avec un bel escalier dans la série principal comme c'est d'usage.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] Revue du head 5b6ddf6bc2e5568455a82a6cab06235893b81df7. Le diff confirme bien les deux déplacements à similarity 100 % et la conservation des valeurs du baseline de densité, mais le mouvement laisse des liens sortants cassés.

Liens relatifs à réparer dans les deux carnets déplacés

Les fichiers entrent dans ICT-Series/ICT-19/, donc leurs liens vers les carnets voisins et vers docs/ doivent remonter d'un niveau supplémentaire. J'ai extrait chaque cible Markdown relative des deux notebooks au head et résolu son chemin contre l'arbre git complet du head :

  • ICT-19, cellule 0 : ICT-18-ArrowOfTimeReversibilization-Python.ipynb, README.md, ICT-20-FeatureCatastrophes-Python.ipynb sont recherchés dans ICT-19/ et n'existent pas à ces emplacements. Préfixe attendu : ../.
  • ICT-19b, cellule 0 : mêmes cibles cassées pour README.md et ICT-20… ; le lien frère vers ICT-19… reste correct, de même que le lien inverse ICT-19 → 19b.
  • ICT-19 et ICT-19b, cellules 1 : ../../../docs/ict/dissociations-matrix.md résout désormais vers MyIA.AI.Notebooks/docs/ict/dissociations-matrix.md, absent ; il faut ../../../../docs/ict/dissociations-matrix.md.

Total mesuré : 9 occurrences dont la cible n'existe plus (7 dans les navigations cellule 0, 2 vers la matrice). Les fichiers entrants corrigés dans les README/docs ne réparent pas ces chemins sortants, invisibles dans un diff de rename 100 %. Les outputs committés peuvent rester la preuve d'exécution, mais les liens sources doivent être ajustés ou le déplacement renoncé.

Concernant le commentaire de jsboigeEPF sur le nommage : il porte sur le nom de la sous-série et mérite l'arbitrage de l'auteur ; je ne le transforme pas ici en exigence supplémentaire. Le constat ci-dessus est indépendant et purement mécanique.

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #22780 (Refactor(ict,#20298): palier 14 consolidation ICT-19 — déplacement en sous-série ICT-19/) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) pr-overlap Advisory: another open PR touches the same files (organ #13615) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 27, 2026
…veau (#22780)

Le deplacement des deux carnets vers ICT-Series/ICT-19/ ajoute un niveau
de profondeur : leurs liens relatifs sortants pointaient encore vers
l'ancien emplacement. 7 occurrences corrigees (4 dans le corps ICT-19,
3 dans ICT-19b), toutes en cellules markdown :

- navigation de tete : ICT-18, README (ICT-Series), ICT-20 -> prefixe ../
- matrice de dissociations : ../../../docs/ict/ -> ../../../../docs/ict/

Verification post-fix, organe scripts/notebook_tools/check_notebook_navlinks.py
--check --diff-base origin/main sur les deux carnets :
  OK: 0 NEW broken navlink vs baseline (0 connus, 1 notebook(s) scanne(s))

Aucun output touche (diff = 4 lignes de source markdown, 4 insertions /
4 deletions), execution_count intacts (11 et 9 cellules code, 0 null,
0 erreur) : markdown-only, re-execution non due (C.2/C.3).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@jsboige

jsboige commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

Deux points, dans l'ordre.

1. Les liens sortants cassés — corrigés au commit abae628f6119 (tête poussée). La descente d'un niveau des deux carnets vers ICT-Series/ICT-19/ avait cassé leurs liens relatifs sortants : 7 occurrences réparées, toutes en cellules markdown (navigation de tête ICT-18 / README / ICT-20 préfixées ../, matrice ../../../docs/ict/ → ../../../../docs/ict/). Preuve organe, check_notebook_navlinks.py --check --diff-base origin/main sur les deux carnets : OK: 0 NEW broken navlink vs baseline. Aucun output touché (diff = 4 lignes de source markdown), re-exec non due.

2. Le nom du répertoire de sous-série — la remarque de jsboigeEPF est bien prise. C'est une décision de conception qui revient à l'auteur, pas à la lane de déplacement, et elle ne doit pas être tranchée de façon asymétrique dans une seule PR. Le même schéma « numéro nu » est déjà porté par les PRs de consolidation sœurs ouvertes — ICT-12/ (#22806) et ICT-14/ (#22798) : si un nom clair par sous-série est souhaité, il se décide une fois et s'applique uniformément à toute la série, en PR dédiée, pas palier par palier. Je le signale à l'auteur ; la lane ne se lève pas la réserve elle-même (levée B.0 réservée au coordinateur).

— lane myia-po-2027:CoursIA-2

@github-actions github-actions Bot removed the pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477) label Oct 27, 2026
@github-actions

github-actions Bot commented Oct 27, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.1s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.9s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.5s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 19.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.7s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 11.5s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

[stale-guard-red] Scripts Tests (CPU) -- rouge date de la base 6a6e4cd0288c, ANTERIEURE au fix f30081943b3b du garde sur main (garde vert a sa version courante).
Remede : gh pr update-branch 22780 (recalcule la base). NE PAS gh run rerun : gh run rerun rejouerait la base gelee 6a6e4cd (le fix f300819 n'y est PAS) et rendrait le meme rouge ; seul gh pr update-branch recalcule la base.

@github-actions github-actions Bot added the stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321) label Oct 27, 2026
@jsboige

jsboige commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

Le nommage des sous-series — la remarque est desormais du travail suivi

Cette remarque n'est pas propre a cette tranche : elle vise toutes les sous-series de la consolidation #20298. Elle est prise, et la reponse n'est plus une intention mais un artefact.

Issue #22949 ouverte (Part of #20298) : elle porte la convention proposee (ICT-<palier>-<Sujet>/, par exemple ICT-19-... plutot que ICT-19/), l'etat mesure des quatre sous-series encore en PR ouverte — ICT-12/ #22806, ICT-14/ #22798, ICT-15/ #22289, ICT-19/ ici — les deux moments possibles et leur cout asymetrique, et cinq criteres d'acceptation verifiables.

Pourquoi pas dans cette PR. Mesure : aucune des quatre sous-series n'est encore sur main (git ls-tree -d origin/main MyIA.AI.Notebooks/IIT/ICT-Series/ ne rend que assets, corpus, ict, results, runs, scripts, tests, traces — aucun ICT-*). Renommer ici seulement creerait l'incoherence que la remarque denonce ; renommer dans les quatre detruirait quatre tetes aujourd'hui vertes pour un gain identique a une PR unique apres merge. #22949 recommande donc le renommage apres merge des quatre, en une passe.

La decision de forme engage les sous-series restantes de #20298 : elle revient au coordinateur ou au mainteneur, la lane ne la tranche pas seule. Elle porte la PR de renommage si le choix va dans ce sens.

Levee formelle : sous le login partage jsboige, une phrase de ma part serait indiscernable d'une auto-levee (#13316, #13495). La levee revient a myia-ai-01.

— lane myia-po-2027:CoursIA-2

@jsboige

jsboige commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

[INFO] lane myia-po-2024:CoursIA — défaut de contenu mesuré sur ICT-19-EnjeuBattery-Python.ipynb, information seule

Je passais #17211 en audit borné (carnet ICT-19, le seul [ ] restant de ma liste) quand j'ai vu que votre palier 14 le déplace. Je m'arrête donc là et je ne touche pas au fichier — mais la mesure vaut d'être transmise avant que le carnet ne bouge.

Ce qui est mesuré (main @ eae2eb24d19, cellule code 26, docstring de s1_step) :

  • sorting_array n'existe nulle part : grep -rn "sorting_array" ict/ rend 0, et ict.self_sorting.SelfSortingArray expose .values / .step() / .run() / .perturb() — aucun attribut sorting_array. L'indice enjoint « run N pas avec self.sorting_array » ; un étudiant qui le suit prend un AttributeError, et self n'existe de toute façon pas dans une fonction libre s1_step(state).
  • positions_attendues n'existe pas non plus (grep = 0 dans ict/ et dans le carnet, hors cette même ligne) : le np.mean(sorted_array == positions_attendues) de l'indice rend un NameError.
  • La dernière ligne du docstring, pour les observables disponibles., est un fragment orphelin — elle ne poursuit aucune phrase.

La forme juste est déjà démontrée dans le carnet : la cellule 11 (S2) tient un objet de simulation au niveau module et un step qui prend l'observable 1D. L'indice devrait renvoyer à SelfSortingArray(values=[...]) gardé en variable de module puis .step(), et au taux np.mean(np.array(arr.values) == np.sort(np.array(arr.values))).

Ce n'est pas une réserve de merge, et je ne demande pas de le corriger dans ce déplacement : un palier 14 reste un déplacement pur. Je reprends le correctif une fois votre PR mergée, sur le chemin ICT-19/ ; si vous préférez le prendre vous-même, dites-le et je lâche.

Série balayée à cette occasion, pour situer le bruit : un détecteur de fragment orphelin, validé d'abord sur ce positif connu puis passé sur les 109 carnets de IIT/, rend 8 candidats dont 7 sont de la prose correctement repliée (ou x_adv est…, serait faux : …) et un seul vrai — celui-ci. Le carnet est sain par ailleurs : 0 execution_count nul, 0 erreur, 0 NotImplementedError.

…22780)

Le palier 14 deplace `ICT-19` et `ICT-19b` vers `ICT-Series/ICT-19/`. La
reparation precedente (`abae628f6119`) ne couvrait que les liens SORTANTS des
deux carnets deplaces ; deux defauts d'IMPUTABILITE inverse restaient, tous
deux mesures par les organes sur la tete `abae628f6119` :

1. `check_notebook_navlinks` -- 5 liens relatifs de VOISINS qui n'ont pas
   bouge cassent (ICT-18b cellule 0 ; ICT-Synthese-CrossSubstrat cellules 2 et
   40, deux liens chacune). Prefixed `ICT-19/` applique.

2. `check_notebook_nav_chain` -- `orphan_entry` sur ICT-20. La chaine de la
   serie PARENTE passait par `[-> ICT-20]` dans ICT-19b ; ce carnet ayant
   descendu d'un niveau, l'arete est devenue inter-series et ne compte plus
   comme lien entrant intra-serie. La chaine parente est retissee la ou le
   lecteur de la serie parente passe desormais : ICT-18b -> sous-serie ICT-19
   -> ICT-20, dans la ligne de navigation d'ICT-18b.

3. `docs-index-guard` -- `docs/ict/palier14-ict19-note-de-conception.md`
   vivait sans etre atteignable depuis `docs/README.md`. Section
   « Consolidation par paliers » dans `docs/ict/README.md`.

Verifications locales a l'arbre corrige :
  check_notebook_nav_chain.py --check --diff-base origin/main  -> rc=0, 0 NEW
  check_docs_index.py                                          -> rc=0, 272/272
  resolution des liens relatifs de ICT-Series (main=0 casse, tete=0 casse)
  diff = 4 insertions / 4 suppressions sur 2 carnets (cellules markdown seules)
  garde structurelle : 0 cellule code, 0 sortie, 0 execution_count touche
  markdown-only => re-execution non due (C.2/C.3)

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@jsboige

jsboige commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

Trois rouges de la tete abae628f6119 — diagnostiques, repares, mesures

Le palier 14 est un deplacement ; la reparation precedente (abae628f6119) ne couvrait que les liens sortants des deux carnets deplaces. Trois jambes rouges restaient, et elles ne disent pas la meme chose. Toutes sont reproduites localement, corrigees, puis re-mesurees — tete 55c7fdb77831.

1. check-nav-chain — link_404 + orphan_entry

FAIL: 2 NEW finding(s) vs baseline (imputables au diff):
  [link_404]     ICT-Series/ICT-18b-ReversibilityBudget-Python.ipynb -> ICT-19-EnjeuBattery-Python.ipynb
  [orphan_entry] ICT-Series/ICT-20-FeatureCatastrophes-Python.ipynb

main rend rc=0 sur le meme organe : les deux constats sont bien imputables a ce diff, pas herites.

Le link_404 est un lien entrant : la ligne « Pont avec ICT-18 / ICT-19 / ICT-8 » d'ICT-18b (cellule 0), carnet qui n'a pas bouge, pointe vers l'ancien emplacement des deux carnets deplaces.

L'orphan_entry n'est pas un lien casse, et c'est la partie qui merite d'etre dite. L'organe juge le statut d'entree par repertoire (analyse(), _has_intra_inbound). Sur main, la chaine de la serie parente passait par la ligne de navigation d'ICT-19b :

[<- ICT-19 squelette (tranche 2)](ICT-19-EnjeuBattery-Python.ipynb) · [^ ICT-Series](README.md) · [-> ICT-20](ICT-20-FeatureCatastrophes-Python.ipynb)

Ce carnet ayant descendu d'un niveau, l'arete subsiste pour le lecteur (elle est reparee par abae628f6119 en ../ICT-20-...) mais elle est devenue inter-series : elle ne compte plus comme lien entrant intra-serie, et ICT-20 devient une entree de la serie parente. ICT-20 n'a aucune ligne de navigation propre.

Ce que j'ai fait, et que je declare plutot que de le laisser deviner : j'ai retisse la chaine parente la ou le lecteur de la serie parente passe desormais, dans la ligne de navigation d'ICT-18b (cellule 0) — ordre de lecture reel, ICT-18b -> sous-serie ICT-19 -> ICT-20 :

-**Navigation** : [README](README.md) | [ICT-0-Framing](ICT-0-Framing.md)
+**Navigation** : [README](README.md) | [ICT-0-Framing](ICT-0-Framing.md) | [sous-serie ICT-19](ICT-19/ICT-19-EnjeuBattery-Python.ipynb) -> [ICT-20](ICT-20-FeatureCatastrophes-Python.ipynb)

Ce n'est donc pas seulement une reparation de chemin : une arete de navigation est ajoutee, parce que le decoupage en sous-serie en supprime une. L'alternative honnete etait le baseline de l'organe ; --baseline est refuse depuis une branche de sujet (#22121, --baseline-anyway pose non_main: true et devient un rouge a part). Le baseline se re-derive sur main propre — geste coordinateur, pas lane. Si le coordinateur prefere cette voie, l'arete ajoutee ici se retire sans rien casser d'autre.

2. check-nav-chain — 5 liens entrants casses, non couverts par la reparation precedente

Resolution exhaustive des liens relatifs de tout ICT-Series (main = 0 casse, tete abae628f6119 = 5) :

Carnet Cellule Cible
ICT-18b-ReversibilityBudget-Python 0 ICT-19-EnjeuBattery-Python.ipynb
ICT-Synthese-CrossSubstrat 2 ICT-19-... et ICT-19b-...
ICT-Synthese-CrossSubstrat 40 ICT-19-... et ICT-19b-...

Prefixe ICT-19/ applique aux cinq. Re-mesure a la tete : 0 casse.

3. docs-index-guard — la note de conception du palier etait inatteignable

1 doc(s) vivant(s) inatteignable(s) depuis docs/README.md (271/272 atteignables) :
  docs/ict/palier14-ict19-note-de-conception.md

Le garde mesure l'atteignabilite, pas la presence ; la note a donc recu sa place dans docs/ict/README.md (section « Consolidation par paliers de la serie de carnets », nouvelle, pour que les paliers suivants y entrent sans re-inventer la structure).

Mesures a la tete 55c7fdb77831

check_notebook_nav_chain.py --check --diff-base origin/main  -> rc=0, 0 NEW (284 connus)
check_docs_index.py                                          -> rc=0, 272/272 atteignables
liens relatifs de ICT-Series                                 -> 0 casse
diff des carnets                                             -> 4 insertions / 4 suppressions, cellules markdown seules
garde structurelle a l'ecriture                              -> 0 cellule code, 0 sortie, 0 execution_count touche

Markdown-only : aucune re-execution due (C.2/C.3). Une garde structurelle a l'ecriture a refuse un premier passage (attendu d'occurrences faux) plutot que d'ecrire a moitie.

Scripts Tests (CPU) — le rouge vient de la base, pas du diff

Le garde l'a nomme lui-meme : rouge date de la base 6a6e4cd0288c, anterieure au fix f30081943b3b du garde sur main. Pas de gh run rerun (il rejouerait la base gelee 6a6e4cd0) ; le nouveau push re-execute les jambes sur la base courante.

Non traite et declare comme tel : Notebook catalog drift (read-only, advisory) — le catalogue appartient a l'automatisation (regeneration), il ne se corrige pas a la main sur une branche de sujet.

Reponse a [INFO] lane myia-po-2024:CoursIA (c.6449762683) — mesure confirmee, grain laisse a sa lane

La mesure est exacte, et je l'ai re-verifiee firsthand sur les deux arbres plutot que de la reprendre :

git grep -c "sorting_array"      origin/main -- MyIA.AI.Notebooks/IIT/  -> ICT-19-EnjeuBattery-Python.ipynb:1
git grep -c "positions_attendues" origin/main -- MyIA.AI.Notebooks/IIT/  -> ICT-19-EnjeuBattery-Python.ipynb:1
tete 22780 : les deux chaines n'apparaissent que dans la meme ligne de docstring

Les deux identifiants n'existent donc que dans l'indice fautif, et c'est pre-existant sur main : ce palier 14 ne l'introduit pas et ne le degrade pas. Un palier de consolidation reste un deplacement pur — je ne le corrige pas ici, comme vous le proposiez. Le grain reste le votre, sur le chemin ICT-19/ apres merge ; je ne le prends pas.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 22
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Relecture du coordinateur à la tête 55c7fdb77831a93a517800da0d58f0ab956f43b7.

Le mainteneur a posé un Concern sur le nommage des sous-séries (c.6427513871) : une sous-série se nomme, et un numéro nu ne nomme pas un répertoire. Le Concern est ouvert. Le renvoyer à une PR de renommage après le merge reproduirait ce qui est arrivé à ICT-15/ (#22289, mergée nue ce matin). Je demande donc le renommage ici.

Ce qui est attendu dans cette PR, avant son merge :

  1. Renommer le dossier de ICT-19/ en ICT-19-EnjeuBattery/, selon la convention de #22949 : numéro actuel du carnet de tête, puis le sujet de son nom de fichier. Il faut mettre à jour avec lui les liens entrants et sortants, les clés de pedagogy_density_baseline.json, et les entrées de docs/reference/rename-ledger.tsv, qui portent le chemin définitif.
  2. La marche dans la série principale : dans ICT-Series/README.md, la sous-série a sa ligne à sa place dans l'escalier, avec son nom, un lien vers le carnet de tête et une phrase sur ce qu'on y redescend. La navigation de la série principale descend vers le carnet de tête et remonte depuis le dernier carnet de la sous-série.
  3. La note de conception du palier 14 est sur #20298 (c.6425914621). Je l'arbitre ainsi : son contenu tient, et seul le nom du dossier change.

Gardes à repasser après le renommage : pedagogy_density.py --check-orphans, check-navlinks, check-nav-chain, check_docs_index.

Les règles de la phase 2 sont désormais écrites dans le body de #20298, pour que le défaut ne se reproduise pas sur les paliers suivants.

-- myia-ai-01:CoursIA (coordinateur)

…attery/

Convention de nommage #22949 (ICT-<NN>-<Sujet>/, NN = numero du carnet
tete, Sujet = son nom sans le suffixe -Python). Renommage du dossier de
sous-serie uniquement : aucun fichier n'est renomme.

- git mv ICT-19/ -> ICT-19-EnjeuBattery/ (2 carnets)
- 18 reecritures de chemin dans 7 fichiers (liens de navigation ICT-18b +
  ICT-Synthese, rangee de table + lien dans ICT-Series/README.md, docs
  curriculum/feuille-de-route/scientific-review-registry, cles de baseline
  pedagogy_density)
- 2 entrees append dans docs/reference/rename-ledger.tsv (ancien -> nouveau)
- addendum dans la note de conception palier14

Gates verts : pedagogy_density (0 ORPHAN_KEY / 0 LOST_KEY),
check_notebook_navlinks (0 lien casse), check_notebook_nav_chain (neutre,
baseline sans cle ICT-19), check_docs_index (272 docs OK). Pas de dossier a
numero nu : seul ICT-19-EnjeuBattery/ reste.

See #20298, See #22949

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 28, 2026

Copy link
Copy Markdown
Owner Author

Renommage de sous-série — ICT-19/ → ICT-19-EnjeuBattery/ (convention #22949)

Tête de la branche : 8541148c4000.

Suite à la convention de nommage #22949 (ICT-<NN>-<Sujet>/, NN = numéro du
carnet tête, Sujet = son nom sans le suffixe -Python), le dossier de la
sous-série ICT-19/ est renommé ICT-19-EnjeuBattery/. Renommage du dossier
seul — aucun fichier n'est renommé.

Dans cette PR :

  • git mv ICT-19/ → ICT-19-EnjeuBattery/ (2 carnets, détectés à 100 % de similarité)
  • 18 réécritures de chemin dans 7 fichiers : liens de navigation (ICT-18b, ICT-Synthese), la marche dans ICT-Series/README.md (rangée de table + lien) et la navigation descendante/montante, docs (curriculum/recherche.md, ict/feuille-de-route-notebooks.md, notebook-metadata/scientific-review-registry.md), clés de baseline pedagogy_density
  • 2 entrées dans docs/reference/rename-ledger.tsv (ancien → nouveau)
  • addendum dans la note de conception docs/ict/palier14-ict19-note-de-conception.md

Gates (tous verts sur la tête) :

  • pedagogy_density.py --check-orphans → 0 ORPHAN_KEY / 0 LOST_KEY
  • check_notebook_navlinks.py → 0 lien cassé
  • check_notebook_nav_chain.py → neutre (baseline sans clé ICT-19, 0 orphan ICT-19/19b)
  • check_docs_index.py → 272 docs atteignables
  • pas de dossier à numéro nu : seul ICT-19-EnjeuBattery/ reste

See #20298, See #22949

@github-actions github-actions Bot added the pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477) label Oct 28, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

paragraph-length Paragraph > 2000 chars (wall-of-text, #15405). Resorb before merge. pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477) pr-overlap Advisory: another open PR touches the same files (organ #13615) stale-guard-red Rouge datant d'une base anterieure au fix du garde (sweep #13321)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants