Repository navigation
fix(search,#13515): de-leak MGS-30 (3/3) + MGS-7b (2/3) — exercices pré-résolus stubbés - #13525
Conversation
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
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: |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[NanoClaw] structural review — COMMENT, verdict positif (de-leak 2 notebooks + README, +348/−375 ; structure, stubs et outputs vérifiés au head, full-diff non chargé)
fix(search,#13515) — MGS-30 (3/3) + MGS-7b (2/3) : exercices pré-résolus stubbés.
Vérifié firsthand (head 9cc4de8d) :
- Le de-leak est réel et complet : l'issue #13515 mesurait sur main 14/14/35 lignes de code effectif sous les
// TODO etudiantdes exercices 1-3 de MGS-30 (« exemples résolus étiquetés exercice »). Au head, les 6 cellules d'exercice (MGS-30 c.16/18/20, MGS-7b c.11/12/14) portent 1-2 lignes non-commentaire : déclaration de conteneur vide +Console.WriteLine("Exercice a completer : …"). Le conteneur vide rend l'instruction « remplaceresultats64» enfin littérale — le stub est cohérent avec le défaut documenté. - Outputs re-exécutés, pas périmés : les 6 cellules stub ont pour sortie committée exactement la ligne prompt (« Exercice a completer : verdict budget x4… ») — les anciens verdicts résolus ne subsistent nulle part. Intégrité d'exécution intacte : MGS-30 21 cellules (11 md/10 code),
execution_count1→10 strictement monotone, 0 output manquant ; MGS-7b 16 cellules (8/8), 1→8 monotone. CI Golden-Set 8/8 PASS corrobore. - Justification des suppressions au standard (#13515) : remarque opérateur sur #13397, vérification firsthand, mesure bornée (9/96 exos pré-résolus sur les 29 MGS, concentrés MGS-30/MGS-7b), doctrine citée (
exercise-example-labeling.md: trancher par le contenu, pas l'étiquette). Chaque solution supprimée correspond à une ligne du tableau de l'issue. - README (+2/−2) : rows MGS-7b (l.57) et MGS-30 (l.82) inchangées dans leur substance, liens vers fichiers réels ; l'arc narratif n'a pas été touché.
- Sécurité : code C# algorithmique pur, scan secrets 0 hit ; les mentions « solution/corrigé » restantes sont de la prose pédagogique (ex. intro MGS-7b c.0), pas des fuites.
Concerns (non bloquants) : (1) le détecteur CI s'est abstenu (« merge-base introuvable ») sur cette PR précisément dédiée au leak — ironique mais sans impact, la validation notebook (2 notebooks, 18 cellules code) est PASS. (2) Rien d'autre.
Ball merge : Emerjesse.
…ré-résolus stubbés Les 5 cellules d'exercice portaient un TODO mais un corps calculé complet (solution entière sous le commentaire). Option A (rendre l'exercice réel) : corps retiré, squelette + indices + étapes conservés, print C.1, aucune dépendance aval (vérifié par grep des variables). Re-exec complète des deux notebooks (10/10 et 8/8, kernel .net-csharp, pont PythonNet sur Python 3.13.13 + mealpy 3.0.2 via PYTHONNET_PYDLL) : médianes qualité identiques (seeds déterministes), timings dérivés -> README resynchronisé (0,73->0,92x, 5,8->4,7x, 6,79->5,25x, 4x->4,7x). Residuel : 4 singletons MGS-16/17/21/25 (1 cellule chacun). Co-Authored-By: Claude-Code <noreply@anthropic.com>
La re-execution nbclient (C.2) a change outputs/execution_count mais le bloc metadata.papermill restait byte-identique a origin/main (fin de run du 2026-08-28T17:32Z) -> check_papermill_ratchet verdict STALE_BLOCK. nbclient n'ecrit pas ce bloc ; la sortie explicite du gate est la suppression (precedents 454093f, c220160, issue #11155). Co-Authored-By: Claude-Code <noreply@anthropic.com>
9cc4de8 to
7e686d4
Compare
Grain: MED/notebook-dotnet -- lane myia-po-2026:CoursIA -- prev: DEEP/lean #13427
See #13515 (partiel : 5/9 cellules — priorités de l'issue MGS-30 puis MGS-7b livrées)
See #12373 (Epic MGS)
Le de-leak (tranché par contenu, exercise-example-labeling.md)
Option A « rendre l'exercice réel » pour les 5 cellules pré-résolues :
resultats64+ 3 indices + 3 étapessweepRows+ indicesprofilRows+ indicesstats+ indicesresultats64/deltas64/sweepRows/profilRows/stats/totalDiffnon référencés hors de leurs cellules).print("...a completer")+ squelette, aucunraise NotImplementedError(grep verifié).Exécution réelle (C.2 / verdict EXEC_PROVED)
PYTHONNET_PYDLL→ probe de la cellule 6 lit l'env en premier ; le probehit[0]fragile LOCALAPPDATA est un défaut connu MGS-22/23/30, hors scope ici).git submodule update --init(MetaGeneticSharp + GeneticSharp imbriqué) +dotnet build MetaGeneticSharp.sln -c Debug(0 erreur) — documentés en tête de notebook.strip_probe_banner.py --apply(seule normalisation autorisée),grep -c probeAddresses= 0.Déterminisme vs dérive des timings
Médianes qualité identiques au main (seeds déterministes) : jumeau mealpy 51,5 [48-53] < ablaté 52,0 < complet 54,0 ; déterminisme 12/12 ; sanity check IDENTIQUE. Les ms dérivent avec la charge machine -> ratios resynchronisés dans le README de série : 0,73x -> 0,92x (écart noyau), 6,79x -> 5,25x (fitness isolée), 5,8x -> 4,7x et 4x -> 4,7x (ablaté vs complet). Classe #13516 : la prose ne doit pas contredire la sortie committée.
§E audit fichier-entier
34 .ipynb sur disque ; le seul absent du README est MGS-20-Langage-de-Composition — gap pré-existant sur main déjà couvert par #13518 (EN ATTENTE DE MERGE, ajoute la ligne MGS-20). Pas de duplication ici.
Note de merge pour le coordinateur : #13518 et cette PR éditent toutes deux la ligne L7 (long paragraphe d'arc) du README Part4, sur des segments différents (MGS-29 pour #13518, MGS-30 ici) — conflit textuel possible à 1 ligne, résolution = union des deux substitutions. Merger #13518 d'abord puis rebase trivial.
Residuel (4/9)
Les 4 singletons MGS-16 / MGS-17 / MGS-21 / MGS-25 (1 cellule pré-résolue chacun) restent a traiter — nécessitent chacun une re-exec bench complète (~30 min/notebook), tranche suivante. Cellules repérées : MGS-16 cell 27 (8 lignes calculées), MGS-17 cell 10 (25 lignes), MGS-21 cell 9 (démonstration étiquetée Exercice 3), MGS-25 (a localiser précisément).