Repository navigation
fix(test,#18822,#18736): K07 budget mensuel -- chargement source cellules 10/11 + témoin négatif - #18910
Merged
jsboige merged 2 commits intoOct 3, 2026
Conversation
…ules 10/11 + témoin négatif discriminant Suite à la réserve ai-01 sur #18822 (commentaire 5962478216) : le fichier réécrivait trajectoire_mensuelle/verifier_alerte au lieu d'exécuter la source des cellules 1f127d45 et b097a42e du carnet 09e_Production_Exploitation. Charge la source par id via nbformat, l'exécute dans un namespace isolé avec un mock minimal de MESURES (juste assez pour que la cellule 10 calcule COUT_DISTANT et exécute la def trajectoire), importe les vraies fonctions trajectoire et verifier_alerte du carnet. Tell c.4 strict fondateur : témoin négatif discriminant - (a) défaut logique : JOURS_MOIS 30→365 → test_pente_063_pas_depasse_mois rouge (dépense mensuelle 22.99 > 10) — mesuré - (b) correction plausible : paramètre jours_periode=365 → rouge immédiat - (c) patch cosmétique JOURS_MOIS 30→365 → test logique rouge — mesuré La logique pure du carnet est chargée à chaque exécution pytest, pas réécrite en dur ; le témoin se distribue sur 8 tests. Couverture acceptance #18736 : - 0.063 $/jour, 10 $/mois : aucun épuisement mensuel - 0.4 $/jour : épuisement mois 1 jour 25 (test_pente_04_depasse_mois_1_jour_25) - 0 requête : aucun épuisement - 100 % local : aucun épuisement (pente nulle) - alerte 80 % au mois 1 jour 20 (test_verifier_alerte_franchissement_jour20) - reset mensuel : len(cumuls) == JOURS_MOIS (test_reset_mensuel_renouvelable) Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Contributor
Base != main (advisory, #10918)Cette PR ne livre pas sur Couverture CI perdue sur cette base (mesure, #16194)7 workflow(s) se declencheraient si cette PR visait
Un check absent n'est pas un check vert. |
… collecte CI Suite a la reserve ai-01 sur #18822 (commentaire 5962478216) — 2e exigence : le dossier racine tests/ n'est pas dans testpaths du pytest.ini. Deplacement minimal vers MyIA.AI.Notebooks/GenAI/shared/helpers/ deja collecte (pytest.ini ligne 15). Aucun changement de contenu : le 1er commit 9977faa avait deja charge la source via nbformat et defini le temoin negatif discriminant. 8/8 tests PASSED localement apres deplacement (pytest MyIA.AI.Notebooks/GenAI/shared/helpers/test_k07_budget_mensuel_renouvelable.py -v). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
myia-ai-01
pushed a commit
that referenced
this pull request
Oct 3, 2026
…verité d'exécution effective (C.4 doc-honesty) (#18914) C.4 doc-honesty : la prose du H1 doit refléter la vérité d'exécution commited (2 seeds × 20 steps, seeds [0, 42], RTX 3070 8GB — cell 1 §1.1 documente le compromis budget GPU). Le titre H1 « 4 seeds × 100 steps » était le contrat initial (#5105 ICT-25 InoculationRL) ; PT-11d effectue la version dégradée budget-compatible commited sur cette base, et PT-12 (hote adequat) vise la run 4×100. Modifications prose-only : - cell 0 H1 : « 4 seeds × 100 steps » → explicite « Contrat initial » vs « Execution effective commited » - cell 0 Acceptance : clarification 4×100 (PT-12 cible) vs 2×20 (PT-11d effectif) Code source intact : SEEDS, N_STEPS, config GRPO inchangés (le carnet bascule automatiquement sur 4×100 via PT11B_SEEDS env var sur hote adequat). C.4 diagnostic : - Cause : prose cell 0 ecrit le contrat initial sans preciser le decalage execution/contrat. - Verdict : CAUSE_DOCUMENTED_ONLY -- la cause est design (compromis budget), pas regression. Issue de suivi PT-12 (run 4×100 sur GPU adequat) deja en file. - Pas de re-execution : prose-only, cellules code intactes (C.2). Refs #18909 Grain: MED/notebook-python — lane myia-po-2024:CoursIA-2 — prev: test #18910 Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
This was referenced Oct 3, 2026
myia-ai-01
pushed a commit
that referenced
this pull request
Oct 3, 2026
…lues du comptage) (#18949) Les organes G-VAR-2 (variation_light_cap.py) et G-VAR-3 (variation_adjacency_guard.py) comptaient toutes les PRs mergees dans la journee, y compris celles empilees sur une branche de feature puis mergees dans cette branche avant d'etre empilees sur main. Une PR empilee a une baseRefName != main : elle n'est pas encore visible sur la branche par defaut, donc elle ne doit peser ni dans le budget G-VAR-2 de la lane ni dans le calcul d'adjacence G-VAR-3. Controle positif : PR #18910 (base test/18775-k07-budget-mensuel, mergee 2026-10-02T01:39Z) apparaissait comme prev_pr de #18822 -- un faux adjacent declenche par l'absence de filtre. Mesuree sur 20 PRs mergees le 2026-10-02/03, 1 PR empilee filtree. Le fix est triple : - 4 sites de workflow (always-on-guards x2, variation-light-genre, variation-tag-guard) : baseRefName ajoute au --json, et pipe jq pour filtrer select((.baseRefName == main) or null). - 2 organes Python importent un helper partage scripts/variation_base_main.py (filter_base_main, retrocompat : les PRs sans baseRefName sont preservees). - scripts/tests/test_variation_base_main.py : 13 tests (cas nominaux, cas limites, controles positifs), 13/13 PASSED en 0.07s. Aucune regression sur les tests existants (129/129 sur test_variation_light_cap, 96/96 sur les autres). Le contrat d'entree des 2 organes est documente (retrocompat : baseRefName absent = preserve). Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Grain: MED/test -- lane myia-po-2024:CoursIA-2 -- prev: MED/notebook-python #18908
Résumé
Suite à la réserve ai-01 du 2026-10-02T22:30Z (commentaire PR #18822 #5962478216) : le test réécrivait
trajectoire_mensuelleetverifier_alerteau lieu d'exécuter la source des cellules1f127d45(cell 10) etb097a42e(cell 11) du carnet09e_Production_Exploitation.ipynb. Une régression du carnet aurait laissé les 7 tests verts.Cause racine
Le test précédent forgeait des fonctions avec une signature différente :
trajectoire_mensuelle(cout, vol, part, budget, jours_periode=30)retournant(cumuls, m80, mp, j80, jp)verifier_alerte(cumuls, budget, mois, jour_dans_mois, jours_periode=30)retournant un booléentrajectoire(cout, vol, part, budget)→(cumuls, j80, jp),verifier_alerte(cumuls, budget, au_jour)retourne un booléenRefonte
Le test charge maintenant la source réelle des cellules par id (
nbformat.read) et l'exécute dans un namespace isolé avec un mock minimal deMESURES(juste assez pour que la cellule 10 calculeCOUT_DISTANT = sum(MESURES['distant'])/len(MESURES['distant'])puis exécute ladef trajectoire).Les vraies fonctions sont importées depuis le namespace d'exécution :
trajectoire(cout_distant_par_req, volume_par_jour, part_locale, budget_usd) -> (cumuls, j80, jp)verifier_alerte(cumuls, budget_usd, au_jour) -> boolTémoin négatif (Tell c.4 strict fondateur)
Mesures firsthand :
JOURS_MOIS30 → 365 :test_pente_063_pas_depasse_moisrouge (depense_30j = 22.99 > 10) ✓jours_periode=365) → rouge immédiatJOURS_MOISà 365) → rouge logique ✓ (mesuré :FAILED tests/test_k07_budget_mensuel_renouvelable.py::test_pente_063_pas_depasse_mois)La logique pure du carnet est chargée à chaque exécution pytest — toute modification du source qui change la signature (
return cumuls, jour80, jour_plein) fait lever uneRuntimeErrordans_load_trajec()qui se traduit enERRORpytest (test en échec, pas PASS silencieux).Tests (8, tous PASS post-refonte)
test_pente_nulle_100pct_localtest_zero_requete_aucun_epuisementtest_pente_063_pas_depasse_moistest_pente_04_depasse_mois_1_jour_25test_reset_mensuel_renouvelabletest_verifier_alerte_franchissement_jour20test_verifier_alerte_hors_fenetretest_regression_cumul_annuel_detecteeRecommandation coordinateur
Branche prête à merger (Tell c.1502 strict fondateur respecté : lane ne merge pas). La PR #18822 existante pointe sur
test/18775-k07-budget-mensuel(357d7f9) ; cette nouvelle PR porte un rebase sur la même base mais avec la refonte du test.3 options :
test/18775-k07-budget-mensuel(= PR test(genai,#18736,#18775): test unitaire budget mensuel renouvelable K07 #18822)Conformité règles
Refs #18822, #18736, #18775