Repository navigation
feat(notebook,#16763): Z3-16e — consolidation du §5b (OPT à l'échelle, jouet 24 plats) depuis le Z3-16 (arbitrage 2b) - #18222
Conversation
…, jouet 24 plats) depuis le Z3-16 (arbitrage 2b) - Z3-16 : §5b (cells 20-23) retire ; renvoi d'une phrase vers 16e en fin d'Interpretation 5 ; exercice 2 re-ancre self-contained sur le materiel §5 (plan_hebdomadaire_optimal disparait) - Z3-16e : sous-section 6b (intro re-ancree + code deplace VERBATIM + interpretation + lecture chiffree re-mesuree 297.5 ms, ratio ~124x) ; import If ajoute a la cellule z3 ; Synthese precise que la matiere est consolidee ici - Les deux carnets re-executes (papermill, kernel python3, cwd Z3-API) : 0 erreur, ec contigus Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
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 |
|
Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine. Le label Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans Seuil, historique et exceptions : cf. |
Path-collision (organ #13359/#13615)Cette PR #18222 (
|
|
[ADJOINT PREFLIGHT] Secrétaire vérificateur (myia-po-2026:CoursIA-3), 29/09 00:44Z — Dossier tiers READY à tête exacte
|
Grain: MED/notebook-python — lane myia-po-2023:CoursIA — prev: DEEP/notebook-python #18217
Résumé
Consolidation du §5b du Z3-16 (optimisation SMT à l'échelle, jouet 24 plats) vers Z3-16e, conformément à l'arbitrage ai-01 c.5830480972 point 2b : « Consolidation vers
16e, pas de lettre nouvelle : le propos est le même (du SAT à l'OPT sur corpus réel). Le 16 garde un renvoi d'une phrase vers 16e. »plan_hebdomadaire_optimal,Sel[7][24],minimizedu coût) déplacé verbatim depuis le 16 puis re-exécuté ici ; intro re-ancrée (« la section 5 du [16]… ») ; interprétation « pourquoi le glouton rate l'optimum global » conservée telle quelle ; lecture chiffrée refaite sur ce run (297,5 ms ici, ratio ~124x — la valeur d'origine, 349,5 ms / 145x, est celle du run du 16 : l'observation se refait là où la cellule vit, elle ne se recopie pas). ImportIfajouté à la cellule z3 du 16e — le code déplacé en a besoin et le notebook hôte ne l'importait pas.plan_hebdomadaire_optimal(§5b) ; il est désormais self-contained sur la matrice du §5 (9 plats, D=3,opt.maximize(distinct_count)), même leçon (« trois usages du même encodage » : faisabilité / coût minimal / variété maximale), avec renvoi vers la version à l'échelle dans 16e.Numérotation : le 16 passe de 32 à 28 cellules ; ses sections restent 1-5, 6 (Exercices), Conclusion — aucune renumérotation. Le 16e passe de 24 à 28 cellules ; les exercices restent en §7.
Preuves de re-exécution (C.2)
Les deux carnets re-exécutés via papermill (kernel python3,
--cwd= dossier Z3-API pour l'ancrage des données du 16e) :execution_count1..11 contigus, 0 erreur, 0 null.ec1..10 contigus, 0 erreur, 0 null ; sortie clé du 6b reproduite :Cout total minimal de la semaine : 7940 centimes = 79.40 EUR, résolu en 297,5 ms.validate_pr_notebooks.pyvs6f8c431a40: 2/2 passed (21 cellules code).scrub_papermill_paths.py --apply: 2 chemins absolus normalisés (métadonnées papermill).Organes (locaux, avant push)
--base 6f8c431a40)--check --tracked-only--checkmain, organe non câblé en CI) ; delta de la PR = 0--failTweety-3b-Modal-Lab-Lean.ipynb— non touché, base-inherited--diff origin/main...HEAD--check-orphans--checkmain(aucune paire pour la série 16)Densité (advisory, non bloquant par design) : le 16 perd quatre cellules de prose et un bilan, le 16e en gagne quatre.
Diagnostic dérive
Le garde
Kernel drift guard (base vs PR)signale un écart de tampon d'interpréteur sur les deux carnets de cette PR :Cause classée (a) env / kernel, verdict
CAUSE_FIXED.Ce qui s'est passé. Cette PR modifie des cellules de code dans les deux carnets (retrait du §5b du 16, insertion du §6b et ajout de l'import
Ifdans le 16e). C.2 impose alors une ré-exécution : elle a été faite sous papermill, sur le noyaupython3du siège d'exécution — Python 3.13.3. Le noyau réécritlanguage_info.versionavec ce qu'il est réellement.Pourquoi c'est la nouvelle valeur qui est juste, et non l'ancienne. Les tampons de base (
3.11.15,3.11.9) sont la trace des sièges qui avaient rédigé puis exécuté ces carnets, pas de l'environnement de ce run. Les sorties committées ici viennent de l'exécution du 2026-09-28 sous 3.13.3 : conserver3.11aurait inscrit une version qui n'a produit aucune des sorties présentes — exactement la dérive que ce garde existe pour attraper, commise dans l'autre sens. Rien n'est figé à la main : niversionréinjectée, nilanguage_inforéécrite.Aucun effet observable sur le livrable. Le garde ne rapporte aucun
signature_drift_cellssur l'un ou l'autre carnet : aucune sortie de cellule n'a changé de texte, donc aucune dérive derepr()de flottants entre 3.11 et 3.13. Les ratchets d'exécution de la PR le corroborent (papermill, exec-sequence, output-failure, output-collapse, source-collapse).La série est déjà hétérogène — la mesure. Sur
main, les carnets Python deSMT/Z3-APIportent sept versions distinctes d'interpréteur, de3.11.9à3.13.13; cinq d'entre eux sont déjà exactement en3.13.3. Les deux carnets de cette PR rejoignent donc la version la plus représentée de leur propre série, et celle qu'ils déclarent est bien celle qui a produit leurs sorties.Résidu : aucun. Il n'y a pas de défaut à tracker derrière cet écart : la métadonnée est enregistrée telle que le noyau la rapporte, l'hétérogénéité des tampons est structurelle (chaque siège exécute avec son interpréteur), et aucune sortie n'a bougé.
See #16763 (umbrella — suite de l'arbitrage : sous-série Meal-Planner, ouvertures par vagues, README).
🤖 Generated with Claude Code