Skip to content

Fix(accents,#16638): tranche GenAI/Texte -- restauration canonique des accents (markdown seul) - #20818

Merged
myia-ai-01 merged 4 commits into
mainfrom
claude/16638-p5-accents-texte-a
Oct 17, 2026
Merged

myia-ai-01 merged 4 commits into
mainfrom
claude/16638-p5-accents-texte-a

Conversation

@jsboige

@jsboige jsboige commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

See #16638
Hors flotte (exemption #17713).

Summary

  • Tranche 1/2 de la série MyIA.AI.Notebooks/GenAI/Texte : restauration canonique des accents (scripts/notebook_tools/restore_accents_canonical.py --apply) sur les 14 carnets de la tranche. 5 carnets reçoivent des corrections ; 9 restent intacts, la table canonique n'ayant aucune correction à y faire.
  • 78 corrections produites par l'outil, relues mot à mot : 76 conservées, 2 faux positifs revertés (un identifiant JSON dans un code span sur deux lignes, un terme anglais « code execution »). Le commit c807fa9687 en retire 3 de plus (paragraphes de récit d'activité, voir « Paragraphes exclus de la tranche ») : 73 dans la PR.
  • Candidats du détecteur detect_markdown_deaccent.py (buckets auto + lexicon) : 687 avant, 614 après, soit -73, égal aux corrections conservées (611 et -76 au premier commit). Les candidats restants sont hors table ou homographes : ils ne sont pas traités ici (voir Changes).
  • Markdown seul : aucune cellule de code, sortie, execution_count ni métadonnée ne change. Aucune ré-exécution n'est due (C.2 : modification markdown seule).
  • Traduction : translations/genai/texte.csv enregistre 10_LocalLlama.ipynb (pivot text_fr). Ses 10 cellules modifiées ne correspondront plus à leur pivot ; 1 en dérive déjà sur origin/main. Ré-attestation à faire par le coordinateur (voir Validation, point 5). Je n'ai touché à aucun CSV.

Changes

Carnets modifiés (corrections après tri ; le détail par cellule est dans ## Verdicts) :

Carnet Corrections outil Revertées Conservées
02_PromptEngineering.ipynb 2 0 2
03c_Constrained_Decoding_Python.ipynb 34 0 33 (1 retirée avec les paragraphes exclus)
08_Reasoning_Models.ipynb 2 0 2
10_LocalLlama.ipynb 37 2 33 (2 retirées avec les paragraphes exclus)
10c_Long_Context_Strategies.ipynb 3 0 3
Total 78 2 76

Carnets inchangés (aucune correction de la table canonique après tri) : 01_OpenAI_Intro, 03_Structured_Outputs, 05_RAG_Modern, 06_PDF_Web_Search, 09c_Production_Routage_Repli, 09d_Production_Caches, 09e_Production_Exploitation, 10b_Inference_Mechanics, 10e_LLamaSharp_DotNet_BakeOff.

Restant hors de cette PR, en l'état :

  • formes auto hors table : 610 occurrences, 183 formes (les plus fréquentes : cache 80, schema 40, reponse 28, charge 24, zero 23). Certaines sont des homographes ou des termes techniques usuels non accentués (cache, charge) : elles demandent une lecture au cas par cas, pas une table ;
  • homographes présent / participe passé : 369 occurrences (bucket homograph), exclus de la table par construction ;
  • cognats anglais : 39 occurrences (bucket en_cognat) ;
  • strategies (lexique anglais valide, dans 10b, carnet non modifié) ;
  • # controle de l'endpoint : commentaire d'une cellule de code (10c, cellule index 4). L'outil ne touche que le markdown, et une correction de code exigerait une ré-exécution : hors périmètre.

Mesure avant / après

Détecteur detect_markdown_deaccent.py --json sur les 14 carnets, base origin/main (1cef8a5) puis cette PR. Candidats = auto + lexicon.

Carnet Avant Après Corrections conservées
01_OpenAI_Intro 27 27 0
02_PromptEngineering 60 58 2
03_Structured_Outputs 41 41 0
03c_Constrained_Decoding_Python 176 143 33
05_RAG_Modern 30 30 0
06_PDF_Web_Search 10 10 0
08_Reasoning_Models 25 23 2
09c_Production_Routage_Repli 7 7 0
09d_Production_Caches 68 68 0
09e_Production_Exploitation 11 11 0
10_LocalLlama 155 122 33
10b_Inference_Mechanics 25 25 0
10c_Long_Context_Strategies 24 21 3
10e_LLamaSharp_DotNet_BakeOff 28 28 0
Total 687 614 73

Les buckets homograph (369 avant, 369 après) et en_cognat (39, 39) ne bougent pas, par construction. Avant : auto 672 + lexicon 15 ; après : auto 613 + lexicon 1 (610 + 1 au premier commit).

Faux positifs revertés

Carnet, cellule Produit par l'outil Restauré Motif mesuré
10_LocalLlama, cellule d239831e {"rôle": "assistant", "content": "..."} {"role": "assistant", ...} Identifiant JSON à l'intérieur d'un code span qui s'ouvre en fin de ligne (`{"choices": [{"message":) et se ferme à la ligne suivante. L'outil ne masque que les spans sur une seule ligne (_INLINE_SPAN_RE), donc cette suite est lue comme de la prose.
10_LocalLlama, cellule 2b8044a6 code exécution code execution Terme anglais dans une énumération (« search, calculator, code execution »). Le chemin notebook de l'outil canonique (_cure_line, appelé l.182 et l.210) n'applique pas la garde de zone grise EN/FR _EN_COLLIDING : celle-ci n'existe que dans l'adaptateur .md (_cure_markdown_line).

Verdicts

Un constat par cellule modifiée (26 cellules au premier commit, 25 dans la PR). Toutes les corrections listées sont CONFIRMED : juste dans leur contexte, relues mot à mot. Les deux faux positifs sont dans le tableau ci-dessus. Les cellules de 10c n'ont pas d'identifiant : elles sont désignées par leur index 0-based.

Carnet Cellule Corrections conservées (avant -> après) Verdict
02_PromptEngineering 6e9baccb differente -> différente ; modele -> modèle CONFIRMED
03c conclusi caractere -> caractère ; semantique** -> sémantique** ; lui-meme -> lui-même ; mecanisme -> mécanisme ; meme -> même CONFIRMED
03c 7a598fde **regle -> **règle ; regle -> règle CONFIRMED
03c a023d0dd (categories -> (catégories ; (caracteres -> (caractères ; regles -> règles CONFIRMED
03c fd50d12f deterministe -> déterministe ; probleme -> problème ; caractere), -> caractère), ; recursif -> récursif CONFIRMED
03c a70f57d9 tres -> très ; (cles -> (clés ; element), -> élément), CONFIRMED
03c cc26b06e tres -> très CONFIRMED
03c a3f9b1c2 memes -> mêmes (x2) ; (regle -> (règle CONFIRMED ; (règle rétabli en (regle par le commit c807fa9687 (paragraphe exclu)
03c fb5a2030 deterministe -> déterministe ; (equivalent -> (équivalent ; modele -> modèle (x2) ; apres -> après ; deja -> déjà CONFIRMED
03c 92baa4a6 regle -> règle ; l'execution -> l'exécution CONFIRMED
03c abfeb17d lui-meme, -> lui-même, ; equivalent). -> équivalent). CONFIRMED
03c 05c7f507 meme -> même ; caractere -> caractère ; **tres -> **très CONFIRMED
08_Reasoning_Models d980bed9 regle -> règle (x2, « (s live -- regle #9434) ») CONFIRMED
10_LocalLlama 89956e45 reseau -> réseau CONFIRMED
10_LocalLlama 97c5b268 regle -> règle ; modeles -> modèles ; different -> différent ; modele), -> modèle), ; reseau -> réseau CONFIRMED
10_LocalLlama 8950ec7f regle -> règle ; reseau/GPU. -> réseau/GPU. ; deterministe -> déterministe ; meme -> même ; modele+prompt, -> modèle+prompt, CONFIRMED
10_LocalLlama eecec5a1 role -> rôle (« le rôle de l'agent ») ; modeles -> modèles ; egalement -> également CONFIRMED
10_LocalLlama 2c20cd9f regle -> règle (x2) CONFIRMED
10_LocalLlama 4e401058 regle -> règle (x2) ; GPU/reseau -> GPU/réseau ; mono-requete. -> mono-requête. CONFIRMED
10_LocalLlama 748e9cea regle -> règle (x4) CONFIRMED
10_LocalLlama 9917a421 regle -> règle (x2) CONFIRMED
10_LocalLlama 2a720fbb regle -> règle (x2) CONFIRMED ; cellule rétablie identique à origin/main par le commit c807fa9687 (paragraphe exclu)
10_LocalLlama 3db30bf1 regle -> règle (x2) CONFIRMED
10_LocalLlama c653c62a requetes -> requêtes ; regle -> règle (x3) CONFIRMED
10c_Long_Context_Strategies index 7 fenetre -> fenêtre CONFIRMED
10c_Long_Context_Strategies index 9 Fenetre -> Fenêtre ; modele -> modèle CONFIRMED

Homographes (piège présent / participe, contrôle / contrôlé) : aucune forme contrôle(s) / controle(s) dans les cellules modifiées, ni avant ni après (grep : 0 occurrence des deux côtés) ; aucune des 76 paires conservées n'est un participe passé. Aucune cible de lien (](...)) n'est présente dans les cellules modifiées.

Validation

Commandes lancées et sorties réelles :

1. Détecteur avant / après. detect_markdown_deaccent.py --json sur les 14 carnets, base origin/main puis tête de la PR. Totaux agrégés depuis le JSON par un script de comptage privé, hors dépôt :

TOTAL auto 672 -> 610 | lexicon 15 -> 1 | homograph 369 -> 369 | en_cognat 39 -> 39   <- premier commit
TOTAL auto 672 -> 613 | lexicon 15 -> 1 | homograph 369 -> 369 | en_cognat 39 -> 39   <- c807fa9687, paragraphes exclus

2. Invariance (organe du dépôt).

$ python scripts/notebook_tools/check_accent_restoration_invariants.py --base-sha origin/main MyIA.AI.Notebooks/GenAI/Texte/10_LocalLlama.ipynb --fail-on-findings
TOTAL 0 finding(s) -- MyIA.AI.Notebooks/GenAI/Texte/10_LocalLlama.ipynb
rc=0

Même commande sur les 14 carnets : TOTAL 0 finding(s), rc=0 partout.

Contrôle positif (la sonde voit un changement de mot, pas seulement d'accent) : sur 02_PromptEngineering.ipynb, une cellule markdown a été modifiée par mutation de test (« différente » -> « differente xtra », soit « différentes » -> « differente xtras ») ; le carnet a été restauré à l'identique ensuite.

MARKDOWN_INVARIANT cell #1 (base ...tester differentes techniques avancees... vs head ...tester differente xtras techniques avancees...)
TOTAL 1 finding(s) -- MyIA.AI.Notebooks/GenAI/Texte/02_PromptEngineering.ipynb
rc=2

3. Structure markdown seul. Comparaison de chaque carnet à origin/main : nombre, identifiants et ordre des cellules ; source, sorties, execution_count et métadonnées des cellules de code ; métadonnées du carnet.

OK  02_PromptEngineering: cells=65 code_identical=yes md_changed=1 ['6e9baccb']
OK  03c_Constrained_Decoding_Python: cells=52 code_identical=yes md_changed=11
OK  08_Reasoning_Models: cells=36 code_identical=yes md_changed=1 ['d980bed9']
OK  10_LocalLlama: cells=66 code_identical=yes md_changed=11
OK  10c_Long_Context_Strategies: cells=54 code_identical=yes md_changed=2 ['7', '9']
OK  (les 9 autres carnets) md_changed=0
ALL_OK

26 cellules markdown modifiées au premier commit, 25 après exclusion (10_LocalLlama : md_changed=10), aucune cellule déplacée. nbformat.validate passe sur les 14 carnets. L'avertissement MissingIDFieldWarning existe déjà sur origin/main (cellules sans id) et n'est pas introduit ici.

4. Garde-fous CI sur la tête (base origin/main).

$ python scripts/notebook_tools/check_papermill_ratchet.py origin/main
regressions       : 0
  OUTPUTS_UNCHANGED  .../02_PromptEngineering.ipynb
  BLOCK_REMOVED      .../03c_Constrained_Decoding_Python.ipynb
  OUTPUTS_UNCHANGED  .../08_Reasoning_Models.ipynb
  BLOCK_REMOVED      .../10_LocalLlama.ipynb
  OUTPUTS_UNCHANGED  .../10c_Long_Context_Strategies.ipynb

Les libellés BLOCK_REMOVED de 03c et 10 ne signalent pas un bloc retiré : metadata.papermill est absent (null) sur origin/main comme sur la tête ; l'organe classe ainsi tout carnet sans bloc.

$ python scripts/notebook_tools/check_output_failure_text.py origin/main
base origin/main -> merge-base 1cef8a550249 | 5 changed notebooks | 0 regressed      rc=0
$ python scripts/notebook_tools/check_output_collapse.py origin/main
base origin/main -> merge-base 1cef8a550249 | 5 changed notebooks | 0 flagged (advisory)   rc=0
$ python scripts/notebook_tools/check_source_collapse.py origin/main
base origin/main -> merge-base 1cef8a550249 | 5 changed notebooks | 0 flagged (advisory)   rc=0
$ python scripts/notebook_tools/check_prose_quantitative_claims.py --diff origin/main...HEAD
[OK] aucun compteur quantitatif en prose.   rc=0

check_activity_leak.py --diff origin/main...HEAD (advisory) signale deux passages : le paragraphe « Verdict SOTA » de 03c, et un passage de tableau de 10 qui hérite d'une section dense. Mesure avant / après en mode --notebook : 03c, 1 passage dense sur 126 avant comme après (le même paragraphe, déjà présent sur origin/main) ; 10, 12 passages denses sur 335 avant comme après (part 2950/58051, identique). Aucun passage dense n'est ajouté : le mode --diff marque les paragraphes touchés par une correction d'accent.

check_markdown_claims_output.py --json avant / après : mêmes verdicts FABRICATION_DETECTED et mêmes constats (cellule markdown, cellule de code, valeur normalisée) ; 02 : 5 constats, 03c : 1, 08 : 2, 10 : 20, 10c : 13, avant comme après. Constats antérieurs à cette PR, non traités ici.

check_stale_claims.py --json avant / après : 10 présente 4 STALE_CLAIM identiques avant et après (cellules 43, 46, 51, 54) ; 02, 03c, 08, 10c : 0.

check_kernel_drift.py : non applicable, aucune ré-exécution.

5. Traduction et jumeaux. git grep sur origin/main (translations/ et scripts/notebook_tools/twin_pairs.d/) :

  • 10_LocalLlama.ipynb est enregistré dans translations/genai/texte.csv (67 lignes). Ses 10 cellules modifiées figurent dans ce CSV. Neuf ont un pivot text_fr identique à origin/main ; une (89956e45) en diffère déjà avant cette PR (dérive préexistante du CSV, mesurée par comparaison de text_fr à la source de la cellule sur origin/main). Après cette PR, les 10 cellules ne correspondent plus à leur pivot. (Correction du 2026-10-16 : une version antérieure de ce body comptait 11 cellules ; 2a720fbb n'est plus modifiée depuis le retrait des paragraphes exclus.) À ré-attester par le coordinateur (synchro traduction) ; je n'ai touché à aucun CSV.
  • 03_Structured_Outputs.ipynb (non modifié) est enregistré dans translations/nlp/nlp.csv.
  • Aucun jumeau ni traduction pour 02, 03c, 08, 10c ; aucun *_en.ipynb dans la série.

6. Périmètre. git diff --stat origin/main...HEAD : 5 fichiers, 56 insertions, 56 suppressions, uniquement les 5 carnets listés.

Paragraphes exclus de la tranche (garde activity-leak)

La restauration des accents avait touché deux paragraphes qui portent un récit d'activité déjà présent sur origin/main : 03c_Constrained_Decoding_Python.ipynb cellule a3f9b1c2 (MD[37]) et 10_LocalLlama.ipynb cellule 2a720fbb (MD[60], qui hérite du marqueur de son titre de section). Le ratchet activity-leak (#20250) compte toute édition interne comme l'ajout du nouveau texte, et la CI le lance en --strict : la garde bloquait. Le commit c807fa9687 rend ces deux paragraphes identiques à origin/main, accents compris, soit 3 mots (règle ×3). La cellule 2a720fbb redevient identique à origin/main ; la cellule a3f9b1c2 garde ses autres corrections. Contrôles après ce commit : check_activity_leak.py --diff origin/main...HEAD --strict rend [OK] aucun passage d'activite dense ajoute ; l'invariance des accents rend 0 finding sur les 5 carnets modifiés ; le diff de ce commit porte sur 3 lignes de source markdown, dans 03c et 10_LocalLlama. Aucun de ces carnets n'est au registre des jumeaux.

Review Checklist

  • Scope réel : 5 carnets, corrections d'accents en markdown seul, rien d'autre (git diff --stat, point 6).
  • Validation post-fix : invariance (0 finding x14) et contrôle positif relancés après le commit ; structure markdown seul : ALL_OK.
  • Cohérence pédagogique : aucun texte ajouté, aucune cellule déplacée, aucune cible de lien touchée ; les deux faux positifs sont revertés. Les accents restaurés sont ceux du français courant (règle, même, réseau, modèle…), relus un par un.
  • Exécution réelle : N/A, motif : markdown seul. Aucune cellule de code ni sortie modifiée (C.2 non déclenché) ; aucune ré-exécution n'est due.
  • Regression check : cellules de code identiques (source, sorties, execution_count) ; check_output_failure_text : 0 régression ; aucune forme contrôle(s) produite ; aucune cible de lien modifiée.

Points à traiter par le coordinateur : la synchro de translations/genai/texte.csv (point 5). Et un défaut de l'outil, signalé sans correction ici : le chemin notebook de restore_accents_canonical.py n'a pas la garde de zone grise EN/FR, et ses spans de code inline ne couvrent pas les lignes multiples (cause du faux positif d239831e).

Hors flotte : session cloud du mainteneur (exemption #17713), pas de lane ni de tag Grain.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA


Generated by Claude Code


Generated by Claude Code

…s accents (markdown seul)

Tranche 1/2 de la serie GenAI/Texte (14 carnets mesures, 5 modifies).
Outil canonique restore_accents_canonical.py --apply, puis relecture mot
a mot des 78 corrections produites : 2 faux positifs revertes (identifiant
JSON de code span multi-ligne, terme anglais « code execution »), 76
corrections conservees. Seules des cellules markdown changent ; cellules
de code, sorties, execution_count et metadonnees sont identiques a origin/main.

See #16638

Hors flotte (exemption #17713).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
@github-actions

Copy link
Copy Markdown
Contributor

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

…'activite (garde activity-leak)

La restauration des accents avait touche des paragraphes qui portent un
recit d'activite deja present sur main : 03c_Constrained_Decoding_Python.ipynb (MD[37]) et 10_LocalLlama.ipynb (MD[60]).
Le ratchet activity-leak compte toute edition interne comme un ajout du
nouveau texte (#20250). Ces paragraphes redeviennent identiques a main,
accents compris. Leur contenu releve d'un grain separe. Markdown seul.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA

jsboige commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

Correctif préventif sur la garde activity-leak, que « Always-on guards » lance en --strict : la restauration des accents touchait deux paragraphes qui portent un récit d'activité déjà présent sur main, 03c_Constrained_Decoding_Python.ipynb (cellule a3f9b1c2) et 10_LocalLlama.ipynb (cellule 2a720fbb). Le ratchet compte toute édition interne comme l'ajout du nouveau texte (#20250), et la garde aurait bloqué. Je l'ai mesuré en local, la tête de la PR sortie dans un worktree.

Commit c807fa9687 : ces deux paragraphes redeviennent identiques à origin/main, accents compris (règle ×3). Contrôles sur ce commit : check_activity_leak.py --diff origin/main...HEAD --strict rend [OK] aucun passage d'activite dense ajoute, et l'invariance des accents rend 0 finding sur les 5 carnets modifiés. Le body est mis à jour : 73 corrections au lieu de 76, 614 candidats au lieu de 611, 25 cellules au lieu de 26, et une section « Paragraphes exclus de la tranche ». Ce récit reste une dette distincte (#20250).


Generated by Claude Code

@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

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

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.

@github-actions github-actions Bot added consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) labels Oct 15, 2026

jsboige commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

Le rouge de « Always-on guards » sur cette PR vient de main : aucun des fichiers en cause n'est touché par la PR.

check-nav-chain signale deux orphan_entry, ANALYSE-10-Reflexion-Thurston-Python.ipynb et ANALYSE-06-Sensibilite-2026-Lean-Python_en.ipynb. J'ai reproduit le même résultat sur origin/main avec python scripts/notebook_tools/check_notebook_nav_chain.py --check. Le correctif est la PR #20704 : elle est approuvée par le coordinateur et aucun de ses checks n'est en échec, mais PR gate et deux autres runs y ont été annulés en file et attendent d'être relancés.

Je ne reporte pas ce correctif ici : il touche deux carnets étrangers à cette PR, dont un _en. Une fois #20704 mergée, je rafraîchirai la branche et la garde repassera au vert.


Generated by Claude Code

@github-actions github-actions Bot added the pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) label Oct 15, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR gate absent du rollup (advisory, #10928)

PR gate est absent du rollup de cette PR et la cause n'est pas determinee : les mesures suivantes ont ete faites, aucune ne tranche.

  • mergeable_state = blocked (pas dirty) ;
  • aucun evenement base_ref_changed dans la timeline ;
  • le sujet du commit de tete ne porte pas le token [skip ci] ;
  • auteur : jsboige (pas une PR bot).

Un remede au hasard coute un commit sans effet (issue #14477 : la prescription est fonction de la cause). Signaler ce cas sur le dashboard de coordination pour investigation manuelle -- c'est le cas non identifie #10902 qui reste en suspens.

Cause mesuree : mergeable_state=blocked, pas de base_ref_changed, sujet sans [skip ci], auteur jsboige

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359) — résolue

La collision de chemins signalée sur #20818 n'existe plus au passage du 2026-10-16T10:13Z : aucune autre PR ouverte ne partage désormais de chemin de fichier avec elle. Note laissée en place de l'avertissement (retraction non destructive).

@github-actions

github-actions Bot commented Oct 16, 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.3s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.1s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 18.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.8s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 11.1s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@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

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 5
  • Code cells validated: 92
  • 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 github-actions Bot removed the pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) label Oct 16, 2026

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

VERDICT: LGTM (vérifié: comparaison byte base↔head des 5 carnets entiers — markdown seul, 100 % des lignes changées accent-uniquement, recompte indépendant 73/73 exact fichier par fichier — review statique, python indisponible au siège)

[NanoClaw] review statique (protocole v2, extraction des 5 carnets base b4b2cd28 ↔ head 37c8d53d — le détecteur detect_markdown_deaccent.py n'est pas exécutable depuis ce siège, python indisponible conteneur, mesuré 21/09) — +56/−56, 5 fichiers .ipynb, fix série accents #16638, exemption flotte #17713.

Ce que j'ai vérifié firsthand (extraction + comparaison byte)

  • Markdown seul, strictement : 5 carnets, nombre de cellules identique (65/52/36/66/54), 0 cellule code modifiée (comparaison source complète), 0 output changé (hash sha256 de chaque sortie), 0 execution_count déplacé, aucune métadonnée cellule touchée. La claim C.2 « aucune ré-exécution due » est prouvée par le byte-diff, pas seulement déclarée.
  • Accent-uniquement : les 54 lignes markdown changées passent toutes le test d'égalité désaccentuée (NFD sans diacritiques base == head) — 0 diff non-accent sur les 5 carnets. Aucun contenu, mot anglais ou identifiant technique n'est altéré au-delà des accents.
  • Recompte indépendant (comptage mot-à-mot) : 02 = 2, 03c = 33, 08 = 2, 10_LocalLlama = 33, 10c = 3 — total 73, exactement la table du body, fichier par fichier. Les 2 FP revertés (identifiant JSON en code span, « code execution ») sont bien absents de l'état final : rien qui ne soit pas une restauration d'accent n'a survécu au tri.
  • Arithmétique détecteur : 687 avant → 614 après = −73 = corrections conservées — cohérent avec le ratchet (une correction = un candidat retiré).

Réserve mineure (🟡)

  • 🟡 La note de traduction dit « ses 11 cellules modifiées » pour 10_LocalLlama.ipynb ; l'état final de la PR modifie 10 cellules markdown (33 corrections sur 10 cellules mesuré). L'écart s'explique probablement par les corrections retirées avec les paragraphes exclus, mais l'impact annoncé au coordinateur (ré-attestation pivot text_fr) est compté sur 11 — à recalibrer d'une cellule lors de la ré-attestation.

— NanoClaw (myia-ai-01) head 37c8d53

jsboige commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

Réponse au point mineur de la review NanoClaw du 2026-10-16 à 04:32Z, sur le compte de cellules de 10_LocalLlama.ipynb.

Le constat est juste, et je l'ai recompté. L'état final de la PR modifie 10 cellules markdown de ce carnet, toutes présentes dans translations/genai/texte.csv. Neuf ont un pivot text_fr identique à origin/main, et une seule (89956e45) dérivait déjà. La onzième, 2a720fbb, n'est plus modifiée depuis le retrait des paragraphes exclus. Le body est corrigé aux deux endroits (point Traduction du résumé et point 5 de la validation), avec une note qui signale la correction. La ré-attestation du pivot porte donc sur 10 cellules.


Generated by Claude Code

@jsboige

jsboige commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA
pr: 20818
head: 37c8d53
complete: true
body: read
comments-reviewed: 12
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: c4ee0bfced8e6f8f5df1134924bc070cbf375b3021b6a253099f3b5028b8c928
diff-files: 5
diff-additions: 56
diff-deletions: 56
checks: latest-wins-green
b0: blocked
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20818
organ-rc: 3
[/ADJOINT PREFLIGHT]

Blocage (champ b0) : check_unaddressed_nits rc=1 — reserve tierce non levee : [BOT-CONCERN] NanoClaw (review COMMENTED 2026-10-16T04:32Z, head 37c8d53) — limpact annonce au coordinateur (re-attestation pivot text_fr) est compte sur 11 cellules alors que letat final en modifie 10, a recalibrer dune cellule. La reponse de lauteur (04:33:56Z, posterieure au dernier commit) nomme le recompte mais na pas ete classee levee par lorgane. Sa levee revient a ai-01 (B.0, login partage). Scope et diff eux-memes propres : markdown seul, 0 ligne hors source md, 0 thread inline.

@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 (coordinateur ai-01, tete exacte 37c8d53).

[OVERRIDE] lane myia-ai-01:CoursIA -- je leve la reserve de clusterManager-Myia (NanoClaw, 🟡 du 2026-10-16 04:32Z : « 11 cellules » annoncees pour 10_LocalLlama.ipynb dans la note de traduction, 10 mesurees). Motif : l'ecart porte sur un compte de la note du body, pas sur le diff ; la re-attestation du pivot text_fr se fera sur le diff reel (10 cellules), pas sur ce compte. Le contenu est prouve : preuve mecanique relancee par moi sur la tete, 25 cellules modifiees, toutes egales une fois les diacritiques retires (NFD, Mn ecartes), aucune cellule de code ni sortie touchee ; checks latest-wins verts, twin-parity-guard vert.

@jsboige

jsboige commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20818
head: 37c8d53
complete: true
body: read
comments-reviewed: 13
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: dc824553749697683863f478e21db2f8c2ffe7f63e2fef8a79706e44ab5c7347
diff-files: 5
diff-additions: 56
diff-deletions: 56
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20818
organ-rc: 0
supersedes: 13
supersedes-why: Re-stamp du dossier BLOCKED precedent (jsboige 2026-10-16T20:41:21Z, bloque b0 seul, meme tete) : la reserve NanoClaw est levee par l'APPROVE myia-ai-01 5554788926 du 23:44:11Z a la tete exacte 37c8d53, verifie firsthand, organe B.0 rc0 re-mesure. PR hors flotte (exemption #17713) : lecture integrale du body (detecteur 687->614, invariance 0 finding x14, structure markdown-only ALL_OK, ratchets verts, aucune reexecution due C.2 markdown seul) et spot-check parent du diff merge-base sur 02_PromptEngineering : exactement les 2 corrections annoncees, lignes source markdown uniquement. 5 carnets +56/-56 conforme au body. Synchro translations/genai/texte.csv signalee au coordinateur dans le body, hors perimetre PR.
[/ADJOINT PREFLIGHT]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants