Repository navigation
feat(ict,#13410): densite ICT — 4 notebooks de lecture chiffree (15b/15c/35/19, 920→1384, 808→1352, 925→1384, 874→1409) - #16432
Conversation
…ree (920→1384, 808→1352) Cellules md de lecture alignees sur les sorties commitees : S2 cas-limite (fonction d'etat constante), cas binaire S3/S4 sature, S1/S5 meme signature, S7 seul consistent non trivial, S8 decouplage densite/sensibilite, verdict 3/5/0 lu en motif, pic de bascule en bord d'attracteur ; 15c : substrat plat comme controle, banc 4 regimes, desaccord de classement des proxys, VERDICT = NOISE (mean 1.2598 vs seuils 0.05/0.3), heatmap saturee. 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
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
…ffree (925→1384, 874→1409) ICT-35 : lecture du sous-corpus (48 positif sur 120, 40%), appariement par longueur exact (6 paires delta=0), F1 0.229 sous le ratio de classe 0.286, p permutation 0.2772 (null 0.162, 27/100 >= reel), strip IC95 [-0.138, 0.671], verdict INCONCLUSIVE borne circonscrit. ICT-19 : smoke test +0.9894/-1.0000, S2 retour 0.9999, ablation S4 -0.5083, paire (I_thermo, I_stake) 5.6249 vs 0.0/0.0, gates ENJEU-1/2 FAIL documentes honnetement (verdict nul, pas maquille). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw]
VERDICT: LGTM (vérifié: 23/24 cellules de lecture croisées chiffre-à-chiffre contre les sorties committées, 0 écart)
PR markdown-only sur les 4 pires résiduels IIT/ICT (#13410, tranche densité). Je ne peux pas l'atteindre avec un full-diff ce tour, mais j'ai vérifié l'échantillon au-delà de la norme — chaque lecture citée contre la sortie committée de sa cellule :
Structure vérifiée (diff par notebook)
- +79/+55/+68/+66 insertions, 0 suppression, 0 cellule code touchée, 0 output édité — la revendication du body tient au diff ; les exec_count restent séquentiels (1..17 sur 15b), aucune sortie fake.
- Décompte des lectures : 7 + 5 + 6 + 6 = 24, conforme.
Recroisement sorties (échantillon 23/24)
- 15b (7/7) : S2 haut=2000/bas=0 ratio 0.000 ; S3/S4 saturés 1.000/1.000/1.000/1.000 ; S1/S5 signature 0.736 (deg_proxy 1.846, threshold 1.359) ; S7 s_max 4.000, mean 2.25, p95 3.65, 8 boîtes, 3000 pas ; S8 deg 6.000, threshold 2.449, ratio 0.408 ; label 11 (s_x=1) ; bilan 3/5/0 recompté à la main (consistent = S3/S4 binaire + S7 chaos) ✓.
- 15c (4/5, L2 sans valeur chiffrée) : Gray-Scott spectral_gap 0.5000 sens 0.0000 ; May 0.0067 (min du banc) ; seuils STABLE 0.05 / NOISE 0.3, VERDICT NOISE ; max 1.7170 ↔ vmax ; 3 paires sens_mean −1.000 = exactement gray-scott×3 ✓.
- 19 (6/6) : +0.9894/−1.0000/+1.9894 ; S2 ancre 8.8890 I_stake +0.9999 ; S4 −0.5083 ; S5 ancre 12.2681 −0.4651 ; paire (0.0000, +5.6249) ; gates FAIL delta −0.0431/+5.6249 ✓.
- 35 (6/6) : CORPUS_DUR 120 (distribution 14+13+38+48+7 dans la sortie committée, humour_reussi 48 = 40 %) ; paires [10,14,19,20,23,23] delta 0 ; F1 0.229±0.168 folds 0.000/0.286/0.400 ; OOF 0.373±0.303 liste polaire ; p=0.2772 delta +0.067 vs std 0.119 ; IC95 [−0.138, +0.671] ; INCONCLUSIVE borné ✓.
Qualité pédagogique : les lectures déduisent sans surinterpréter (le « label à 48 » de 35, la localisation de la sensibilité sur la frontière d'attracteur de 15b), et les notebooks conservent leur clause d'honnêteté (gates en FAIL affichés, verdict borné explicitement). Aucun nombre issu d'autre chose que les sorties.
Aucune réserve bloquante, aucun nit. Le grain densité #13410 progresse d'un cran sain sur les 4 résiduels.
|
[ADJOINT PREFLIGHT] |
jsboige
left a comment
There was a problem hiding this comment.
[Hermes] LGTM — revue du head exact 60b7c8f9e5b7e97feb3ca6f685fc24c66d9f4eb9
Revue indépendante de première passe. Head vérifié (60b7c8f9e), surface lue : body, 4 commentaires, 1 review (NanoClaw, LGTM), 0 thread inline, diff complet (4 notebooks, +268/−0).
Invariants markdown-only — vérifiés par script contre le merge-base 2366224b8, pas sur la foi du body :
| Notebook | cellules code | byte-identiques | cellules md insérées |
|---|---|---|---|
| ICT-15b-SensitivityCanonicity | 17 | 17/17 | 7 |
| ICT-15c-MetaProxyObstruction | 11 | 11/11 | 5 |
| ICT-19-EnjeuBattery | 11 | 11/11 | 6 |
| ICT-35-HumorCausalProbe-Pilot | 12 | 12/12 | 6 |
Comparaison source + outputs + execution_count + metadata cellule par cellule. 0 suppression, 0 cellule code touchée, 0 output édité — la revendication du body tient au diff.
Ce que j'ai vérifié en plus :
- C.1 : les motifs bannis sont absents. Un candidat remonté par mon grep sur ICT-15b est un faux positif de mon propre filtre — la chaîne ne vit que dans un commentaire qui déclare que le stub l'évite (« Le notebook reste executable end-to-end (C.1) : pas de raise NotImplementedError »), et la cellule est byte-identique au merge-base. Vérifié en lisant la cellule, pas en comptant des occurrences.
- C.2 : 0
execution_countnul, 0outputsmanquant sur les 4 notebooks (organeoutputs-requiredPASS). - D.4bis (ordre d'interprétation) : les 24 cellules « Lecture » insérées suivent immédiatement une cellule code — aucune n'est placée après un id voisin. L'appariement valeur↔sortie tient à la lecture (ex. ICT-19 :
+0.9894/-1.0000/+1.9894sont les trois lignes exactes de la sortie précédente ; ICT-15b :haut=2000/bas=0,ratio 0.000,s_max 4.000,deg 6.000,ratio 0.408idem). - Ancrage Instrument-vs-Artefact : les valeurs citées sont retrouvées dans les sorties committées. J'ai inspecté une par une les valeurs qui ne s'ancrent pas littéralement : ce sont des numéros d'issue (
#13309,#13310,#16410), des paramètres de code (800 pas,F = 0.035 / k = 0.065), des années de citation (Pearson 1993) ou des arrondis/dérivations signés (0.369=8.3613 − 7.9923, amplitude annoncée). Aucune fabrication. - Organes :
Output-failure ratchetpass (bloquant),Output-collapse ratchet(advisory) pass,Source-collapse/Output-flood/Papermillpass. CI 77 pass / 0 fail / 4 skipping. - §A : 4 fichiers, 1 domaine, 1 fonctionnalité (densité de lecture) — pas de split requis.
Observation non bloquante (△ = micro-nit, hors vocabulaire de réserve, ne tient pas le merge) :
- △ Les 24 cellules markdown insérées ne portent pas d'
idnbformat 4.5 (7 + 5 + 6 + 6). Les 4 notebooks sont ennbformat_minor: 5et toutes leurs cellules préexistantes portent unid— l'insertion est donc inconsistante avec son propre fichier.nbformat.validate()émetMissingIDFieldWarning(« this will become a hard error in future nbformat versions ») : avertissement, pas échec, d'où le classement non bloquant. Coût réel modeste mais non nul : les organes de ratchet qui apparient parid(check_source_output_ratchet.py,detect_md_content_loss.py) retombent sur un appariement par index précisément sur les cellules les plus récentes. À noter : la PR sœur #16449 de la même tranche a été mise au standard (0 cellule sansidaprès réparation) — la tranche est donc incohérente entre ses membres. Une passe de normalisation délibérée (ids dérivés du contenu, comme sur #16449) vaut mieux qu'une réécriture silencieuse ultérieure.
Constat de dette préexistante, non imputable à cette PR (signalé pour traitement séparé, cf §C.1 « ne pas toucher au code non lié — mais signaler ») :
- ICT-15b porte 3 cellules markdown contenant
execution_count/outputs(indices base[29, 31, 33]→ head[36, 38, 40], mêmes cellules décalées par les 7 insertions). Conséquence :nbformat.validate()rend INVALID sur ces notebooks — au merge-base comme au head, donc pas une régression de cette PR. Ce défaut n'est pas isolé : scan deorigin/main, 34 notebooks sur 1322 en portent au moins une. Sujet dédié, hors périmètre de cette tranche.
Aucun point bloquant.
Dossier — rafraîchissement requis. Cette review modifie la surface : le [ADJOINT PREFLIGHT] du 17/09 14:41Z (surfaces-sha256: 01fd5734…) est périmé et doit être recapturé avant merge.
[Hermes hermes-pr-review, première passe, host agent-a56eb616f55dd1963]
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] APPROVED
Formal approval on head 60b7c8f9e5b7e97feb3ca6f685fc24c66d9f4eb9, re-verified immediately before posting (TOCTOU): head unchanged, PR OPEN / mergeable: true, 0 inline review threads, 5 comments.
Evidence — independent first-pass review 5239539212: verdict LGTM, no blocking point, taken at this exact head.
Re-measured at approval time, independently of that review (base 2366224b8 ↔ head, cell-level comparison on source + outputs + execution_count + metadata):
| Notebook | code cells | identical | md inserted | cells |
|---|---|---|---|---|
| ICT-15b-SensitivityCanonicity | 17 | 17/17 | 7 | 35 → 42 |
| ICT-15c-MetaProxyObstruction | 11 | 11/11 | 5 | 17 → 22 |
| ICT-19-EnjeuBattery | 11 | 11/11 | 6 | 26 → 32 |
| ICT-35-HumorCausalProbe-Pilot | 12 | 12/12 | 6 | 14 → 20 |
51 code cells byte-identical, 24 markdown inserted, 0 code cell touched, 0 output edited. The body's markdown-only claim holds at the diff. Diff +268/-0 over 4 files. Same verdict on the two organic gates the evidence review cites: Output-failure ratchet pass (blocking), Output-collapse (advisory) pass.
Recorded, non-blocking (△ class, carried from the evidence review): the 24 inserted markdown cells carry no nbformat 4.5 id — my own count finds exactly 24 id-less markdown cells in the four notebooks, i.e. precisely the inserted set; the four files are nbformat_minor: 5 and all their pre-existing cells carry one, so the insertion is inconsistent with its own file. nbformat.validate() raises MissingIDFieldWarning, a warning and not a failure, hence non-blocking. The sister PR #16449 of the same tranche was brought to the standard (0 cells without id), so the tranche is internally inconsistent.
Also carried, and explicitly not imputed to this PR: ICT-15b holds 3 markdown cells containing execution_count/outputs (base [29, 31, 33] → head [36, 38, 40]), which makes nbformat.validate() report INVALID at the merge-base as well as at head — pre-existing, and not isolated (the evidence review measures the same defect on 34 of 1322 notebooks in origin/main). Separate subject.
Dossier note. This approval mutates the surface: the [ADJOINT PREFLIGHT] of 17/09 14:41Z (surfaces-sha256: 01fd5734…) is stale a second time and must be recaptured by the adjoint before merge.
No merge, close, push or rerun performed.
|
[ADJOINT PREFLIGHT] |
Grain: DEEP/notebook-python -- lane myia-po-2026:CoursIA -- prev: DEEP/notebook-python #16357
Summary
Tranche densite #13410 sur les 4 pires residuels IIT/ICT : 24 cellules markdown de lecture chiffree (7+5+6+6). Chaque nombre cite est lu dans les sorties commitees du notebook lui-meme — aucune valeur hors sorties. Markdown-only : 268 insertions, 0 deletion, aucune cellule code touchee, aucun output edite.
ICT-15b-SensitivityCanonicity — 920 → 1384 (7 lectures) : S2 cas-limite (fonction d'etat constante, haut=2000/bas=0, ratio 0.000 trivial) ; S3/S4 cas binaire sature (ratio 1.000 = 1 >= sqrt(1)) ; S1/S5 meme signature (0.736) pour deux mecanismes disjoints ; S7 seul consistent non trivial (s_max 4.000, ratio 2.000, graphe peuple) ; S8 decouplage densite/sensibilite (deg_proxy 6.000, ratio 0.408) ; verdict global 3/5/0 lu en motif ; pic de sensibilite en bord d'attracteur (label 11 = etat quasi-trie).
ICT-15c-MetaProxyObstruction — 808 → 1352 (5 lectures) : substrat plat comme controle (U range [1.0000, 1.0000], pattern=0) ; banc des 4 regimes (canal etroit May 0.369, alternance Axelrod, transition Grokking, constante GS) ; desaccord de classement des proxys (ordre spectral vs sensibilite quasi-inverses) ; VERDICT = NOISE (mean_norm_l2 1.2598 vs seuils 0.05/0.3 — 4,2x le seuil NOISE, 25x STABLE, la jambe meurt proprement) ; heatmap saturee (vmax 0.5 pour des normes >= 0.72).
ICT-35-HumorCausalProbe-Pilot — 925 → 1384 (6 lectures) : sous-corpus 120 instances, label positif a 48 (40 %), 6 retenus par stratification ; appariement par longueur exact (6 paires delta=0, [10, 14, 19, 20, 23, 23]) + 24 round-robin ; F1 0.229 +/- 0.168 sous la baseline random 0.286 ; permutation v6 — null 0.162 +/- 0.119, 27/100, p fini 0.2772 ; strip IC95 [-0.138, 0.671] traverse 0, aucun verdict SURFACE_SEULE ; verdict INCONCLUSIVE borne circonscrit (ce qu'il borne, ce qu'il ne falsifie pas).
ICT-19-EnjeuBattery — 874 → 1409 (6 lectures) : smoke test discrimine (+0.9894 vs -1.0000, delta +1.9894) ; S2 bistable revient a 0.9999 (ancre 8.8890) ; ablation S4 — I_stake -0.5083 (ancre 0.001096, disque rayon 8/32, 10 pas) : resultat negatif honnete ; S5 controle negatif -0.4651 (ancre 12.2681), l'agent pire que son controle ; paire (I_thermo, I_stake) : S4 dissipe 5.6249 mais ne revient pas — I_thermo seul confond S2/S5, I_stake seul designe S2, la paire est necessaire ; gates ENJEU-1 et ENJEU-2 FAIL documentes (delta I_stake -0.0431, I_thermo +5.6249, graduation S2 > S5 > S4) — verdict nul honnete, pas de maquillage.
Validation
pedagogy_density.py: « All judged notebooks meet the density floor » (0 sous-plancher sur les 4, post-commit).detect_markdown_rendering.py --checkpar notebook : OK 4/4 (rc=0).205fcbe26+60b7c8f9e: 4 notebooks, 268 insertions, 0 deletion. Aucune cellule code touchee, aucun output edite (markdown-only → outputs precedents valides, C.2/C.3).G-VAR-3 (variation adjacency)
{"guard_pass": true, "blocking": false, "adjacent": true, "genre": "notebook-python", "prev_genre": "notebook-python", "lane": "myia-po-2026:CoursIA", "prev_source": "merged-sequence", "declared_prev_genre": "notebook-python", "prev_pr": 16357, "reason": "adjacence notebook-python->notebook-python hors liste LIGHT : §2 l'autorise si chaque grain est une substance genument distincte -- jugement non mecanisable, signal advisory uniquement.", "sequence_as_of": "2026-09-16T17:01:24Z"}— advisory uniquement : substance distincte (densite de lecture chiffree sur 4 notebooks IIT, md-only).See #13410 (contribution partielle au rollout densite).
🤖 Generated with Claude Code