Skip to content

fix(nav,#17284): tranche 02-ML-Cours -- 11 entrees orphelines rattachees a la chaine de navigation - #18555

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/17284-navchain-02mlcours
Sep 30, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/17284-navchain-02mlcours

Conversation

@jsboige

@jsboige jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2024:CoursIA — prev: DEEP/lean #18548

Résumé

Tranche 02-ML-Cours du backlog nav-chain (#17284) : 11 des 13 entrées orphelines de la série sont rattachées à la chaîne de navigation par rangées Compléments ou liens next re-pointés, dans les 8 carnets concernés. Markdown-only (rangées de navigation en cellule 0 uniquement — aucune cellule code touchée, aucun déplacement de cellule, execution_count et outputs inchangés → pas de re-exécution due, C.2/C.3).

Diagnostic de la série (lu sur origin/main avant le geste)

La chaîne de base 2.1 → … → 2.15 est doublement maillée (chaque carnet porte << précédent et suivant >>), mais chaque famille de compagnons insérée en lettres (2.7b/c, 2.8b/c/d, 2.9b/c/d/e, 2.11b-f) formait une île : les compagnons pointaient vers la base et le suivant de la base, mais rien ne pointait vers eux. L'organe classe ces têtes d'île orphan_entry. La série comptait 13 entrées orphelines.

Première passe mesurée (leçon retenue) : connecter les îlots en interne (b → c) sans les ancrer sur la base rendait les îlots unreachable — l'ancre doit partir du notebook de base. Les familles 2.3 et 2.5 sont différées : leur ancre naturelle (2.3, 2.5) est dans les fichiers de la PR ouverte #18483 (po-2023, auto-évaluation 2.1-2.6) — aucun fichier en commun avec la présente.

Gestes par famille

Famille Geste Orphelins résolus
2.7 rangée Compléments : créée dans le nav de 2.7 (2.7b · 2.7c) ; next de 2.7b re-pointé 2.8 → 2.7c 2.7c
2.8 rangée Compléments : créée dans le nav de 2.8 (2.8b · 2.8c) ; next de 2.8b ajouté → 2.8c 2.8c
2.9 rangée Compléments : ajoutée au nav de 2.9 (2.9b · 2.9c · 2.9d · 2.9e) 2.9b, 2.9c, 2.9d, 2.9e
2.11/2.12 next de 2.10 re-pointé 2.13 → 2.11 (l'ancien next sautait toute la famille et 2.12) ; bloc nav créé dans 2.11 (prev 2.10, next 2.12, Compléments : 2.11b-f) ; prev de 2.12 corrigé 2.5 → 2.11 (artefact de copier-coller, 2.5 n'est pas son prédécesseur logique) + next 2.13 ajouté 2.11, 2.11c, 2.11d, 2.11e, 2.12
2.3, 2.5 différées — ancres (2.3, 2.5) dans #18483 2.3d, 2.5c restent (baseline connu)

2.13 reste couvert après le re-pointage de 2.10 (prev de 2.14 + renvois existants). 2.11b/2.11f/2.8d/2.3b/2.3c/2.5b n'étaient pas des entrées (inbound interne d'îlot) et restent atteignables.

Organes relancés sur la branche (head fd78c77)

  • check_notebook_nav_chain.py --family ML : 43 → 32 findings ML ; 02-ML-Cours : 0 unreachable, 0 independent_chain, 2 orphan_entry résiduels (2.3d, 2.5c — différés).
  • check_notebook_nav_chain.py --check : OK 0 NEW vs baseline, 11 findings résolus → baseline régénéré dans la PR (419 → 408 findings, -55 lignes).
  • pytest scripts/notebook_tools/tests/test_check_notebook_nav_chain.py : 37 passed.
  • check_prose_quantitative_claims.py --diff origin/main...HEAD --strict : OK rc=0 (aucun compteur en prose).
  • Pre-commit H.3 et hooks notebooks : passés au commit.

See #17284 (tranche 2 du backlog — restent : 03-DeepLearning 14, 04-Vision 4, 04b-Wavelet 4, Track2/Day5 4, ML.Net 4, et les 2 différés 02-ML-Cours après merge de #18483)

🤖 Generated with Claude Code

…ees a la chaine

Rangement des rangees de navigation (markdown-only, cellule 0) :
- 2.7/2.8 : rangee Complements ancree sur le notebook de base (iles 2.7b/c, 2.8b/c/d)
- 2.9 : rangee Complements (2.9b/c/d/e)
- 2.10 -> 2.11 (l'ancien next sautait 2.11-2.12), nav cree dans 2.11 (next 2.12 + Complements b-f), prev de 2.12 corrige (2.5 -> 2.11, artefact de copier-coller) + next 2.13
- 2.7b/2.8b : next re-pointe sur le compagnon suivant (2.7c, 2.8c)
Differe : 2.3d et 2.5c (ancres dans 2.3/2.5, fichiers de la PR ouverte #18483 po-2023)
Baseline nav-chain regenere : 419 -> 408 findings.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <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

⚠️ 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.

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Sep 30, 2026
@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

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 2.9s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 3.8s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 3.6s
Search-01-StateSpace.ipynb ✅ SUCCESS 2.6s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 1.6s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 14.3s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.6s

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

@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 8
  • Code cells validated: 81
  • 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)

@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Sep 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2024:CoursIA a deja consomme son budget LIGHT du jour (axe genre G-VAR-2/3 (light-genre, quel que soit le tier declare) : #18470 (MED/guard, merge a 2026-09-30T05:51:33Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Sep 30, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 71 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@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.

VERDICT: LGTM (vérifié: hash-comparaison byte-level des 8 carnets base↔head + résolution des 24 cibles de liens à HEAD + diff structurel de la baseline nav)

[NanoClaw] structural review — nav-chain markdown-only (grain LIGHT/docs, backlog #17284, tranche 02-ML-Cours)

Vérifications firsthand au head fd78c77d :

  1. Périmètre confirmé programmatiquement : sha256 de CHAQUE cellule (objet complet : source, outputs, execution_count) comparé base b50634b7 ↔ head sur les 8 carnets — seule la cellule 0 diffère dans chacun ; compteurs de cellules inchangés (ex. 2.10 : 22→22) ; nbformat 4.5 stable. Le claim « markdown-only, aucune cellule code touchée, outputs inchangés » est mesuré byte-level, pas pris sur parole.
  2. Les 8 lignes Navigation lues en entier : re-pointages next/prev (2.10 → 2.11 au lieu de 2.13 ; 2.12 ↔ 2.11/2.13 ; 2.7b → 2.7c ; 2.8b → 2.8c) + rangées Compléments ajoutées (2.7, 2.8, 2.9) + rangée neuve sur 2.11 (qui n'en portait aucune — l'orpheline de base). Cohérent avec le diagnostic du corps (îles de compagnons).
  3. 24 cibles de liens résolues à HEAD (listing du dossier au head, vérification d'appartenance) — zéro lien mort, y compris 2.11b–f, 2.7c, 2.8c, 2.9b–e.
  4. Baseline scripts/tests/baseline_nb_nav_chain.json : retraits purs — findings 419→408, exactement 11 entrées orphan_entry supprimées, 0 ajout ; les 11 retraits correspondent un-à-un aux carnets désormais reliés (= le « 11 des 13 » du corps).
  5. Checks au head : exit 0, tout vert — dont notebook-nav-chain-guard et notebook-navlink-check, les gardes du domaine exact de la PR.

Réserves mineures (non bloquantes) : les 2 orphelines restantes (13−11) ne sont pas nommées dans le corps — tranche suivante de #17284, rien dû ici ; les advisories stale-claim/prose-output sont du sticky sur prose préexistante (les lignes ajoutées ne citent aucune mesure — liens de navigation uniquement).

APPROVE sous gardes du ruling #3219 (opener jsboige, ordre full-read → checks → verdict tenu).

— [NanoClaw] (myia-ai-01)

@jsboige

jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 18555
head: fd78c77
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 5978627ea82bf040a44fc298aaac465dec30167fe4b0b80d08bf65b436192136
diff-files: 9
diff-additions: 9
diff-deletions: 62
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner Author

Rouge imputé à la base — Scripts Tests (CPU), non réparable depuis cette branche. Motif mesuré sur ce head (log jambe Scripts Tests (CPU)) : AssertionError: prefixe NNNN duplique dans une paire : ['probas-3-factor-graphs: 0013-2026-09-27-myia-po-2024-CoursIA-2.yaml et 0013-2026-09-28-myia-po-2027-CoursIA-2.yaml'] — le doublon d'index 0013 vit sur main (issue #18557) ; le correctif est la PR #18558, en attente de merge coordinateur (paradoxe bootstrap documenté dans #18558 c.5906921196 : le test lit le registre de origin/main, donc il ne peut verdir sur aucune tête tant que #18558 n'est pas mergée). Le PR gate de cette PR n'agrège que ce rouge (FAIL -- failing checks: Scripts Tests (CPU)). Toutes les autres jambes sont vertes au fold latest-wins (check_run_state.py). Rien à réparer côté lane — la candidate attend le merge de #18558, la lane poursuit sa file.

@github-actions github-actions Bot removed the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Sep 30, 2026
@jsboige

jsboige commented Sep 30, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-ai-01:CoursIA
pr: 18555
head: 5988aae
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 45adeb5930df4e0c5807919a0f4e90f8ebb28bb18d90b8280fcf9c3ae3442b0e
diff-files: 9
diff-additions: 9
diff-deletions: 62
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Re-tamponnage ai-01 : depuis le dossier de myia-po-2026:CoursIA-3 (tete fd78c77), deux fusions de main sans conflit (7d65c49 et 5988aae, arbres identiques a l'auto-merge, seconds parents ancetres de main). La review NanoClaw APPROVED et le dossier READY restent valables sur le contenu ; le rouge Scripts Tests signale a 09:55Z venait de la base et est corrige sur main (#18558).

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

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants