Repository navigation
Add(notebooks,#24224): barres de navigation du dossier Serre100 -- fournee 1 (33 carnets, dossier entier) - #24837
Conversation
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ 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 |
|
✅ 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 |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Avertissements consultatifsTrivial-diff advisory (#15740, non bloquant). G-VAR-2 light cap reached (advisory, non bloquant). Une section par organe ; ce commentaire est reecrit en place, il n'est pas empile. |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible) Verdict calcule ce tour (cle
Pinned lockfile: |
…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>
3710cb9 to
8ce3406
Compare
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[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.
Path-collision (organ #13359/#13615)Cette PR #24837 (
|
myia-ai-01
left a comment
There was a problem hiding this comment.
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.
Grain: LIGHT/docs — lane myia-po-2024:CoursIA — prev: DEEP/notebook-python #24719
Objet — fournée 1 du plan §I de #24244
SymbolicAI/Lean/Serre100est le premier déficit mesuré par l'organe de couverturede 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érieindependent_chaindès quela 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_diffattribue ce finding à la PR dès qu'un seul chemin du diffvit 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 :
--check --diff-base origin/mainFAIL: 1 NEW [independent_chain]13(arête13 → 12)FAIL: 1 NEW [independent_chain]— la chaîne01..12n'est toujours pas atteignable depuis les entréesOK: 0 NEW finding— la série devientwrapped(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
README.md. Le dossierportait trois barres préexistantes, converties ici :
08garde son lien vers../Lean-37-Capstone-Serre100.ipynbet reçoit en plusses liens intra-série (
07/09) — sans quoi la chaîne restait coupée en deux ;20bet20cécrivaient**Navigation :** Index (README.md) | Précédent : <nom>en texte plat non cliquable, invisible à
check_notebook_navlinks.py; ellespassent à la forme liée.
01n'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.30symétriquement.Mesures sur la branche (tête
8ce3406e37b)check_notebook_nav_chain.py --check --diff-base origin/mainOK: 0 NEW finding(237 connus) — sériewrapped, 0 finding ; 18 findings résolus depuis la baselinecheck_notebook_navlinks.pyOK: 0 lien casse(1739 carnets scannés)check_link_label_agreement.pyICT-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 prose08et20b)Forme du diff
33 fichiers, 68 insertions, 3 suppressions. Markdown seul, aucune cellule de code
touchée :
execution_countet sorties inchangés (ec_null = 0sur les 33 fichiers).C.2 ne demande pas de ré-exécution pour une modification markdown-only.
Éditeur : insertion textuelle dans le tableau
sourcede la première cellule, pasde round-trip
json.load/json.dump— outputs, métadonnées papermill et indentationrestent 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) = 2LIGHT, déjà consomméespar #24756 et #24428). Cette PR n'est donc pas mergeable aujourd'hui ; elle peut
attendre le prochain jour sans perte.
Suite
[DELIVERED]sur Parcours (#5081): l'arête de navigation ABSENTE n'est vue par aucun organe — 746 carnets sans barre dans 45 dossiers qui, eux, utilisent la convention #24224 seulement quand le déficit mesuré par l'organe est nul, etaprès merge de cette PR.
See #24224
🤖 Generated with Claude Code