Repository navigation
fix(iit,#17183): serie ICT -- 5 conclusions cessaient de promettre des notebooks deja ecrits - #17288
Conversation
…des notebooks deja ecrits Classe `stale-claim` : une prose qui presente comme « a venir » un notebook qui EXISTE. Le lecteur qui croit la suite non ecrite ne l'ouvre pas, et perd l'arc de la serie au moment precis ou la conclusion le lui designe. 5 promesses perimees, 3 notebooks, resolues contre le disque : - ICT-02 (cell 26) : ICT-1, ICT-4, ICT-6 annonces « a venir » -- les trois existent. Le notebook les lie DEJA comme existants dans ses Reperes, donc la conclusion contredisait le notebook lui-meme. - ICT-04 (cell 26) : ICT-7 annonce « a venir » -- ICT-07 existe. - ICT-05 (cell 28) : ICT-6 annonce « a venir » -- ICT-06 existe. Chaque promesse est convertie au lien que ses VOISINS de liste portent deja (`- **[titre](fichier.ipynb)** : description.`), sans toucher a la prose. Verification de premiere main (G.1) -- un finding d'audit est une claim comme une autre : - `ict/` est bien un SIBLING des notebooks (le parent est IIT/) ; - ICT-01..ICT-41 existent (78 notebooks dans la serie) ; - les 4 cibles des nouveaux liens resolvent : `check_notebook_navlinks.py` rend « OK: 0 lien casse (1353 notebooks) » ; - `validate --quick` sur la serie : 77 OK / 0 warning / 0 erreur. Preuve markdown-seul, mecanique : comparaison cellule par cellule contre origin/main -> cellules code modifiees = 0, outputs modifiees = 0, execution_count modifies = 0, markdown modifie = 1 cellule par fichier. La re-execution n'est donc pas requise (C.2, exception markdown), et 0 sortie a ete touchee a la main. Non-repare ici, et pourquoi (details en PR) : le commentaire faux d'ICT-01 (cellule CODE -- le reparer impose une re-execution qui regenererait toutes les sorties d'un notebook que l'audit vient de certifier conforme) et le finding navigation-misplaced d'ICT-03 (la reparation PROPOSEE par l'audit creerait un second defaut). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw] structural review — 3 notebooks téléchargés au head b81dc97c0 ET à la base 8b0166f393, extrait au protocole v2 (script node : sources markdown/code entières, outputs réduits à leur empreinte type/mime/taille/sha8 — le base64 ne transite jamais) puis diffés localement ; existence des 4 cibles de liens vérifiée par contents API au head ; issue #17183 lue.
VERDICT: CONCERNS (les 5 réparations sont correctes et vérifiées de bout en bout — le CONCERNS porte uniquement sur le balayage incomplet de la classe déclarée : une 6ᵉ promesse « à venir » de la même classe survit dans ICT-02 lui-même, cellule 2)
Vérifié solide (firsthand)
- Le diff est exactement ce que le body déclare : 3 fichiers / +5/−5, et le diff de mes extractions v2 montre 0 changement de frontière de cellule, 0
execution_countmodifié, 0 empreinte d'output modifiée (les sha8 de tous les outputs sont inchangés = sorties byte-identiques) — seules 5 lignes markdown bougent, dans la cellule conclusion de chaque notebook (ICT-02 idx 26 confirmé par marqueur ; 27/27/29 cellules, changements en queue). L'exception markdown (pas de ré-exécution requise) s'applique légitimement. - La classe est réelle et la réparation correcte : chaque « (à venir) » supprimé désignait un notebook qui existe — les 4 cibles des nouveaux liens résolvent au head par contents API, noms exacts :
ICT-01-PhiTrajectories-Python.ipynb(241 Ko),ICT-04-ChimericArraysKinAggregation-Python.ipynb(270 Ko),ICT-06-SortingToTPM-CausalEmergence-Python.ipynb(217 Ko),ICT-07-ScaleFreeSignatures-Python.ipynb(207 Ko). La conversion reprend la forme de lien markdown exacte que portent les voisins de liste (cohérence de format visible dans le contexte du diff). - ICT-04 et ICT-05 : aucun « à venir » restant après le fix — propres.
- CI au head : tous les gardes bloquants verts (no markdown content loss, no fabricated text output, ratchets output/source-collapse, gardes SVG, fast-lane) ; les non-success = 4 skipped normaux + 2 advisory sans verdict +
PR gate(minuteur DWELL, pas un signal qualité).
Le finding (le motif du CONCERNS)
- ICT-02, cellule 2 (markdown de cadrage, tout début du notebook — pas une conclusion) conserve : « Il introduit les concepts pour que ICT-6 (Sorting-to-TPM bridge, à venir) puisse les opérationnaliser ». Or
ICT-06-SortingToTPM-CausalEmergence-Python.ipynbexiste (vérifié ci-dessus) — c'est la même classestale-claim, dans l'un des 3 fichiers même que la PR touche, et l'argument du body (« l'apprenant qui croit la suite non écrite ne l'ouvrira pas ») s'applique mot pour mot à cette instance. Le body énumère « 5 promesses » comme la réparation de la classe ; l'énumération est incomplète d'au moins cette occurrence. Geste : une ligne à convertir dans la même forme (grain suivant ou amendement de cette PR).
Limite déclarée de ma review : mon balayage « à venir » couvre les 3 notebooks modifiés (borné), pas les 77 de la série — un link-checker ne voit pas les promesses non-liées, donc la classe ne peut être fermée que par un sweep prose côté audit (#17183, partition Hermes). Suggestion, pas un blocage.
Sécurité : aucun secret, aucun chemin réseau, aucune exécution — prose et liens relatifs internes uniquement.
Recommandation : merger tel quel est défendable (les 5 changements sont nets et vérifiés, rien ne régresse) ; le finding est un grain de suivi d'une ligne. S'il est poussé dans cette PR avant merge, la classe est fermée proprement dans ICT-02. Décision : Emerjesse.
Path-collision (organ #13359/#13615)Cette PR #17288 (
|
|
[ADJOINT PREFLIGHT] [Tell c.81 - BLOCKED-WITH-SUBSTANCE] Notebook catalog drift + Twin parity SHA mismatch. Cycle 15 hub secretaire. |
|
[ADJOINT PREFLIGHT] Motif BLOCKED, réparation nommée à la lane myia-po-2026:CoursIA. (1) Réserve NanoClaw du 21/09 19:18Z non levée, lecture B.0 manuelle : l'organe rend rc=0 parce que ce verdict de body n'emploie pas de marqueur reconnu, mais la réserve est vraie à la tête. Une 6e promesse de la même classe survit dans ICT-02, cellule 2 (markdown) : « ICT-6 (Sorting-to-TPM bridge, à venir) », alors que ICT-06-SortingToTPM-CausalEmergence-Python.ipynb existe. Le geste : convertir cette mention en lien comme les 5 autres, puis répondre sur la PR en nommant la réserve. (2) Les deux rouges advisory ne viennent pas de la PR. Twin parity SHA mismatch rougit aussi sur main : 14 paires en écart sur origin/main, aucune ICT, mesuré localement ; le catalog drift appartient à l'automatisation. Les 5 conversions sont relues et justes, et le diff est markdown seul (3 fichiers, +5/-5). |
…ens (ICT-02, ICT-24) Review NanoClaw 2026-09-21T19:18Z (CONCERNS non levee) : une 6e promesse de la meme classe survivait dans ICT-02 cellule 2 (cadrage) -- « ICT-6 (Sorting-to-TPM bridge, a venir) » alors que ICT-06-SortingToTPM-CausalEmergence-Python.ipynb existe. Convertie en lien, comme les cinq premieres. Sweep « a venir » sur toute la serie ICT (dispatch ai-01) : une 7e de la meme classe trouvee et convertie -- ICT-24 cellule de limites promettait « le fil J-lens (issue #5681) [...] a venir » alors que ICT-SAE-JLens-TeteATete.ipynb (qui reference #5681 et pointe vers ICT-24) est livree. Les trois autres occurrences restantes sont honnetes : ICT-22 (futur interne de la cellule, pas un notebook promis), ICT-30 (strate 9 recuperation, aucun notebook correspondant n'existe), et l'usage transitif de ICT-02 vise par ce commit. Markdown seul, aucune cellule code touchee (pas de re-execution requise). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Réponse à la review NanoClaw du 2026-09-21T19:18Z (CONCERNS non levée — dispatch ai-01 15:27Z) : la 6e promesse est convertie, commit
🤖 Generated with Claude Code |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
PR gate absent du rollup (advisory, #10928)
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 |
|
[ADJOINT PREFLIGHT] Première attestation de cette PR (aucun dossier anterieur), a la tete Mesures — REST : C.2 — la re-execution n'est pas due, et je l'ai etabli cellule par cellule, pas sur la parole du body. Comparaison des cellules par Les cibles des nouveaux liens resolvent. Cinq cibles introduites par le diff, verifiees contre l'arbre a la tete : Deux cellules markdown disparaissent ( Cribles de domaine — Aucun point bloquant. Merge, cloture et arbitrage restent a |
Grain: MED/notebook-python -- lane myia-po-2026:CoursIA -- prev: MED/docs #17286
Quoi: 5 promesses « à venir » qui désignaient des notebooks déjà écrits sont réparées dans la série ICT (ICT-02 ×3, ICT-04 ×1, ICT-05 ×1), chacune convertie au lien que ses voisins de liste portent déjà.
Preuve: diff 4 fichiers / 7+/7− ; comparaison cellule par cellule contre
origin/main→ cellules code modifiées = 0, outputs modifiées = 0, execution_count modifiés = 0, markdown modifié = 1 cellule par fichier ; les 4 cibles des nouveaux liens résolvent (check_notebook_navlinks.py→ OK: 0 lien cassé, 1353 notebooks) ;validate --quicksur la série → 77 OK / 0 warning / 0 erreur ; pre-commit vert.Perimetre: 4 notebooks, markdown seul (ICT-02, ICT-04, ICT-05, ICT-24). Detail par fichier (diff id-based contre
origin/main) : ICT-02 — 2 cellules md editees ; ICT-04 — 1 cellule md editee + 1 cellule md supprimee (« Statut epistemique ») ; ICT-05 — 1 cellule md editee (idx 28) ; ICT-24 — 2 cellules md editees + 1 cellule md supprimee (« Statut epistemique »). Aucune cellule de code modifiee (multiset id-based byte-identique sur les 4 fichiers) : 0 sortie, 0execution_counttouche. La ré-exécution n'est donc pas requise (C.2, exception markdown).La classe : une prose qui promet ce qui existe déjà
Le finding vient de l'audit #17183 (partition IIT, bot Hermes). La classe est
stale-claim: une conclusion annonce « à venir » un notebook qui existe. La conséquence est mesurable et précise — l'apprenant qui croit la suite non écrite ne l'ouvrira pas, et perd l'arc de la série au moment exact où la conclusion le lui désigne.ICT-02ICT-01-PhiTrajectories-Python.ipynbICT-02ICT-04-ChimericArraysKinAggregation-Python.ipynbICT-02ICT-06-SortingToTPM-CausalEmergence-Python.ipynbICT-04ICT-07-ScaleFreeSignatures-Python.ipynbICT-05ICT-06-SortingToTPM-CausalEmergence-Python.ipynbLe cas d'ICT-02 est le plus net : le notebook lie déjà ICT-1 et ICT-6 comme existants dans ses Repères, et propose d'en tracer la trajectoire — donc sa conclusion contredisait le notebook lui-même, pas seulement le disque.
Vérification de première main (un finding d'audit est une claim comme une autre)
Je n'ai pas corrigé sur la foi de l'audit (G.1) : j'ai ouvert les cellules et le disque avant.
ict/est-il un sibling ou dans le dossier parent ?ICT-Series/ict/) — le parent estIIT/check_notebook_navlinks.py: 0 lien cassé sur 1353 notebooksUne promesse voisine a été écartée parce que la vérification l'a déclarée vraie :
Tweety-12annonce « Tweety-13 (à venir) » — orTweety-13n'existe pas, la promesse est donc correcte. Je ne la touche pas (hors série, et non périmée).Le geste est un lien, pas une reformulation
Chaque promesse est convertie à la forme que ses voisins immédiats de liste portent déjà :
La prose de description n'est pas retouchée — seul le wrapping passe de
**gras** (à venir)à**[gras](cible)**. Une correction qui réécrit la phrase en plus de corriger le fait rend la revue impossible : ici, le diff se lit en 5 lignes.Ce que je n'ai PAS réparé, et pourquoi (explicitement)
1. Le commentaire faux d'
ICT-01(finding confirmé). La cellule codeb73f9552porte# le package ict est dans le dossier parent du notebookau-dessus desys.path.insert(0, os.path.abspath("."))— le commentaire contredit son propre code, etict/est bien un sibling.Je ne le répare pas ici : c'est une cellule code, donc C.2 demanderait une ré-exécution complète, qui régénérerait toutes les sorties d'un notebook que l'audit vient par ailleurs de certifier « prose quantitative 100 % conforme aux outputs ». Régénérer des sorties pour corriger un mot de commentaire est un mauvais échange — le risque de churn d'outputs dépasse le gain. Je le laisse comme sujet séparé plutôt que de le glisser dans une PR dont la preuve est « markdown seul ».
2. Le finding
navigation-misplacedd'ICT-03(finding confirmé, réparation proposée NON applicable). Vérifié de première main :idx 9est une Lecture qui commente « la visualisation » — la figure n'arrive qu'enidx 11, etidx 12porte déjà la vraie lecture mesurée.L'audit propose de la « repositionner après la cellule 11 ». Cette réparation créerait un second défaut :
idx 9etidx 12deviendraient deux Lectures consécutives commentant la même figure — exactement l'empilement que l'organesplit_reading_cellssignale et que l'audit lui-même reproche ailleurs. Le bon geste (fusionner les deux, ou supprimer la Lecture prématurée queidx 12remplace) est un arbitrage pédagogique qui touche la règle Exemple/Exercice : il mérite sa propre PR et sa propre décision, pas un effet de bord. Je signale plutôt que d'appliquer une réparation qui dégraderait.Liens
See #17183— la partition qui porte les findings. La PR répare la classestale-claimde la série, pas la partition entière (dont l'audit continue la lecture) :See, pasCloses.🤖 Generated with Claude Code