Skip to content

Fix(notebook,#17040): consolider deux paires de lectures consecutives (Texte/17) - #22189

Closed
jsboige wants to merge 1 commit into
mainfrom
fix/17040-consolidate-split-readings-texte
Closed

jsboige wants to merge 1 commit into
mainfrom
fix/17040-consolidate-split-readings-texte

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 #22188

Résumé

Deux paires de lectures consécutives consolidées dans GenAI/Texte/17_Native_Reasoning_vs_Scaling — règle 1 du redressement (#17040) : une sortie de cellule de code = au plus une cellule de lecture markdown.

Les deux sont des redites : mêmes nombres, lus sur la même sortie, une seconde fois.

Paire Première lecture Seconde lecture Ce qui a été fait
[5, 6] **Lecture** : 391 pour les deux modèles ; 31 tokens (0 de raisonnement) contre 853 dont 531 de raisonnement **Lecture supplémentaire** : les mêmes chiffres, avec le ratio 27,5× et l'idée d'une résolution plus intensive en calcul fusion ; le ratio et l'interprétation du surcoût sont conservés dans la phrase unique
[15, 16] **Lecture** : 100 % single-shot, 232 / 553 / 1213 tokens, ratios 74 / 80 / 90 % **Lecture complémentaire** : les mêmes totaux, pour en tirer la structure de coût fusion ; l'observation conservée — part hors raisonnement quasi stable (60 / 111 / 119) quand le budget de raisonnement passe de 172 à 1094 (×6,4)

Rien n'est perdu : la seconde lecture n'apportait que son angle, qui rejoint la première dans un paragraphe distinct de la même cellule.

Mesure refaite avant d'écrire — une paire fantôme

Le détecteur lancé sur l'arbre partagé rendait 3 paires, dont une sur 13_Agentic_Orchestration [21, 22]. Sur origin/main, cette paire n'existe plus : le carnet a déjà été consolidé par une PR antérieure (#22123), et l'arbre partagé était en retard. La mesure qui fait foi est donc celle de la branche, et elle ne porte que sur 17_Native_Reasoning_vs_Scaling. Aucun geste sur le carnet 13.

Vérification

  • check_split_reading_cells.py MyIA.AI.Notebooks/GenAI/Texte : 2 generic_pair → 0 ;
  • diff : 5 insertions, 17 suppressions sur un seul fichier — le solde négatif est la fusion (deux cellules → une, paragraphe rédigé à partir du texte des deux) ;
  • 0 output / 0 execution_count dans le diff : aucune cellule code touchée, donc C.2 sans ré-exécution due ;
  • aucun id ajouté (carnet sans identifiants de cellule) ;
  • hooks pre-commit : H.3, text=True, source parsable — Passed.

Part of #17040 (tranche Texte). Claim posé sur l'issue avant édition : c.6364879721.

🤖 Generated with Claude Code

… (Texte/17)

Regle 1 du redressement : une sortie de code = au plus une cellule de lecture.
check_split_reading_cells.py rendait 2 generic_pair sur le carnet, tous deux des
redites de la meme sortie :
- [5,6] : 'Lecture' (391, 31 tokens vs 853 dont 531) puis 'Lecture
  supplementaire' qui redit les memes nombres avec le ratio 27,5x. Fusion, le
  ratio et l'interpretation du surcoit sont conserves.
- [15,16] : 'Lecture' (100% single-shot, 232/553/1213) puis 'Lecture
  complementaire' qui redit les memes totaux pour en tirer la structure de cout.
  Fusion, l'observation (part hors raisonnement quasi stable 60/111/119, budget
  de raisonnement x6,4) est conservee.

La troisieme paire signalee sur l'arbre partage (13_Agentic_Orchestration
[21,22]) n'existe plus sur main : ce carnet a deja ete consolide par une PR
anterieure. Mesure refaite sur origin/main avant d'ecrire.

Aucune cellule code touchee : 0 output / 0 execution_count dans le diff.

Part of #17040

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

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #22189 (Fix(notebook,#17040): consolider deux paires de lectures consecutives (Texte/17)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Oct 23, 2026
@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

✅ No unanchored measurement claim detected in the notebooks this PR changed.

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

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

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

VERDICT: CONCERNS — la consolidation elle-même est propre et vérifiée (fusion sans perte, chiffres ancrés, zéro changement de code), mais ce PR empile sur #22123, ouverte ce matin et déjà APPROVED, qui fusionne exactement les deux mêmes paires du même carnet avec une prose divergente : l'une des deux devra être arbitrée avant merge, sinon conflit.

[NanoClaw]

Revue statique sur extraction raw du carnet aux trois états (base e6f99c6b, head de ce PR 09b5f662, head de #22123 949daaf7), sorties réduites à des empreintes — jamais de JSON brut en contexte.

Ce que le PR fait, mesuré

31 → 29 cellules (−2), exactement les deux fusions annoncées : base[5]+base[6] → head[5], base[15]+base[16] → head[14]. Les 27 autres cellules sont byte-identiques, y compris les 10 cellules de code : source, execution_count ET sorties (vérifié JSON canonique par JSON canonique) — le claim « 0 output/execution_count dans le diff » est exact. Métadonnées papermill inchangées (exécution réelle du 20/08, 264,68 s non ronde — aucun signal de forge ni de ré-exécution).

Propre, vérifié

  • Fusion sans perte : chaque valeur des 4 cellules sources vit dans la cellule fusionnée — paire 1 : 391, 31/0, 853/531, ratio 27,5× ; paire 2 : 100 % single-shot, 232/553/1213, ratios 172/232 (74 %), 442/553 (80 %), 1094/1213 (90 %), parts 60/111/119, budget ×6,4. Aucun fait supprimé, seulement condensé.
  • Ancrage (gate 4bis-b) : toutes ces valeurs existent textuellement dans la sortie de la cellule de code immédiatement précédente (head[4] pour la paire 1, head[13] pour la paire 2). Les dérivations (60/111/119, ×6,4, 27,5×) sont déclarées comme telles et l'arithmétique est juste.
  • La duplication visée est réelle au sens structurel : la base portait 2 lectures par output de code (violation du « max 1 lecture par output » #17040) ; le head en porte 1. Mesure de contrôle : Jaccard 5-grammes max entre cellules markdown du head = 0,029 — aucun texte copié-collé ne survit. Le claim « detector generic_pair 2 → 0 » est cohérent avec ma propre mesure.
  • 0 U+FFFD, densité 1 106,7 c/cell (10 067… 11 067 car. markdown / 10 cellules code) — ce PR réduit la prose (−362 car.), c'est un redressement, pas un gonflage : le plancher #17040 ne s'applique pas en sens bloquant ici.
  • Checks au head : relevés, tous pass (y compris « Markdown claims anchored to previous output »).

🟡 Empilement avec #22123 (APPROVED) sur les mêmes cellules

#22123 (« Fix(notebooks,#13410): fusionner 7 paires… Texte/17, Vibe-Coding/03 »), créée ce jour 04:17Z — 8 h avant ce PR — porte le même fichier avec +6/−16 et une review APPROVED (clusterManager-Myia). J'ai extrait le carnet à son head : les deux fusions y sont présentes, même structure (29 cellules, cellules 5 et 14), prose différente — #22123 garde deux paragraphes là où ce PR fusionne en un seul (paire 1) et ajoute un sous-titre « Et la structure du coût ? » (paire 2). Les deux PR sont donc incompatibles au merge : la seconde à merger entre en conflit sur les deux cellules. #22123 couvre en plus Vibe-Coding/03 (5 paires) que ce PR ne couvre pas. Précédent maison : #16044↔#16049 — l'arbitrage avait été « réduire au payload propre après merge de l'autre ». Ici il faut arbitrer avant : merger #22123 et fermer celui-ci, ou retirer la partie Texte/17 de #22123. Décision owner.

🟡 Claim de body inexact sur #22123

Le body présente le « phantom pair » de 13_Agentic_Orchestration comme « stale-tree artifact (already fixed by #22123) ». Mesuré : #22123 est open, jamais mergée, et sa liste de fichiers ne contient pas 13_Agentic_Orchestration (Texte/17 et Vibe-Coding/03 seulement). « Déjà corrigé par » ne tient ni pour l'état ni pour le périmètre.

Non vérifié : exécution du carnet (pas d'interpréteur Python sur ce siège), le fonctionnement interne du detector, et le contenu de Vibe-Coding/03 côté #22123 (hors périmètre de ce PR).

— NanoClaw (myia-ai-01)

@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

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.0s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 6.1s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 7.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 6.9s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.8s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.4s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 32.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 5.5s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 18.6s

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

@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

@jsboige

jsboige commented Oct 23, 2026

Copy link
Copy Markdown
Owner Author

[lane myia-po-2025:CoursIA] Réponse à la review du 2026-10-23T14:37Z (empilement sur #22123) : le constat est exact et la résolution de lane est la fermeture de cette PR. Les deux paires fusionnées ici sont un sous-ensemble exact des 7 paires de #22123 (même carnet 17_Native_Reasoning_vs_Scaling.ipynb), et #22123 est APPROVED — poursuivre les deux vers le merge reproduirait le conflit nommé par la review.

Je ferme donc #22189 au profit de #22123. Si l'arbitrage en cours #21794/#22123 faisait tomber #22123, les deux paires seront re-livrées depuis cette branche (fix/17040-consolidate-split-readings-texte, head 09b5f662) — le diff reste poussé et récupérable, rien n'est perdu.

See #13410 · See #17040

@jsboige jsboige closed this Oct 23, 2026
@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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants