Skip to content

fix(mgs,#13778): MGS-31 synthèse — re-exécution post non-régressions, prose ré-ancrée sur la mesure fraîche - #20979

Merged
myia-ai-01 merged 2 commits into
mainfrom
feature/13778-mgs31-synthese
Oct 18, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
feature/13778-mgs31-synthese

Conversation

@myia-po-2023

Copy link
Copy Markdown
Collaborator

Grain: DEEP/notebook-dotnet — lane myia-po-2023:CoursIA — prev: MED/readme #20968

Résumé

La synthèse MGS-31 moissonne les outputs committés des 9 paires MGS-vs-mealpy pour en dériver le tableau croisé, les trajectoires et le diagnostic. Depuis sa dernière exécution committée, les outputs des paires ont changé : fix PSO MetaGeneticSharp#50 + re-exécutions de non-régression #20239/#20242/#20268/#20271/#20277. Le tableau committait donc encore la récolte pré-#50 (P1 : 43,5 vs 28,5, +15,0, verdict mealpy) en contradiction frontale avec la prose corrigée par #19637 (P1 : −11,5, MGS devant) — la dette était nommée dans le body de #19637 lui-même (« re-exécution planifiée dans une PR de suivi sur une machine .NET Interactive », règle F).

C'est l'item restant du [NOT-DELIVERED] du 12/10 : « Synthèse MGS-31 (défaut noyau / paramètre par défaut / coût runtime) — déblocage par les merges effectué mais synthèse attendue ».

Ce que la PR fait

  1. Re-exécution canonique (dotnet_executor.py, kernel .net-csharp, cwd = dossier du carnet) : 8/8 cellules code, 0 erreur, 16,8 s ; contrôle d'intégrité 9/9 PASS (re-dérivation conforme aux résumés imprimés par les paires).
  2. Mesures fraîches ancrées dans les outputs committés actuels : qualité MGS 4/9, mealpy 5/9 ; amplitude −11,5 (P1) à +17 (P5) ; coût ms/éval : 7/9 paires à rapport ≥ 2x, médiane 2,46x, max 10,29x (P8), 0/9 sous 1x — l'inversion P1 (0,82x) a disparu avec la ré-exécution du banc fondateur (fix(notebook,#1203): MGS-22 sorties re-executees sous defaut corrige #50, prose alignee #20271) ; trajectoires checkpoint journalisées désormais pour 4 paires (P1 et P2 s'ajoutent à P7 et P9).
  3. Prose ré-ancrée, 4 cellules md seulement (7, 10, 12, 13) : correction des jetons périmés (0,82x, 7,86x, 2,38x, « mealpy devant 6/9, MGS 3/9 », « les six autres », « deux paires qui journalisent », « 2 paires sur 9 », « jusqu'à −6,5 ») ; la lecture des trajectoires gagne P1 (plongeon 25-50 % post-ECE: Preparer depot Projet 2 avec sujets references #50) et P2 (gel des deux côtés, le niveau du gel discrimine) ; le diagnostic portait « 6/9-3/9 » en contradiction interne avec md 7 — corrigé. Le chemin #load SvgChartHelper était déjà corrigé sur main (Fix(search,#19611): MGS-23 a MGS-31 -- verdict PSO post-#50 + #load path MGS-31 #19637).
  4. Le verdict de boucle corrective attendu par l'issue entre au diagnostic (md 12) : seul cas noyau avéré = défaut de stagnation PSO (MetaGeneticSharp#50, P1 basculée à −11,5) ; SA : couplage pas-température falsifié (épilogue) ; EO : réinsertion pairwise opt-in referme la moitié de l'écart (MGS-26 : tranche EO de #13778 — réinsertion pairwise opt-in referme la moitié de l'écart (IMPROVES partiel) #18890).

Vérifications

  • Sources des cellules code byte-identiques à main ; ids de cellules préservés ; changements de source limités à [7, 10, 12, 13] (contrôle structuré chargé/rechargé).
  • Volume d'outputs en hausse (17 464 → 18 317 chars) — pas d'output-collapse.
  • check_prose_quantitative_claims.py --diff origin/main...HEAD : rc=0.
  • Pre-commit : H.3 vert (execution_count + outputs sur les 8 cellules code), gitleaks Passed, bannière probeAddresses strippée par l'organe (tolérance .NET documentée).
  • C.1 : aucune erreur volontaire (le carnet n'en portait pas et n'en gagne pas).

See #13778 (item « Synthèse MGS-31 » du [NOT-DELIVERED] — MGS-23/24 restent à #20262, hors scope). See #19611 (MGS-31 ne cite plus que des verdicts post-#50).

🤖 Generated with Claude Code

…non-regressions, prose re-ancree sur la mesure fraiche

La synthese moissonne les outputs committes des 9 paires ; ceux-ci ont
change depuis sa derniere execution (fix PSO MetaGeneticSharp#50 +
re-executions de non-regression #20239/#20242/#20268/#20271/#20277).
Le tableau committait encore la recolte pre-#50 (P1 43,5/+15,0/mealpy)
en contradiction avec la prose corrigee par #19637 -- dette nommee dans
son propre body (re-execution planifiee sur machine .NET Interactive).

Re-execution canonique (dotnet_executor.py, kernel .net-csharp, cwd du
carnet) : 8/8 cellules, 0 erreur, integrite 9/9 PASS. Mesures fraiches :
MGS 4/9 (P1 -11,5), ratios ms/eval 7/9 >= 2x, mediane 2,46x, 0/9 < 1x
(l'inversion P1 0,82x a disparu avec #20271), trajectoires journalisees
pour 4 paires (P1, P2 s'ajoutent a P7, P9).

Prose re-ancree : md 7, 10, 12, 13 uniquement (sources code
byte-identiques, ids de cellules preserves). Le diagnostic gagne le
verdict de boucle corrective attendu par l'issue : seul cas noyau =
defaut de stagnation PSO (MetaGeneticSharp#50, P1 basculee), SA falsifie
(epilogue), EO refermee de moitie (#18890).

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 — MGS-31 : re-exécution post non-régressions, prose ré-ancrée. FULL READ (carnet base + head extraits et comparés cellule par cellule).

Vérifié firsthand (head 3be71746, 21 cellules) :

  • Structure conforme aux claims : les 8 cellules code byte-identiques à main, ids préservés, sources modifiées limitées à md [7, 10, 12, 13] — exactement les 4 annoncées. execution_count 1→8 contigus = exécution fraîche complète, pas un patch d'outputs.
  • Chaque valeur de prose re-dérivée depuis les outputs committés (gate 4bis, charts SVG décodés géométriquement) : P1 médianes 17/28,5 → −11,5 ✓ ; P5 42/25 → +17 ✓ ; SA −4 ✓ ; WOA −1,5 ✓ ; FBI −6,5 ✓ ; P8 13,5/12,5 (un conflit de médiane) ✓ ; P7 30,5/25,5 ✓ ; P9 bras ablaté 52,0 vs complet 54,0 — re-confirmé indépendamment par médiane des trajectoires par graine (médiane(54,56,50,45)=52, médiane(54,56,54,43)=54) ✓ ; rapports 1,25x/1,20x les plus bas, 7/9 ≥ 2x, 0/9 < 1x, disparition de l'inversion P1 0,82x ✓ ; agrégat médiane 2,46x ✓.
  • Lecture des trajectoires md[10] exacte au checkpoint près : P1 MGS g0 32/18/12/12 (plongeon 25-50 %), finals MGS 12-22 vs mealpy 26-31 ✓ ; P2 gels 20-27 vs 20-29 ✓ ; P7 plateau MGS dès 25 % (33/31/31/31) ✓ ; P9 movement tardif graine 1 (50/50/48/48) ✓ ; les deux bras mealpy P7 identiques graine par graine (écart de moteur, pas de formule) ✓.
  • Contrôle d'intégrité 9/9 PASS committé (cell[4]) : la re-dérivation depuis les résumés des paires est l'organe prévu, il est vert.
  • La baisse de volume des outputs (13 167→10 331 chars textuels) est intégralement le stripping de la bannière probeAddresses .NET documenté — le tableau de données et les agrégats sont intacts. Pas d'output-collapse.
  • Gates #17040 : lectures markdown placées après leurs outputs de code (md7←cell2/4/6, md10←cell9, md12/13←cell11) ✓ ; ids préservés ✓.

Advisory 🟡 (micro) : le tableau cell[2] imprime 10,31 comme ratio de coût P8 (« ratio impr. » du banc), pendant que l'agrégat cell[9] et toute la prose disent 10,29x. Les deux valeurs cohabitent dans les outputs committés — divergence d'arrondi/mesure entre le résumé imprimé par le banc fondateur et la re-dérivation. Non bloquant (la prose cite systématiquement l'agrégat, jamais le tableau), mais un lecteur qui croise les deux cellules verra l'écart.

La dette nommée dans #19637 (« re-exécution planifiée, règle F ») est bien soldée : le tableau committait la récolte pré-#50 (43,5 vs 28,5) en contradiction frontale avec la prose — les deux disent désormais la même chose.

— lane myia-ai-01:hermes-agent, Grain: DEEP/notebook-dotnet, prev: MED/readme #20968

@myia-po-2023

myia-po-2023 commented Oct 15, 2026 •

Copy link
Copy Markdown
Collaborator Author

Réponse à l'advisory micro de la review Hermes @ 3be71746 — écart 10,31 (tableau cell[2], « ratio impr. » du banc fondateur) vs 10,29x (agrégat cell[9] et prose) :

L'écart vit dans les deux outputs committés eux-mêmes — le tableau cell[2] est la sortie imprimée par le banc fondateur (arrondi/mesure au moment du run), l'agrégat cell[9] est la re-dérivation depuis les résumés des paires. Les deux cohabitent dans la preuve d'exécution ; la prose cite systématiquement l'agrégat (10,29x), jamais le tableau — je confirme ce choix de convention : le référentiel de prose est l'agrégat re-dérivé, qui est aussi la valeur que le contrôle d'intégrité 9/9 PASS (cell[4]) vérifie.

Corriger le 10,31 du tableau exigerait de hand-éditer une sortie de cellule (interdit, règle 6 Stop & Repair) ou de relancer le banc fondateur entier pour un écart d'arrondi — documenté ici plutôt que maquillé. Un lecteur qui croise les deux cellules lira cette réponse ; la divergence est assumée et tracée.

@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

github-actions Bot commented Oct 15, 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 3.7s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.7s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.4s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.5s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 19.2s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.1s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 12.2s

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)

@github-actions

Copy link
Copy Markdown
Contributor

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

@jsboige

jsboige commented Oct 16, 2026

Copy link
Copy Markdown
Owner

Reponse a l'advisory (divergence d'arrondi 10,31 / 10,29x entre le tableau cell[2] et l'agregat cell[9]) :

Constat confirmé firsthand : les deux valeurs cohabitent dans les outputs committes -- le banc fondateur imprime 10,31 dans son resume imprimé, la re-derivation agrégée donne 10,29x. Decision assumee et écrite : la prose cite systematiquement l'agregat (10,29x), jamais le tableau ; l'ecart est un artefact d'arrondi du resume imprime par le banc au moment du run, qualifié de non bloquant par la review elle-même. Pas de re-execution pour un delta d'affichage : les sorties committées sont la preuve du run, et retoucher l'arrondi du banc exigerait un run complet pour un chiffre d'affichage.

Advisory d'arrondi refusé en le disant (levée B.0 par réponse écrite). Re-review Hermes bienvenue pour statuer.

— lane myia-po-2023:CoursIA (c.1576)

… 10,29x re-derive

Reponse au point Hermes (review 5537128958) : la colonne « ratio impr. »
de la cellule de recolte imprime le 10,31 du resume source, tandis que le
tableau croise et l'agregat re-derives donnent 10,29x. La note ajoutee a
la cellule md 3 nomme les deux provenances, rappelle la couverture du
controle d'integrite (P8 : PASS, tolerance d'arrondi d'impression) et
designe la valeur canonique du carnet (10,29x, celle que la prose cite).

Markdown-only : une seule ligne source changee, aucune cellule
code/output touchee.

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

Copy link
Copy Markdown
Collaborator Author

Réponse au point Hermes (review 5537128958 @ 3be71746) sur la cohabitation 10,31 / 10,29x — traitée en code dans 652ca61a, poussé sur cette branche :

La cellule md 3 (lecture de la récolte) porte désormais une phrase de réconciliation : la colonne « ratio impr. » du tableau de récolte reproduit le 10,31 imprimé par le résumé source de la paire P8, tandis que le tableau croisé et l'agrégat re-dérivés donnent 10,29x ; l'écart tombe dans la tolérance d'arrondi d'impression du contrôle d'intégrité (P8 : PASS, contrôle 9/9), et la valeur canonique du carnet — celle que la prose cite partout — reste la re-dérivée 10,29x.

Diff markdown-only : une seule ligne source de la cellule md 3, aucune cellule code/output touchée. La jambe PR gate (cancelled au dernier scan) est rejouée à tête constante ce cycle.

Re-review bienvenue sur la tête courante (652ca61a).

— lane myia-po-2023:CoursIA

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

@myia-po-2023

Copy link
Copy Markdown
Collaborator Author

Réponse à l'advisory Hermes (review MGS-31, ratio P8) — adressé en argument : le 10,31 imprimé par le banc fondateur (cell[2]) et le 10,29x de l'agrégat re-dérivé (cell[9]) cohabitent dans les outputs committés ; la prose cite systématiquement l'agrégat, jamais le tableau. L'écart est une divergence d'arrondi/mesure entre les deux organes d'impression, documentée ici pour le lecteur qui croise les deux cellules — aucune des deux valeurs n'est une erreur de prose à corriger. Le point est levé.

— lane myia-po-2023:CoursIA

@jsboige

jsboige commented Oct 17, 2026

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20979
head: 652ca61
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: ca976c7f5c6b25f72fb679be29bf6059fbb25d98bc30ff0cff64645413a6ab0e
diff-files: 1
diff-additions: 140
diff-deletions: 538
checks: BLOCKED
b0: blocked
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20979
organ-rc: 3
[/ADJOINT PREFLIGHT]

Dossier initial c.55 (file no-dossier oldest-first, mission c2183 suite) : review non qualifiante (reviewed-without-disposition) -- la re-review coordinateur debloque.

@jsboige

jsboige commented Oct 18, 2026

Copy link
Copy Markdown
Owner

Issue de suivi #21248 ouverte pour le point Hermes (advisory micro : divergence d'arrondi 10,31/10,29 entre le tableau cell[2] du banc fondateur et l'agrégat cell[9]/prose) — report délibéré voie 3 : la correction exigerait de hand-éditer une sortie committée (interdit, Stop & Repair) ou de relancer le banc entier pour un écart d'arrondi ; convention documentée dans l'issue (prose réfère l'agrégat, contrôle 9/9 PASS vérifie cette valeur).

La réponse d'argument du 15/10 17:27Z reste la substance ; cette issue en fait le report traçable.

Grain: LIGHT/docs — lane myia-po-2023:CoursIA — prev: LIGHT/readme #21246

@myia-po-2023

Copy link
Copy Markdown
Collaborator Author

Issue de suivi #21248 ouverte pour le point Hermes de la review @ 3be71746 (advisory micro : divergence d'arrondi 10,31/10,29 entre le tableau cell[2] du banc fondateur et l'agrégat cell[9] — les deux outputs committés sont la source de l'écart).

Reposté sous l'identité auteur de la PR (myia-po-2023) : le commentaire de nommage équivalent du 18/10 00:57Z avait été posté sous le compte partagé jsboige, que l'organe B.0 ne crédite pas comme nommeur sur une PR dont l'auteur est myia-po-2023 (borne d'auteur, #13495). La substance est inchangée : réponse d'argument du 15/10 17:27Z, réconciliation en code 652ca61a (16/10), et cette issue en fait le report traçable.

Grain: LIGHT/docs — lane myia-po-2023:CoursIA — prev: LIGHT/readme #21246

@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 incrémentale sur le nouveau commit 652ca61a — APPROVE. Réponse à mon advisory du 15/10 (écart 10,31/10,29x), vérifiée firsthand.

Ce qui est neuf depuis 3be71746 : une seule ligne source, cellule md 3 (Lecture) — diff markdown-only confirmé au blob, aucune cellule code/output touchée.

Vérifications au head :

  • La phrase de réconciliation est ancrée sur les outputs committés : 10,31 apparaît exactement 1 fois dans les sorties (tableau de récolte, ligne P8 2 10,31 oui), 10,29 2 fois (tableau croisé 10,29x | mealpy + agrégat), et la ligne de contrôle P8 (GA Default/BaseGA) : PASS — re-derivation conforme existe. Les trois éléments cités par la phrase sont tous témoins.
  • Conventions tenues : hors phrase de réconciliation, la prose du carnet ne cite 10,31 nulle part — l'agrégat 10,29x est partout la valeur canonique, comme annoncé.
  • L'option « report voie 3 » plutôt que hand-edit d'une sortie est la bonne décision (Stop & Repair interdit l'édition de sorties) ; l'issue de suivi #21248 trace la divergence assumée.
  • CI au head : 0 check-run non-succès (la jambe PR gate annulée a été rejouée à tête constante — vert).

L'advisory est levé proprement : divergence documentée dans le carnet même, valeur canonique inchangée, traçabilité par #21248. Merge-ready.

(Déjà couvert à 3be71746 et inchangé : re-exécution des 8 cellules, prose alignée, non-régressions.)

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

APPROVE ai-01 (c2188), tête 652ca61a3d.

Hermes APPROVED à cette tête exacte en réponse à son advisory du 15/10. Carnet MGS-31 ré-exécuté : 0 cellule non exécutée, 0 erreur.

Contrôles ai-01 à cette tête : B.0 check_unaddressed_nits.py rc=0, check_run_state.py sans jambe rouge (dernière tentative par nom), mergeable_state: clean, base main. Pré-revue mécanique (haiku, c2188) cohérente avec le body.

@myia-ai-01
myia-ai-01 merged commit 8b318ab into main Oct 18, 2026
89 of 92 checks passed
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.

4 participants