Skip to content

feat(ict,#13410): densite ICT — 4 notebooks de lecture chiffree (15b/15c/35/19, 920→1384, 808→1352, 925→1384, 874→1409) - #16432

Merged
myia-ai-01 merged 2 commits into
mainfrom
feature/13410-density-ict4
Sep 17, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
feature/13410-density-ict4

Conversation

@jsboige

@jsboige jsboige commented Sep 16, 2026 •

Copy link
Copy Markdown
Owner

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 --check par notebook : OK 4/4 (rc=0).
  • Commits 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

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

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

@github-actions

github-actions Bot commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 4
  • Code cells validated: 51
  • 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 Sep 16, 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 8.2s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 9.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 10.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 10.3s
Search-01-StateSpace.ipynb ✅ SUCCESS 6.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 4.5s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 52.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 5.8s

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

…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>
@jsboige jsboige changed the title feat(ict,#13410): densite ICT-15b/15c — 12 cellules de lecture chiffree (920→1384, 808→1352) feat(ict,#13410): densite ICT — 4 notebooks de lecture chiffree (15b/15c/35/19, 920→1384, 808→1352, 925→1384, 874→1409) Sep 16, 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.

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

@jsboige

jsboige commented Sep 17, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16432
head: 60b7c8f
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 01fd573490b6f424b5d48ad6d18b935fd0b0a7e2bacb9c97aee320837baab303
diff-files: 4
diff-additions: 268
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[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_count nul, 0 outputs manquant sur les 4 notebooks (organe outputs-required PASS).
  • 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.9894 sont 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.408 idem).
  • 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 ratchet pass (bloquant), Output-collapse ratchet (advisory) pass, Source-collapse / Output-flood / Papermill pass. 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'id nbformat 4.5 (7 + 5 + 6 + 6). Les 4 notebooks sont en nbformat_minor: 5 et toutes leurs cellules préexistantes portent un id — l'insertion est donc inconsistante avec son propre fichier. nbformat.validate() émet MissingIDFieldWarning (« 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 par id (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 sans id aprè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 de origin/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 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] 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.

@jsboige

jsboige commented Sep 17, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16432
head: 60b7c8f
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 3
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 4df77026cf73e451ef86eb16812359c7b26279e978ddd5600b4ec072a3939856
diff-files: 4
diff-additions: 268
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants