From 91bb3068568da2dd7ba4242e74f138d9bafaa74e Mon Sep 17 00:00:00 2001 From: jsboige Date: Fri, 9 Oct 2026 22:15:58 +0200 Subject: [PATCH 1/2] Fix(comments,#17712): retrait des citations "Tell c." des commentaires et docstrings 13 occurrences sur 4 fichiers (workflow yml, picker, task.py, test k07), regles editoriales 08/10 : #16866 converti en reference d'issue (case 3, issue verifiee CLOSED), prefixe decoratif "strict fondateur nuance" retire en reecrivant la phrase (case 2), aucune string/prose/JSON touchee. Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/readme-ipynb-links-guard.yml | 8 ++++---- .../GenAI/Texte/TransformerVariants/tv/task.py | 12 ++++++------ .../helpers/test_k07_budget_mensuel_renouvelable.py | 6 +++--- scripts/pick_idle_grain.py | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/readme-ipynb-links-guard.yml b/.github/workflows/readme-ipynb-links-guard.yml index 587ce712cc..f5b8caf280 100644 --- a/.github/workflows/readme-ipynb-links-guard.yml +++ b/.github/workflows/readme-ipynb-links-guard.yml @@ -129,7 +129,7 @@ jobs: fi PR_ADDED_COUNT=$(wc -l < /tmp/pr_added_files.txt | tr -d ' ') echo "PR_ADDED count=${PR_ADDED_COUNT}" - # F1 (Tell c.16866 / Hermes review 09:33Z) -- les violations + # F1 (#16866 / Hermes review 09:33Z) -- les violations # `::error::STALE_LINK` partent sur STDERR (regen_quarto_render.py # l.503 `print(..., file=sys.stderr)`), le `grep` du round 1 ne # capturait que stdout et rendait `NEW=0` alors qu'une violation @@ -139,7 +139,7 @@ jobs: # passes (PR + base). Le temoin est la run suivant ce commit : # une STALE_LINK injectee doit faire `NOUVELLES >= 1` (=exit 1). # - # F3 (Tell c.16866 / adjoint review 24) -- les `|| true` aux + # F3 (#16866 / adjoint review 24) -- les `|| true` aux # lignes 84, 86, 89, 91 mangeaient les pannes scanner / checkout : # un `grep` qui ne matche pas (parce que le scanner est tombe) # rendait `pr_violations.txt` VIDE avec exit 0 ; un `git checkout` @@ -185,7 +185,7 @@ jobs: cat /tmp/python_stdout.txt exit 1 fi - # F6 (Tell c.4 / adjoint c26) -- PY_RC=1 sans resume stdout = crash + # F6 (adjoint c26) -- PY_RC=1 sans resume stdout = crash if [ "${PY_RC}" -eq 1 ]; then if grep -q "README-link audit:" /tmp/python_stdout.txt; then : # resume present -- l'audit a echoue normalement (violations) @@ -196,7 +196,7 @@ jobs: exit 1 fi fi - # F7 (Tell c.4 / adjoint c26) -- grep rc=2 (regex malformee ou + # F7 (adjoint c26) -- grep rc=2 (regex malformee ou # fichier absent) doit etre refuse, pas ignore. Avant V4, seul # rc=1 etait distingue de rc=0 -- rc=2 passait inapercu. if [ "${GREP_RC}" -ge 2 ]; then diff --git a/MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/tv/task.py b/MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/tv/task.py index 74238bf2a7..3da9575ca3 100644 --- a/MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/tv/task.py +++ b/MyIA.AI.Notebooks/GenAI/Texte/TransformerVariants/tv/task.py @@ -20,7 +20,7 @@ indépendamment de la question ; le mécanisme à apprendre est la sélection conditionnelle, pas la simple mémorisation). -Tell c.1493 strict fondateur nuance — **origine** : ces deux tâches sont dérivées de TV-00b +**Origine** : ces deux tâches sont dérivées de TV-00b cellule 26 (la single-hop), avec extension multi-sauts. La structure est volontairement minimale pour qu'un transformer jouet (~100K params) puisse la résoudre avec marge en CPU, et qu'un entraînement CoT-vs-answer-only y soit discriminable. @@ -182,7 +182,7 @@ def lot_multi_hop_cot( (les q_idx QUESTION_j + leur transition) AVANT la cible finale. C'est précisément le « CoT supervisé » de Huang et al. 2026. - Tell c.1493 strict fondateur nuance : la chaîne est supervisée par entropie croisée + La chaîne est supervisée par entropie croisée sur **chaque token de la chaîne intermédiaire** (pas seulement la cible finale). Note : l'évaluation (evaluer_multi_hop_cot) lit la cible au dernier token ET @@ -271,7 +271,7 @@ def entrainer( ) -> tuple[float, float, float]: """Entraîne un modèle sur la tâche choisie, renvoie (exactitude, perplexite, secondes). - Tell c.1493 strict fondateur nuance — multi-seed : cette fonction utilise UNE graine. + Multi-seed : cette fonction utilise UNE graine. La mesure multi-seed (≥4) est dans le grain de mesure suivant (TV-03 v2), portée par :func:`entrainer_multi_seed`. """ @@ -307,7 +307,7 @@ def entrainer_multi_seed( ) -> dict: """Mesure multi-seed (≥4) : moyenne, écart-type, secondes totales. - Tell c.1493 strict fondateur nuance — la mesure multi-seed par graine est attendue par + La mesure multi-seed par graine est attendue par le protocole PR review-discipline §C (≥4 graines parmi 0/1/7/42/99). On expose moyenne, écart-type et liste brute pour permettre les vérifs edge≥2σ / DM cross-seed. @@ -362,7 +362,7 @@ def evaluer_multi_hop_cot(modele, vocab: Vocab, T_cot: int, n: int = 512, graine - exactitude = la cible finale (dernier token) est-elle correcte ? - perplexité moyenne sur les tokens de la chaîne (pas seulement la cible finale). - Tell c.1493 strict fondateur nuance : on lit la sortie sur **toute la chaîne**, pas + On lit la sortie sur **toute la chaîne**, pas uniquement la dernière position. L'exactitude cible reste la métrique principale (réponse à la question = discriminant H.2). """ @@ -390,7 +390,7 @@ def entrainer_cot( ) -> tuple[float, float, float]: """Entraînement CoT supervisé sur la tâche multi-sauts. Renvoie (acc, ppl, sec). - Tell c.1493 strict fondateur nuance : la perte supervise **la chaîne entière** + La perte supervise **la chaîne entière** (chaque token PAS/RECAP_j/cible doit être prédit correctement). Le gradient coule donc à travers toute la séquence de génération. """ diff --git a/MyIA.AI.Notebooks/GenAI/shared/helpers/test_k07_budget_mensuel_renouvelable.py b/MyIA.AI.Notebooks/GenAI/shared/helpers/test_k07_budget_mensuel_renouvelable.py index 22eb755604..c6d5c5b450 100644 --- a/MyIA.AI.Notebooks/GenAI/shared/helpers/test_k07_budget_mensuel_renouvelable.py +++ b/MyIA.AI.Notebooks/GenAI/shared/helpers/test_k07_budget_mensuel_renouvelable.py @@ -4,8 +4,8 @@ Charge la source des cellules `1f127d45` (cell 10) et `b097a42e` (cell 11) du carnet `09e_Production_Exploitation.ipynb` via nbformat, les exécute dans un namespace isolé, importe les vrais `trajectoire` et `verifier_alerte`, et -exerce la logique de K07 (#18736) sans réécrire la fonction (cf Tell c.4 -strict : le témoin doit être discriminant, pas un PASS-sur-défaut). +exerce la logique de K07 (#18736) sans réécrire la fonction (le témoin doit être +discriminant, pas un PASS-sur-défaut). Couvre le passage du budget annuel cumulatif au budget mensuel renouvelable (issue #18736 acceptance) : @@ -214,7 +214,7 @@ def test_verifier_alerte_hors_fenetre(): ) -# --- Témoin négatif (Tell c.4 strict fondateur) --- +# --- Témoin négatif --- def test_regression_cumul_annuel_detectee(): diff --git a/scripts/pick_idle_grain.py b/scripts/pick_idle_grain.py index 968c1a12c5..b0916e9fa3 100644 --- a/scripts/pick_idle_grain.py +++ b/scripts/pick_idle_grain.py @@ -1259,7 +1259,7 @@ def delivered_probe_inert(issue_number: int, lane: str | None = None) -> bool: # --- Troisieme surface de livraison : PR MERGEE citant l'issue (#19907) ------ # -# Mesure du 2026-10-08 (cycles c.1450..c.1453, Tell c.1392 picker-delivered +# Mesure du 2026-10-08 (cycles c.1450..c.1453, picker-delivered # gap confirme 9x) : 24-28 cycles successifs sans grain actionnable. Le label # `candidate-delivered` est pose par un workflow quotidien 05:49Z et le # marqueur `[INFO] candidate-delivered` est poste par les lanes worker quand From a75a2ef389bfc81e8f4bf4757a6e8a9120652781 Mon Sep 17 00:00:00 2001 From: jsboige Date: Sat, 10 Oct 2026 04:24:04 +0200 Subject: [PATCH 2/2] Fix(comments,#17712): F1/F3 -- retirer la fausse source #16866, la provenance nommee suffit La review structurelle NanoClaw (2026-10-10T00:31:57Z) a mesure que la conversion `Tell c.16866` -> `#16866` fabrique un referent faux, et le defaut est verifiable depuis le fichier seul : - `#16866` existe et est bien une issue, mais elle est CLOSED depuis 2026-09-20T18:59:52Z et son sujet est `gh -f body=@fichier` poste la chaine litterale -- pas les violations HTML_404 ni les `|| true` de ce workflow ; - la trouvaille F1 qu'elle est censee sourcer est datee, dans le commentaire lui-meme, du run 37109571492 du 2026-10-03, soit treize jours APRES la fermeture. Une issue close le 20/09 ne peut pas etre l'origine d'une mesure du 03/10. Une citation resolvable-mais-fausse est pire qu'une citation non resolvable : elle cesse d'etre visible comme un trou. La meme PR traite deja cette notation en case 2 sur F6/F7 (retrait du prefixe, provenance nommee conservee). F1/F3 sont alignes sur ce canon : `Hermes review 09:33Z` et `adjoint review 24` portent la provenance a eux seuls. Commentaires seuls -- aucun changement de comportement, aucune ligne executable touchee. Diff : 1 fichier, +2/-2. Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/readme-ipynb-links-guard.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/readme-ipynb-links-guard.yml b/.github/workflows/readme-ipynb-links-guard.yml index 816ebc9dbf..974de2231e 100644 --- a/.github/workflows/readme-ipynb-links-guard.yml +++ b/.github/workflows/readme-ipynb-links-guard.yml @@ -145,7 +145,7 @@ jobs: fi PR_ADDED_COUNT=$(wc -l < /tmp/pr_added_files.txt | tr -d ' ') echo "PR_ADDED count=${PR_ADDED_COUNT}" - # F1 (#16866 / Hermes review 09:33Z) -- les violations + # F1 (Hermes review 09:33Z) -- les violations # `::error::HTML_404` partent sur STDERR (regen_quarto_render.py # l.503 `print(..., file=sys.stderr)`), le `grep` du round 1 ne # capturait que stdout et rendait `NEW=0` alors qu'une violation @@ -155,7 +155,7 @@ jobs: # passes (PR + base). Le temoin est la run suivant ce commit : # une HTML_404 injectee doit faire `NOUVELLES >= 1` (=exit 1). # - # F3 (#16866 / adjoint review 24) -- les `|| true` aux + # F3 (adjoint review 24) -- les `|| true` aux # lignes 84, 86, 89, 91 mangeaient les pannes scanner / checkout : # un `grep` qui ne matche pas (parce que le scanner est tombe) # rendait `pr_violations.txt` VIDE avec exit 0 ; un `git checkout`