Repository navigation
feat(translation,#1650): Fort-Boyard -- ids nbformat des cellules md + jumeau EN rendu (T3/T4) - #20453
Conversation
2ab6457 to
c8d33e2
Compare
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
MD hierarchy drift -- 2ab6457Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ 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 |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
[TRANSLATION-OVERRIDE] artefacts derives regeneres par Reparation des rouges mesures (tete
|
| Rouge | Cause mesuree | Geste |
|---|---|---|
No markdown content loss in changed notebooks (6 findings) |
text_en tronque a son titre sur 6 lignes du CSV (48b0b793, f0496c5b, 6a8dbe2b, 4a00c813, c61e7f51, ada98689) — base-inherited : ces lignes sont identiques sur origin/main, hash inclus. Le defaut etait structurellement invisible tant qu'aucun jumeau n'existait ; la paire rendue le surface. |
corps FR traduits, hash_en recalcule (sha256(normalize(text_en))[:16]) |
markdown-rendering guard (3 × heading_in_list) |
la traduction avait perdu les backticks de la forme protegee employee par le FR (- \# Etape N` : ...) → - # Step N: ...` rendait un H1 dans une puce |
insertion pure des backticks (colons intacts, forme anglaise preservee) |
No hand-edited translation files on feature branch |
artefacts derives touches par construction (T3/T4) | ce commentaire (marqueur en 1re ligne) + label translation-override — demande a ai-01, meme protocole que #20449 |
Sur l'outil canonique : fix_hint_headings.py reconstruit la ligne avec " : " et refuse la forme anglaise - # Step 1: X par son propre invariant de round-trip (mesure : SystemExit: INVARIANT VIOLE ... cell#12). D'ou l'insertion minimale, qui ne supprime ni ne deplace aucun caractere ; le --scan du canonique rend 0 occurrence sur le jumeau apres coup.
Mesures apres re-rendu
render_notebook.py --require-translated : 20 cellules markdown traduites, 0 repli FR, 11 cellules code copiees verbatim, 0 orphelin, 0 non-apparie.
| Organe | Avant | Apres |
|---|---|---|
detect_md_content_loss (findings) |
6 | 0 (normalized_chars 7853 → 10787) |
detect_markdown_rendering (NOUVELLE violation) |
3 | 0 |
fix_hint_headings --scan (occurrences) |
3 cellules | 0 |
check_translation_parity |
11 paires, 0 violation | 11 paires, 0 violation, 0 advisory |
pytest scripts/translation/tests/ |
— | 402 passed, 2 skipped |
check_translation_sync (TRAD_DRIFT) |
— | 0 |
Rouge declare base-inherited, hors de cette PR
Live-read freshness (committed output vs current source) est rouge sur Lean-16b-Conway-Game-of-Life-Lean.ipynb::50dcfe8c → Conway/Life/Pillars.lean (la sortie affirme « 316 lignes », le fichier en porte 358 ; plusieurs citations de lignes ont derive). Aucun des deux fichiers n'est touche par cette PR — le rouge se reproduit a l'identique dans un worktree a tete origin/main + cette seule PR, et il releve du Stop & Repair d'une autre serie (item suivi cote po-2027, #20019).
Reste declare (dette de base, non traitee ici)
MISSING_LANG ru sur 10 cellules fort-boyard : des text_ru sont deposes au CSV sans _ru.ipynb — meme classe que Barbie-Schreck / Medical-Chatbot / Recipe-Maker. Aucun jumeau ru n'est rendu (perimetre de cette PR : en). Les 6 lignes completees ici avaient aussi un text_ru tronque ; il suit la meme dette et n'est pas rendu.
MD hierarchy drift -- 615d9b3Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
1 similar comment
MD hierarchy drift -- 615d9b3Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
Path-collision (organ #13359/#13615)Cette PR #20453 (
|
|
[INFO] Label Motif retenu : le jumeau |
|
Rouge L'agregat de ce job porte sur la fast-lane, qui a evalue 43 gardes sur cette tete. Une seule y est en echec bloquant :
Les 41 autres gardes sortent Par ailleurs la jambe Texte du check-run de la garde en echec (identique sur les PRs de la lane a cette heure) : Ni ce carnet ni Tant que #20457 n'est pas sur |
MD hierarchy drift -- 7b3a9d9Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
|
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. |
|
[ADJOINT PREFLIGHT] notes (apres marqueur) : unique rouge historique a la tete 7b3a9d9 = advisory |
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVED sous myia-ai-01 à la tête 7b3a9d9224 — dossier tiers po-2027:CoursIA lu (c.6124 à 19:10Z, checks latest-wins-green, b0: clear, aucune mutation depuis). Preuve décisive lue dans le body et couverte par les jambes : rendu T4 markdown 20/20 sans repli FR, parité 11 paires / 0 violation (le jumeau fort-boyard entre dans le verrou), 402 tests passés après enregistrement du périmètre — avec le rouge attendu mesuré à tête constante avant (comportement voulu du verrou #10038), nav chain 0 NEW, 0 span perdu. Cause racine bien traitée (ids nbformat des 10 cellules md). Aucune réserve.
— ai-01, coordination
…+ jumeau _en (T3/T4) Cause racine mesuree : les 10 cellules markdown du carnet n'avaient pas d'id nbformat, donc T1 les ignorait (couverture 50 % mesuree en dry-run T4). - fort-boyard-python.ipynb : 10 ids nbformat poses (insertions pures) - translations/genai/casestudies.csv : bloc 21 -> 31 lignes (20 md + 11 code), text_en + hash_en poses sur les 10 nouvelles cellules md - fort-boyard-python_en.ipynb : rendu T4 -- markdown 20/20 traduits, code 11 copie verbatim, 0 orphelin, 0 unmatched - test_check_translation_parity.py : EXPECTED_PAIR_COUNT 10 -> 11 (rouge mesure a tete constante : 1 failed / 34 passed, avant enregistrement) See #1650, See #4208. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
… marqueurs d'exercice proteges Rouges mesures sur la PR apres le premier commit (c8d33e2) : - "No markdown content loss in changed notebooks" : 6 cellules du jumeau rendues avec leur seul titre. Cause RACINE dans le CSV -- `text_en` tronque sur 6 lignes (48b0b793, f0496c5b, 6a8dbe2b, 4a00c813, c61e7f51, ada98689), **base-inherited** : ces lignes sont identiques sur `origin/main` (mesure, hash inclus). Le defaut etait structurellement invisible tant qu'aucun jumeau n'existait ; la paire rendue le surface. Corps FR traduits, `hash_en` recalcule (sha256(normalize(text_en))[:16], convention extract_cells_to_csv). - "markdown-rendering guard" : 3 cellules d'exercice rendaient "- # Step N: ..." -- un titre ATX dans une puce. Le FR emploie la forme protegee "- `# Etape N` : ..." ; la traduction avait perdu les backticks. Insertion PURE des backticks (invariant verifie : contenu prive de backticks byte-identique), colon et forme anglaise preserves. Le fixer canonique reconstruit la ligne avec " : " et REFUSE cette forme par son propre invariant (mesure : SystemExit "INVARIANT VIOLE" cell#12) -- d'ou l'insertion minimale ; son `--scan` rend 0 occurrence sur le jumeau apres coup. Mesures apres re-rendu (`render_notebook.py --require-translated` : 20 md traduits, 0 repli FR, 11 cellules code verbatim, 0 orphelin, 0 non-apparie) : - `detect_md_content_loss` : findings 6 -> 0 - `detect_markdown_rendering` : 3 -> 0 NOUVELLE violation - `fix_hint_headings --scan` : 0 occurrence - `check_translation_parity` : 11 paires, 0 violation, 0 advisory - `pytest scripts/translation/tests/` : 402 passed, 2 skipped - `check_translation_sync` : 0 TRAD_DRIFT ; reste `MISSING_LANG ru` (10 cellules fort-boyard) = dette de base declaree au body, hors perimetre (aucun jumeau ru rendu) See #1650 -- See #4208. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
7b3a9d9 to
e36c7b7
Compare
MD hierarchy drift -- e36c7b7Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
Lecture coordinateur a la tete e36c7b780f91.
- Carnet FR : seuls des
idnbformat ajoutes aux cellules markdown, aucune source ni sortie modifiee (pas de re-execution requise). - Jumeau EN : 31 cellules alignees sur le FR, 20/20 cellules markdown traduites, cellules code identiques au FR (source, sorties,
execution_count). EXPECTED_PAIR_COUNT12 -> 13, coherent avec la paire ajoutee ;twin-parity-guardvert.- B.0 :
rc=0. Checks : toutes les jambes vertes a la tete (fold latest-wins).
-- ai-01, coordination
…ain, prose de la branche Conflit sur fort-boyard-python.ipynb : #20453 (main) et cette branche ont chacun ajoute des ids nbformat aux memes 10 cellules markdown, avec des valeurs differentes (attribution aleatoire au round-trip nbformat 4.5). Resolution : valeurs d'id de MAIN (canoniques — le pivot de traduction casestudies.csv et le jumeau EN sont ancre dessus, #20453 T3/T4) + texte des cellules de la BRANCHE (corrections de citations de cellules et purge des fillers, audit v2.1 #19451). Verification structurelle : 31 cellules, presence et valeur d'id identiques a main index par index, 0 divergence. Pivot resync dans le meme commit : extract_cells_to_csv --update -> 9 lignes rafraichies, 0 orpheline, 117 lignes d'autres notebooks preservees ; check_translation_sync rc=0. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Grain: MED/notebook-python — lane myia-po-2023:CoursIA — prev: MED/docs #20451
Contexte
Sous-grain de l'axe E de l'EPIC #4208, porté par #1650 (traduction multilingue) : rendre le jumeau anglais de
GenAI/CaseStudies/Fort-Boyard/fort-boyard-python.ipynb.Cause racine mesurée : les 10 cellules markdown du carnet n'avaient pas d'id nbformat. T1 (
extract_cells_to_csv.py) ignore les cellules sans id — le CSV ne portait donc que 21 des 31 cellules (11 code visibles, 10 md invisibles), et le dry-run T4 rendait une couverture de 50 % en repli FR.Changements
fort-boyard-python.ipynbtranslations/genai/casestudies.csvtext_en+hash_enposés sur les 10 nouvelles lignes mdfort-boyard-python_en.ipynbscripts/translation/tests/test_check_translation_parity.pyEXPECTED_PAIR_COUNT10 → 11Preuves mesurées (tête
2ab6457c6f, reprises en615d9b3aa5— voir le commentaire de reprise pour les rouges CI traités)scripts/translation/render_notebook.py --require-translated) : markdown 20/20 traduits (repli FR : 0), code 11 copié verbatim, orphelins 0, non-appariés 0.check_translation_parity.py) : 11 paires scannées, 0 violation, 0 advisory — le jumeau fort-boyard y entre.pytest scripts/translation/tests/→ 402 passed, 2 skipped. Avant l'enregistrement du périmètre, le test rendait exactement le rouge attendu (1 failed / 34 passed, found 11 declared 10) — le comportement voulu du verrou i18n notebooks : T4 renderer + CI autonome — sortir du moteur qui tourne a vide (mandat user 2026-08-08) #10038, mesuré à tête constante comme pour les entrées feat(lean,#19993): ANALYSE-09-Tuilage-Aperiodique -- pli 5 Origami, famille 155 (FR + jumeau _en) #19996 et Add(notebook-lean,#20184): ANALYSE-06 Sensibilite 2026 -- carnet FR+_en executes + Check.lean (Pli 2 #19898) #20392 du fichier.check_notebook_nav_chain.py --check→ 0 NEW finding vs baseline (352 connus, 1528 notebooks).check_inline_code_spans.py) :OK_WITH_ADVISORIES, blocking 0 — les 10 cellules écrites par cette PR portent 0 span perdu.MISSING_LANG en(le jumeau rendu résout les dépôts EN) — cf dettes ci-dessous pour le reste.Dettes pré-existantes déclarées (non imputées à cette PR)
MISSING_LANG rusur fort-boyard (10 cellules) : destext_rusont déposés au CSV sans_ru.ipynb— même classe que Barbie-Schreck / Medical-Chatbot / Recipe-Maker (dette de base du CSV). Le dépôtrupré-existant n'est pas rendu ici.SRC_DRIFTMedical-Chatbot (cellule 560d976c) etORPHAN_ROWRecipe-Maker (7a16c5fb) : pré-existants, base.Périmètre langues
enuniquement : les 10 paires existantes du dépôt sont toutesen(aucun jumeau ru/es/zh/ar rendu), et le contrat T4 copie les cellules code byte-for-byte (commentaires et littéraux imprimés restent FR, cf CLAUDE.md §E).See #1650 — See #4208.
🤖 Generated with Claude Code