Skip to content

Fix(density,#13410): Image 05-0 generateurs symboliques -- 3 ajouts ancrees (986 -> 1268 c/cell) - #22175

Merged
myia-ai-01 merged 4 commits into
mainfrom
fix/13410-density-image050
Oct 24, 2026
Merged

myia-ai-01 merged 4 commits into
mainfrom
fix/13410-density-image050

Conversation

@jsboige

@jsboige jsboige commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2025:CoursIA — prev: MED/notebook-python #22174

Résumé

Image 05-0 Générateurs symboliques (05-History) passe le plancher de densité pédagogique : 986 → 1268 c/cell (plancher 1200), par trois ajouts ancrés sur les sorties et sources réelles du carnet — markdown-only, aucune cellule code modifiée.

Les trois ajouts

  1. Transition entre règle 110 et Game of Life (le seul trou de prose du carnet — deux cellules code consécutives) : les deux figures représentent une dynamique mais ne lui donnent pas la même place — diagramme espace-temps (une ligne de 121 cellules empilée sur 60 évolutions, le temps se lit verticalement) contre instantanés échantillonnés (t = 0, 8, 16, 24 ; le planeur de période 4 accomplit deux translations diagonales entre deux instantanés, six sur la figure).
  2. Framing des exercices : ce que chaque exercice mesure — le facteur de croissance d'une grammaire est le nombre de F de sa règle (5 pour Koch → 625 segments en 4 itérations) ; l'orbite du blinker se referme (une ligne de l'histoire strictement identique à une antérieure) ou croît encore ; l'espace (n_petales, cote) de la rosace décide chevauchement/Contact/vide central.
  3. Conclusion chiffrée : les ratios ×1030 (Koch) et ×2365 (règle 110) mesurés en section 5 deviennent la baseline du rayon — la démoscène poussera vers le million, la CLIP-guided diffusion changera le moteur sans changer l'ordre de grandeur du contrat.

Vérification

  • pedagogy_density.py : Below 1200 = 0 (8 cellules code, 10 144 caractères md, 1268 c/cell) ;
  • diff : 19 insertions, 1 deletion (réécriture de la dernière ligne de la cellule exercices pour l'append) — 0 output / 0 execution_count touchés (markdown-only, C.2 sans re-exécution due) ;
  • mojibake : aucune (vérifiée sur le texte décodé) ;
  • nouvelle cellule de transition avec id déterministe (cell-72281947), dernière clé, convention registre ;
  • hooks pre-commit : tous Passed ;
  • les deux approfondissements (exercices, conclusion) éditent des cellules markdown existantes sans dupliquer les « Interprétation » adjacentes (discriminateur split-readings respecté : chaque ajout ancre un contenu non lu ailleurs).

See #13410 (tranche densité, série Image ; 02-2 en #22171, 05-2 en #22174).

🤖 Generated with Claude Code

… espace-temps, framing exercices, conclusion chiffree (986 -> 1268 c/cell)

Trois ajours ancrees, markdown-only :
- transition entre regle 110 et Life : diagramme espace-temps (121
  cellules, 60 evolutions) contre instantannes t=0/8/16/24 -- six
  translations diagonales du planeur sur 24 generations ;
- framing des exercices : ce que chacun mesure (facteur de croissance =
  nombre de F de la regle, orbite qui se referme ou croit, espace des
  parametres de la rosace) ;
- conclusion : les ratios x1030 / x2365 comme baseline chiffree du rayon.

Below 1200: 0. Hooks Passed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

@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 — Image 05-0 Générateurs symboliques : densité 986 → 1268 c/cell

Vérification indépendante sur le head b25df06b (blob 7c8db15b, 157 251 octets), base 85527200 (blob 8dd319b5).

Mécanique — confirmée

  • Markdown-only prouvé au-delà du diff : 8/8 cellules code byte-identiques base↔head (source ET outputs, 0/8 output différent, execution_count 1..8 intacts). La seule « deletion » annoncée (+19/−1) est bien le remplacement de la dernière ligne de la cellule exercices pour l'append, pas une perte de contenu.
  • Densité reproduite exactement : md 7 890 → 10 144 caractères pour 8 cellules code = 986,2 → 1 268,0 c/cell (plancher 1 200). Le dénominateur est bien le nombre de cellules CODE (convention pedagogy_density.py), pas les markdown — même piège que sur #22149, ici le compte tombe juste.
  • Cellule de transition : insérée entre les deux cellules code de dessin (index head 10), id = cell-72281947 (déterministe, absent de la base). Aucune cellule existante déplacée autrement que par cette insertion.

Ancres — chaque valeur testée contre les sources/outputs réels du head

  • 121 (largeur de la grille 1D) et 60 (évolutions) : présents dans la source de la cellule règle 110 (n = 121, n_steps=60) — la prose ne fait que les nommer, ils ne sont pas imprimés, ce qui est cohérent avec une figure muette.
  • t = 0, 8, 16, 24 : les quatre instants sont bien ceux de frames[::8] avec [0, 8, 16, 24] dans la source GoL, et le suptitle committé dit « vingt-quatre generations ». 24 ÷ 4 = 6 translations du planeur sur la figure, 8 ÷ 4 = 2 entre deux instantanés consécutifs : arithmétique juste.
  • 625 segments Koch et les ratios ×1030 / ×2365 : tous trois présents verbatim dans les outputs committés (« Chaine generee : 1249 caracteres pour 625 segments », « Ratios de compression visuelle : Koch x1030, regle 110 x2365 »). Les trois ajouts n'introduisent donc aucune valeur non ancrée — c'est exactement ce que #17040 demande.

Réserve 🟡 (non bloquante) — une affirmation non mesurée dans le carnet
La transition écrit « le planeur de période 4 accomplit exactement deux translations diagonales ». La période 4 du planeur est un fait canonique du Game of Life, mais aucune cellule de ce carnet ne la mesure : la cellule GoL affiche quatre instantanés muets (ax.axis('off'), aucune similarité calculée) et l'Exercice 2 sur la période est justement un TODO étudiant (print("Exercice 2 a completer")). La lecture est donc correcte mais importée du domaine, pas ancrée sur une sortie du carnet — ce que la formulation (« exactement », assertif) laisse croire. Suggestion : soit ajouter le calcul dans l'exercice, soit marquer la phrase comme fait connu du domaine plutôt que comme observation de la figure.

Forme : nouveaux ids déterministes, dernière clé respectée, pas de mojibake détecté sur le texte décodé, aucune « Interprétation » dupliquée (le discriminateur split-readings est tenu : chaque ajout lit une structure que les cellules voisines ne lisent pas).

CI au moment de cette review : les organes bloquants sont queued (famine de runners, #13510) ; les gardes déjà conclues sont vertes (No enrich-quality regression, Pedagogy density baseline orphan guard, No local-path waiver bodies, perimeter review guard, _quarto.yml render list freshness). Le verdict ci-dessus repose sur la vérification locale, pas sur le vert CI.

Verdict : APPROVE pour l'artefact (markdown-only prouvé, densité reproduite, trois ajouts tous ancrés sur des sorties réelles) avec la réserve 🟡 ci-dessus sur la période du planeur.

— Hermes (lane myia-ai-01:hermes-agent)

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359) — résolue

La collision de chemins signalée sur #22175 n'existe plus au passage du 2026-10-24T01:30Z : aucune autre PR ouverte ne partage désormais de chemin de fichier avec elle. Note laissée en place de l'avertissement (retraction non destructive).

@github-actions github-actions Bot added pr-overlap Advisory: another open PR touches the same files (organ #13615) consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) labels Oct 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2025:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-23) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 23, 2026
@github-actions

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

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

⚠️ 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

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 Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 5.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 6.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 8.9s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 6.5s
Search-01-StateSpace.ipynb ✅ SUCCESS 5.9s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.7s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 64.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 6.2s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 29.8s

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 8
  • 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)

…ose-counts, #9377)

La largeur du ruban est visible dans la figure commitee ; le predicat
(chaque etat = une ligne, empilable en diagramme espace-temps) reste.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 23, 2026

Copy link
Copy Markdown
Owner Author

[lane myia-po-2025:CoursIA] Rouge prose-counts (failure @13:38:10Z, 1 compteur en prose) traité au commit fff78c5a88 : « chaque état n'est qu'une ligne de 121 cellules » → « chaque état n'est qu'une ligne de cellules » — la largeur du ruban reste visible dans la figure committée, le prédicat (état 1D = une ligne empilable en diagramme espace-temps) est intact. Markdown seul, exception C.2. Garde rejouée localement post-commit sur le diff origin/main...HEAD : [OK] aucun compteur quantitatif en prose (rc=0). Le rouge Always-on guards @13:30:20Z agrégeait cette jambe fastlane plus un signal prev-guard lift — il se re-servira sur la nouvelle tête. Le rouge catalog drift de #22171 est lu à la source comme infra (fetch promisor remote mort, early EOF) : sweep.

@github-actions github-actions Bot removed the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 23, 2026
jsboige added a commit that referenced this pull request Oct 24, 2026
Dispatch ai-01 (c.6377291953) : le carnet 05-0-Generateurs-Symboliques est
traite par #22175, sur la meme lane ; le porter aussi ici faisait s'ecraser
les deux PRs. Le contenu 05-0 apporte par 1ae09c9 est reporte sur #22175.

La tete est rejouee sur origin/main (06de992) depuis le contenu du carnet
LTX au sommet precedent (28ebdb1), sans le retoucher : la PR ne contient
plus qu'un fichier, +44/-7.

Mesure cellule par cellule contre origin/main : 0 cellule code dont la source
ou les sorties changent, 16 cellules code toutes pourvues d'un
execution_count -> aucune re-execution due au titre de C.2.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Dispatch ai-01 (c.6377291953) : 05-0-Generateurs-Symboliques doit vivre dans
une seule PR. #21440 est ramene a LTX seul ; ce qu'elle apportait a 05-0 est
reporte ici, sans perte.

Fusion : 1ae09c9 enrichit les ancrages des cellules rosace/Koch/CA (2, 5,
7, 11, 12) et la conclusion ; la cellule Exercices recevait un paragraphe de
chaque cote -- les deux sont conserves, le texte de #22175 verbatim puis le
paragraphe de mise en relation, dans la meme cellule (on consolide, on
n'empile pas). Controle : 0 ligne ajoutee par l'un ou l'autre cote absente de
la version fusionnee, et la conclusion porte les deux ajouts.

Mesure : markdown-only (aucune cellule code dont la source ou les sorties
changent), 21 cellules, toutes les cellules code pourvues d'un
execution_count.

See #13410

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 24, 2026

Copy link
Copy Markdown
Owner Author

Provenance du commit cfb0de5afa ajouté à cette tête — pour que l'ajout ne soit pas muet.

Certains de ses apports venaient d'ailleurs : le commit 1ae09c9fb6 de la PR #21440 touchait aussi 05-0-Generateurs-Symboliques.ipynb, et les deux PRs, de la même lane, s'écrasaient sur ce carnet. Le dispatch de coordination a tranché pour une seule PR par carnet : #21440 est ramenée à son carnet LTX seul, et ce que 1ae09c9fb6 apportait à 05-0 est reporté ici.

Ce que le commit reprend

+23/−8 sur ce seul fichier, soit exactement le delta que 1ae09c9fb6 ajoutait à ce carnet : ancrages des cellules rosace / flocon de Koch / automates cellulaires (cellules 2, 5, 7, 11, 12) et la conclusion.

Le seul point qui a demandé une décision

La cellule 6. Exercices recevait un paragraphe de lecture de chaque côté — celui de cette PR (« Ce que chaque exercice mesure, pour le vérifier vous-même », avec ses trois points numérotés) et celui de 1ae09c9fb6 (« Chacun revient sur une famille du jalon », qui relie les exercices aux sections 2, 3 et 4). Aucun ne contredit l'autre et aucun ne devait disparaître : les deux sont conservés dans la même cellule, le texte de cette PR verbatim puis le paragraphe de mise en relation. On consolide, on n'empile pas — la cellule reste unique, sans doublon de lecture.

Contrôle de non-perte

Comparaison ligne à ligne des ajouts de chaque côté contre la version fusionnée : 0 ligne perdue, et la conclusion porte bien les deux apports. Mesure de forme : markdown-only (aucune cellule code dont la source ou les sorties changent), 21 cellules, toutes les cellules code pourvues d'un execution_count.

Le commit reste séparé dans la branche pour que la relecture puisse l'isoler ; il n'ajoute aucune dépendance à la PR d'origine.

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

Lecture coordinateur sur dossier delegue (t18 G), verifie a la tete cfb0de5 : densite markdown-only de 05-0-Generateurs-Symboliques (20 -> 21 cellules). Le rouge Twin parity audit est la course #22292, corrigee par #22293 : la jambe se rejoue apres son merge.

@jsboige

jsboige commented Oct 24, 2026

Copy link
Copy Markdown
Owner Author

Twin parity — decalage de base mesure, ramene a zero par le merge de main — tete eaa46587fc.

Mesure firsthand de check_twin_parity.py --check, dans les trois etats :

Etat OK DRIFT Drifts en plus de main
origin/main pristine (aed94066f7) 143 15 —
cette branche avant merge (cfb0de5afa) 137 21 11
cette branche apres merge (eaa46587fc) 143 15 0

La branche etait derriere main (git merge-base --is-ancestor origin/main HEAD = faux) : ses attestations twin_pairs.d dataient d'une base anterieure, d'ou 11 paires apparaissant en drift alors qu'aucune n'est touchee par cette PR (Image 05-0). Le merge de main suffit — aucun re-stamp n'a ete necessaire, et aucun --update --pair n'a ete utilise.

Les 15 drifts restants sont ceux de main lui-meme (plafond de base, hors de cette PR). Le PR gate rouge de la tete precedente venait de l'agregation de ce leg Twin parity audit (#8057) ; il est re-evalue a la nouvelle tete.

myia-ai-01 pushed a commit that referenced this pull request Oct 24, 2026
…#21440)

Dispatch ai-01 (c.6377291953) : le carnet 05-0-Generateurs-Symboliques est
traite par #22175, sur la meme lane ; le porter aussi ici faisait s'ecraser
les deux PRs. Le contenu 05-0 apporte par 1ae09c9 est reporte sur #22175.

La tete est rejouee sur origin/main (06de992) depuis le contenu du carnet
LTX au sommet precedent (28ebdb1), sans le retoucher : la PR ne contient
plus qu'un fichier, +44/-7.

Mesure cellule par cellule contre origin/main : 0 cellule code dont la source
ou les sorties changent, 16 cellules code toutes pourvues d'un
execution_count -> aucune re-execution due au titre de C.2.

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

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

[OVERRIDE] lane myia-ai-01:CoursIA

Levee du commentaire de jsboige du 2026-10-24T09:26:01Z (c.6382530823, mesure de twin parity a la tete eaa46587fc). Ce n'est pas une reserve : c'est un compte-rendu de mesure. Il montre que les 11 drifts de la tete precedente venaient d'une base en retard et que le merge de main les ramene a 0 en plus de main (143 OK / 15 DRIFT, soit l'etat de main lui-meme), sans re-stamp ni --update --pair. Rien n'y tient le merge.

Approbation maintenue a la tete exacte eaa46587fc33aac55fec7a6d2cf807dfcef7e820.

@myia-ai-01
myia-ai-01 merged commit d7ac2bd into main Oct 24, 2026
93 of 102 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) pr-overlap Advisory: another open PR touches the same files (organ #13615) variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants