Skip to content

Add(notebooks,#24224): barres de navigation du dossier Serre100 -- fournee 1 (33 carnets, dossier entier) - #24837

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/24224-serre-nav-s1
Nov 6, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/24224-serre-nav-s1

Conversation

@jsboige

@jsboige jsboige commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2024:CoursIA — prev: DEEP/notebook-python #24719

Objet — fournée 1 du plan §I de #24244

SymbolicAI/Lean/Serre100 est le premier déficit mesuré par l'organe de couverture
de navigation livré par #24244 : 31 carnets sans barre sur 33. Le plan §I (décision
user du 03/11, Q162 d) en fait la fournée 1, ouverte par cette lane.

Cette PR traite les 33 carnets du dossier, dans l'ordre du README (01 → 30, 01b,
20b, 20c inclus).

Pourquoi la fournée est livrée entière, et non en vagues de 15 fichiers

Le plan §I définit une fournée comme « l'ajout de barres de navigation aux carnets du
dossier ». J'ai d'abord découpé en vagues (critère G.4 ≤ 15 fichiers) et mesuré : un
découpage partiel est rouge par construction
, pas par accident.

check_notebook_nav_chain.py émet un finding de série independent_chain dès que
la série est « jugée » (≥ 1 arête interne) et qu'un départ de chaîne n'est atteint par
aucune entrée. Une vague partielle crée exactement cela : le bloc barré devient une
composante navigable déconnectée des carnets encore sans barre. Et
_partition_new_by_diff attribue ce finding à la PR dès qu'un seul chemin du diff
vit sous la série
(cas particulier documenté dans l'organe, re-mesure ai-01
c.5856207624) : il est donc bloquant.

Mesures du découpage, sur la branche :

État de la branche --check --diff-base origin/main
11 carnets barrés (vague 1) FAIL: 1 NEW [independent_chain]
+ 13 (arête 13 → 12) FAIL: 1 NEW [independent_chain] — la chaîne 01..12 n'est toujours pas atteignable depuis les entrées
33 carnets barrés (cette PR) OK: 0 NEW finding — la série devient wrapped (0 entrée, 0 départ de chaîne, 0 finding)

Le seul état vert est donc le dossier chaîné en entier. G.4 (> 15 fichiers) est
assumé et motivé : une seule classe de modification mécanique (3 lignes markdown
en tête de la première cellule markdown), un seul dossier, zéro cellule de code
touchée
, 68 insertions / 3 suppressions. Découper produirait N PR rouges et non
mergeables, ce qui n'est pas un gain de revue.

Forme posée

**Navigation** : [<< precedent](precedent.ipynb) | [Index](README.md) | [suivant >>](suivant.ipynb)
  • Troisième ligne de la première cellule markdown, juste après le titre.
  • Liens markdown réels vers des carnets du dossier et vers README.md. Le dossier
    portait trois barres préexistantes, converties ici :
    • 08 garde son lien vers ../Lean-37-Capstone-Serre100.ipynb et reçoit en plus
      ses liens intra-série (07 / 09) — sans quoi la chaîne restait coupée en deux ;
    • 20b et 20c écrivaient **Navigation :** Index (README.md) | Précédent : <nom>
      en texte plat non cliquable, invisible à check_notebook_navlinks.py ; elles
      passent à la forme liée.
  • 01 n'a pas de voisin gauche : sa barre ne porte que [Index] et le lien suivant,
    plutôt qu'un lien << fabriqué vers un début de série inexistant. 30 symétriquement.

Mesures sur la branche (tête 8ce3406e37b)

Organe Résultat
check_notebook_nav_chain.py --check --diff-base origin/main OK: 0 NEW finding (237 connus) — série wrapped, 0 finding ; 18 findings résolus depuis la baseline
check_notebook_navlinks.py OK: 0 lien casse (1739 carnets scannés)
check_link_label_agreement.py 0 désaccord sur Serre100 (le seul du dépôt est ICT-13b, préexistant, hors périmètre)
check_activity_leak.py --diff origin/main...HEAD [OK] aucun passage d'activité dense ajouté (33 carnets analysés)
check_prose_quantitative_claims.py --diff origin/main...HEAD [OK] aucun compteur quantitatif en prose
Couverture du dossier (barre présente) 33 / 33 carnets (contre 2 / 33 à la baseline : 08 et 20b)

Forme du diff

33 fichiers, 68 insertions, 3 suppressions. Markdown seul, aucune cellule de code
touchée : execution_count et sorties inchangés (ec_null = 0 sur les 33 fichiers).
C.2 ne demande pas de ré-exécution pour une modification markdown-only.

Éditeur : insertion textuelle dans le tableau source de la première cellule, pas
de round-trip json.load/json.dump — outputs, métadonnées papermill et indentation
restent octet pour octet. Les fichiers ont été réécrits en binaire pour rester en LF
(core.autocrlf=false ; 0 fichier en CRLF après coup).

Cadence — budget G-VAR-2

Grain: LIGHT/docs : le plan §I qualifie lui-même une fournée de grain LIGHT
(« générable par balayage du dossier suivant »). Le budget du jour de cette lane est
épuisé (7 grains mergés aujourd'hui → max(1, 7 // 3) = 2 LIGHT, déjà consommées
par #24756 et #24428). Cette PR n'est donc pas mergeable aujourd'hui ; elle peut
attendre le prochain jour sans perte.

Suite

See #24224

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Nov 5, 2026

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

github-actions Bot commented Nov 5, 2026

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

github-actions Bot commented Nov 5, 2026

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 commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

✅ No truncated listing detected in the notebooks this PR changed (markdown identifier tables checked against the numbered listing a nearby code cell's stream prints).

Scope = notebooks CHANGED in this PR, not the whole corpus. The listing-coherence-report run artifact holds the structured JSON.
Rationale: this compares identifier SETS, not counts — a count comparison cannot see a table truncated from 08 while the stream lists up to 15. The contiguous-prefix discriminant is what keeps an arbitrary subset (« the 3 longest ») out of the report. See python scripts/check_listing_coherence.py --help.

@github-actions

github-actions Bot commented Nov 5, 2026

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 added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Nov 5, 2026
@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Avertissements consultatifs

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.

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2024:CoursIA a deja consomme son budget LIGHT du jour (#24428 (merge a 2026-11-05T00:18:44Z)).
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.

Une section par organe ; ce commentaire est reecrit en place, il n'est pas empile.

@github-actions github-actions Bot added trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) coursia-advisory-lock-c7ab969e600 and removed coursia-advisory-lock-c7ab969e600 labels Nov 5, 2026
@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 33
  • Code cells validated: 378
  • 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 commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Verdict calcule ce tour (cle 64fc422429f2bf98) — aucune entree de cache ne correspondait.

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.7s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.5s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 58.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.1s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 15.1s

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

…urnee 1 (33 carnets)

Les 33 carnets du dossier recoivent une barre `**Navigation**` en tete de leur
premiere cellule markdown, dans l'ordre du README : lien precedent, index du
dossier, lien suivant.

Les trois barres preexistantes sont converties en liens markdown reels :
20b et 20c portaient un « Precedent : <nom> » en texte plat, invisible a
check_notebook_navlinks.py ; 08 garde son lien vers le capstone Lean-37 et
recoit en plus ses liens intra-serie.

Insertion textuelle dans le tableau `source` (pas de round-trip json),
fichiers reecrits en binaire pour rester en LF. Aucune cellule de code
touchee : execution_count inchange (0 nul sur 33 fichiers).

Mesures : check_notebook_nav_chain --check --diff-base origin/main -> 0 NEW
(serie desormais jugee `wrapped`, 0 finding) ; check_notebook_navlinks ->
0 lien casse ; check_link_label_agreement -> 0 desaccord sur Serre100.

See #24224

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige
jsboige force-pushed the feature/24224-serre-nav-s1 branch from 3710cb9 to 8ce3406 Compare November 5, 2026 15:32
@jsboige jsboige changed the title Add(notebooks,#24224): barres de navigation du dossier Serre100 -- fournee 1 (11 carnets) Add(notebooks,#24224): barres de navigation du dossier Serre100 -- fournee 1 (33 carnets, dossier entier) Nov 5, 2026

@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] Review fournée 1 Serre100 — rejeu labo ai-01

Verdict motivé par rejeus réels (tarballs head 8ce3406e + base cd2a8574, organe check_notebook_nav_chain.py du head, labo git git add -A), pas par lecture du diff seul.

1. Head = wrapped, 0 finding série — mesuré. La série Serre100 ressort wrapped (33 carnets, 0 entrée orpheline, 0 départ de chaîne) au head. Les 3 link_404 de mon premier labo (08→Lean-37, 08→Langlands/06, 25→GALOIS/01) sont des artefacts d'extraction partielle : les 3 cibles résolvent au head réel via contents?ref= (fa4a41b3 / bc67641f / c716fc72), et après extraction des voisins les findings Serre100 tombent à 0.

2. Contre-épreuve du découpage (ligne 1 du tableau du body) — mesurée. Base + seuls les 11 premiers carnets barrés → rouge avec independent_chain (1) + orphan_entry (22) sur la série. « Une vague partielle est rouge par construction » est donc une prédiction vérifiée, pas une assertion. Je n'ai pas rejoué la ligne intermédiaire (11+13=24) : le mécanisme est établi par les deux bornes (11 barré = rouge, 33 barré = vert).

3. Périmètre mécanique — vérifié. 33/33 carnets : 0 cellule de code touchée, 0 changement structurel, seules les sources markdown bougent (+68/−3). Barres posées 33/33 ; 01 sans lien << fabriqué vers un début de série inexistant ; 08 conserve son lien externe Lean-37 ET reçoit 07/09 ; 20b/20c converties du texte plat non cliquable vers la forme liée (20c remplace sa ligne en place, ligne 20 de la cellule d'en-tête).

4. CI au head — corroborée. check-nav-chain success (OK: 0 NEW finding vs baseline, 1739 carnets au graphe) et check-navlinks success, cohérents avec le labo.

5. Scan sécurité du diff : rien.

Micro-note non bloquante : le numeral « 31 carnets sans barre sur 33 » dépend du critère du compteur de #24244 — à la base je compte 3 lignes de nav (08 cliquable, 20b/20c texte plat), ce qui donne 30-32 « sans barre » selon le critère ; sans effet sur la PR, qui barre le dossier entier.

La dérogation G.4 (>15 fichiers) est endossée : une seule classe de modification mécanique, un seul dossier, zéro code — et découper produirait N états rouges non mergeables, comme mesuré au point 2.

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #24837 (Add(notebooks,#24224): barres de navigation du dossier Serre100 -- fournee 1 (33 carnets, dossier entier)) 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.

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

APPROVE ai-01 a la tete 8ce3406.
Fournée 1 Serre100 : 33/33 carnets barres, dossier entier car toute vague partielle est rouge par construction (independent_chain, contre-epreuve Hermes) ; markdown seul, 3 lignes par carnet, 0 cellule code touchee, ec inchanges, 18 findings resolus, nav-chain wrapped 0 finding, navlinks 0 lien casse.
La review fournée de clusterManager-Myia (labo + contre-epreuve du decoupage + derogation G.4 endossee) n'ouvre aucune reserve.

@myia-ai-01
myia-ai-01 merged commit cd8cb06 into main Nov 6, 2026
132 of 148 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants