Skip to content

Renum(probas,#12933): tranche A -- zero-pad Infer x10 avec accompagnements - #20246

Open
jsboige wants to merge 10 commits into
mainfrom
renum/12933-probas-tranche-a
Open

jsboige wants to merge 10 commits into
mainfrom
renum/12933-probas-tranche-a

Conversation

@jsboige

@jsboige jsboige commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-dotnet -- lane myia-po-2024:CoursIA-2 -- prev: DEEP/lean #20229

Tranche A de l'EPIC #12933 -- migration zero-pad Infer x10

Execute le mapping PARITY-INVENTORY.md §5, tranche A uniquement (precedent : renum(search,14545) tranche B #15147). Les tranches B (titre paire 2b), C (suffixe -CSharp de 08b) et D (statut extension unilatérale 1b) restent des arbitrages coordinateur, hors de cette PR.

Renommages (10, git mv, contenu zero-pad des notebooks inchange)

Infer-1-Setup -> Infer-01-Setup · Infer-1b -> Infer-01b · Infer-2 -> Infer-02 · Infer-2b -> Infer-02b · Infer-3 -> Infer-03 · Infer-4 -> Infer-04 · Infer-5 -> Infer-05 · Infer-7 -> Infer-07 · Infer-8 -> Infer-08 · Infer-9 -> Infer-09. Le numero 6 reste le trou symetrique conserve avec PyMC ; les numeros 08b et 10-19 etaient deja conformes.

Accompagnements (checklist du mapping)

  • Navlinks + prose de reference : sweep mecanique stem-remap sur l'arbre (md/ipynb/qmd), exclusions : catalogue genere (byte-identique a main), registre twin, baseline nav-chain, PARITY-INVENTORY (note dediee).
  • zero_pad_series.json : Infer deplace de would_red_on_activation vers adopted (critere (a) 11 noms zero-pades, (b) zero fichier a un chiffre sur l'arbre recursif).
  • Miroirs du garde zero-pad : chemin MyIA.AI.Notebooks/Probas/Infer/** ajoute aux deux miroirs declencheurs (series-naming-gate.yml paths: push + garde fast-lane de fast_lane_registry.py) ; constante d'admission du test de parite passee de 8 a 9 series.
  • pedagogy_density_baseline.json : remap des 9 cles des notebooks renommes vers les nouveaux stems, valeurs conservees a l'octet pres (9 insertions / 9 suppressions, cles Infer uniquement).
  • Registre twin : champ csharp: mis a jour et numbering_exception retire sur les 9 paires probas-* (les deux cotes sont desormais paddes) ; historique date known_differences conserve intact (il cite les anciens noms, c'est l'histoire).
  • baseline_nb_nav_chain.json : entree orphan_entry Infer-1b recallee sur le nouveau chemin (changement de path seul, finding structurel inchange).
  • PARITY-INVENTORY.md : bloc > Etat mesure au 2026-10-10 -- tranche A livree, B/C/D non couvertes, tables conservees.
  • Fixture test : paragraph_wall_md.md porte le nouveau stem dans son paragraphe-mur (pytest 21 passed).

Gardes locaux (worktree, pre-push)

  • check_series_zero_pad.py : exit 0 -- 9 series declarees, 0 violation, Infer conforme.
  • check_notebook_navlinks.py : 0 lien casse sur 1505 notebooks.
  • check_notebook_nav_chain.py : exit 0 vs baseline recallee.
  • check_prose_quantitative_claims.py : OK.
  • pytest scripts/tests/test_check_series_zero_pad.py : 29 passed au head final -- le rouge CI Scripts Tests (CPU) (3 failed : constante 8, miroirs Infer absents des deux surfaces) reproduit localement puis repare au commit e47b0c9772.
  • Twin parity : check_twin_parity.py --family "Probas/Infer.NET-PyMC" --update --yes-all-pairs --by myia-po-2024:CoursIA-2 -- 16 paires rebaselinees (9 renommees + 7 paires 10-18 dont les navlinks referencent les nouveaux stems ; les 3 sans reference -- 12/13/19 -- refusees en no-op, design-gate twin registry: le singleton last_audit est un aimant a collision, et les sha ne devraient pas etre ecrits a la main #9399 critere 2). Re-check scoped : 0 DRIFT, 0 MISSING. Derive residuelle hors famille (Search-03, 3 DRIFT) : mesuree presente sur main propre -- base-inherited, hors perimetre de cette PR.
  • Rebaselines hors-famille induites par le sweep (cellules markdown des jumeaux touchees par le stem-remap) : gametheory-14-differentialgames/0009, sl-10-activeautomatalearning/0007, tweety-11-causal/0015 -- toutes 2026-10-10, attribution --by myia-po-2024:CoursIA-2.

Notebooks -- C.2

Aucune cellule code modifiee : le sweep ne touche que des cellules markdown (navlinks) et de la prose hors notebooks -- pas de re-execution due. Les execution_count/outputs des cellules code sont inchanges byte-a-byte.

Part of #12933

Co-Authored-By: Claude Haiku 4.5 (1M context) noreply@anthropic.com

jsboige and others added 2 commits October 10, 2026 12:00
…ments

Renommages git mv (Infer-1..9 -> 01..09, 1b -> 01b, 2b -> 02b ; trou 6
conservé, 08b/10-19 déjà conformes) + sweep mécanique des surfaces de
référence (navlinks inter-carnets, prose docs/slides, fixtures) ;
zero_pad_series.json déclare Infer (guard exit 0) ; numbering_exception
retiré des 9 paires twin ; baseline nav-chain recalée ; note d'état datée
dans PARITY-INVENTORY.md. Tranches B/C/D exclues (arbitrages coordinateur).

Part of #12933

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…s tranche A

Les navlinks markdown (cotes Infer renommes ET PyMC/DecInfer referencants)
deplacent les content SHA : attestation --update --by myia-po-2024:CoursIA-2
sur les 16 paires derivees (9 renommees + 7 paires 10-18 navlink-editees) ;
les 3 paires sans reference (12/13/19) refusees en no-op (#9399 critere 2).
Deres base-inherited (Search-03, 3 DRIFT sur main propre) : hors perimetre.

Part of #12933

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@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 github-actions Bot added the markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. label Oct 10, 2026
@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

github-actions Bot commented Oct 10, 2026 •

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 the paragraph-length Paragraph > 2000 chars (wall-of-text, #15405). Resorb before merge. label Oct 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

github-actions Bot commented Oct 10, 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 8.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.6s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.6s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.0s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 16.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 11.4s

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

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 10, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 27
  • Code cells validated: 385
  • 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)

… slides counter, pedagogy baseline keys

- Tweety README: Infer-05 link .html -> .ipynb (readme-ipynb-links-guard,
  nouvelle violation HTML_404 introduite par le sweep)
- slides/01-introduction: compteur "21 notebooks" retiré de la ligne
  modifiée par le sweep (prose-counts, règle : supprimer la mesure,
  garder le prédicat)
- pedagogy_density_baseline.json: 9 clés Infer déplacées vers les
  nouveaux stems (orphan guard #13815/#16122 : 0 ORPHAN_KEY,
  0 LOST_KEY, RC=0 avec --base ; Infer-01-Setup hors baseline par
  design -- kind setup exclu de la population)

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

Rouge CI classe #20174 (slot pollution) -- jambe math-render, tete a32274914c :

  • run 38044829034, job math-render, runner_name : myia-po-2024-linux-persist-1 (lu sur /actions/runs/38044829034/jobs)
  • signature : ModuleNotFoundError: No module named 'scripts.tests.test_check_math_render' -- arbre runner ampute, pas un defaut de contenu (le module est present a la tete).
  • Per arbitrage fix(ci): le volume _work epingle d'un slot persistant derive -- 9 363 fichiers sales font passer le checkout de 2 s a 12 s #20174 (c.6092735664) : pas de rejeu (le rejeu a reproduit le rouge sur le meme slot, c.6091629916 -- un rejeu ne fait que consommer un creneau). Remede = retrait du label coursia-ephemeral des conteneurs persistants, du ressort de la lane proprietaire myia-po-2024:CoursIA.

Rouges REELS de la meme tete, corriges au commit 39a3c8c290 :

  • readme-ipynb-links-guard : lien .html Tweety -> Infer-05 (nouvelle violation HTML_404 introduite par le sweep) -- passe en .ipynb.
  • prose-counts-guard : compteur "21 notebooks" sur une ligne modifiee par le sweep dans slides/01-introduction/slides.md -- mesure retiree, predicat conserve.
  • Pedagogy density baseline orphan guard : 9 cles Infer orphelines dans pedagogy_density_baseline.json -- cles deplacees vers les nouveaux stems, verifie localement 0 ORPHAN_KEY, 0 LOST_KEY avec --base origin/main (RC=0). Infer-01-Setup n'a jamais ete dans le baseline (kind setup exclu de la population, by design).

@github-actions github-actions Bot removed the markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. label Oct 10, 2026
…paires twin

Round 2 des rouges CI de la tranche A :
- prose-counts --strict : "19 notebooks" en ligne ajoutee du schema
  d'arbre README remplace par "socle numerote" (le compte vit au
  catalogue, issue #9377)
- twin parity : les 3 paires DRIFT_INTRODUCED (GameTheory-14, SL-10,
  Tweety-11) sont des effets du sweep de renommage Infer (16 lignes
  modifiees, toutes des stems) -- rebaseline chirurgicale --update
  --pair --by, jamais edit YAML a la main

See #12933

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added the markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. label Oct 10, 2026
@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

Addendum round 2 - tete 39a3c8c290 : classification des jambes rouges restantes

Reparations livrees a la tete 1db9828d32 :

  • prose-counts --strict : compteur "19 notebooks" en ligne ajoutee du schema d'arbre du README Infer -- retire (le compte vit au catalogue, Les donnees quantitatives appartiennent au CI, pas a la prose — supprimer les compteurs manuels (44 notebooks + ~30 README) #9377). Reproduction locale avec l'argv exact du registre fast-lane (--strict) : RC=0 sur la nouvelle tete.
  • Twin parity, les trois paires DRIFT (GameTheory-14 DifferentialGames, SL-10 ActiveAutomataLearning, Tweety-11 Causal) : effet direct du sweep de renommage Infer -- les stems renommes apparaissent dans les sources des twins hors Probas. Rebaseline chirurgicale --update --pair --by myia-po-2024:CoursIA-2 (jamais d'edit YAML a la main).

Classe #20174 (arbre runner ampute, pas un defaut de contenu) -- pas de rejeu (arbitrage #20174), rouge documente au dossier avec le runner :

  • Companion coverage : runner myia-po-2024-linux-persist-3
  • Exec-sequence : runner myia-po-2024-linux-persist-1
  • Golden-set : runner myia-po-2024-linux-persist-1

Remede cote proprietaire (lane myia-po-2024:CoursIA) : retrait du label coursia-ephemeral des conteneurs persistants.

See #20174, See #12933

@jsboige

jsboige commented Oct 11, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2027:CoursIA
pr: 20246
head: a023e15
complete: true
body: read
comments-reviewed: 15
reviews-reviewed: 3
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 937d084833ff92db0be4b05b3c63cdc7f2b95c5292fe74b9d99020cff613a33c
diff-files: 107
diff-additions: 494
diff-deletions: 369
checks: BLOCKED
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20246
organ-rc: 3
[/ADJOINT PREFLIGHT]

Re-stamp demande (mission c2149/c2150/c2151) : la tete a023e15 est confirmee inchangee, le conflit Probas/Infer est resolu (main conserve, choix documente cid 6108799168), reviewDecision APPROVED et axe B.0 clair a cette tete. Le dossier precedent (e47b0c9, po-2027:CoursIA-2) est perime par trois surfaces : nouvelle tete, commentaires ai-01 14:13Z (precision series-naming-gate.yml, ne change pas son verdict) et resolution de conflit.

Pourquoi BLOCKED et pas READY : les six jambes en echec sont des runs DE la tete actuelle (11:51-12:06Z), pas des stale d'une tete anterieure — Always-on guards 11:58:39Z, PR gate 11:51:07Z, Twin parity audit 11:51:15Z, Scripts Tests 12:03:11Z, Audit README->ipynb 12:06:38Z, check-links 12:06:43Z. Elles contredisent toute attestation latest-wins-green ; la reparation (liens README Infer renommes, collision twin 0018, jambes associees) revient a la lane porteuse myia-po-2024:CoursIA-2, pas au lecteur. Aucune de ces jambes n'est un minuteur DWELL : le precedent dossier fut un DWELL seul, celui-ci porte du contenu a corriger. Le merge sous garde harnais exigee par la mission reste une decision coordinateur une fois les jambes reparées.

…r, twin, translation

Repare les defauts de la tranche A laisses par le renommage zero-pad, mesures
sur la tete de cette branche (`a023e15100`) :

* `MyIA.AI.Notebooks/Probas/Infer/README.md:820` -- lien casse
  `Infer-5-Causal-Inference.ipynb` corrige en `Infer-05-...`. Le delta des
  gardes README->.ipynb passe a 0 nouvelle violation (1 corrigee en prime).
* `MyIA.AI.Notebooks/Probas/Infer/scripts/test_notebooks.py` -- 9 references
  de la liste `NOTEBOOKS_CORE` mises au nom padded. La liste
  `NOTEBOOKS_DECISION` (autre serie, Probas/DecisionTheory/Infer) est intacte
  par construction.
* `_quarto.yml` -- regenerer par `scripts/regen_quarto_render.py`. Le garde
  `--check` passe (535 READMEs / 225 docs / 1522 carnets). La regeneration
  a aussi tire 3 ajouts recents (Crypto-Momentum-TopN/README.md,
  15615-gradation-fournee-a.md, QC-Py-42-Alpha-Mining-Evolution) qui
  manquaient au catalogue du renommage : ce sont des fichiers presents dans
  le worktree, le geste prescrit par l'organe est "regenerer".
* `translations/probas-infer/probas_infer.csv` -- 490 lignes re-keyees en
  colonne 1 (byte-precis, regex ancree `^<chemin ancien>,` avec garde
  croisee contre le parsing csv, 0 newline embarque touche). Avant :
  596 anomalies (548 ORPHAN_ROW, 47 SRC_DRIFT, 1 PIVOT). Apres : 196
  (134 SRC_DRIFT, 58 ORPHAN_ROW pre-existants = Infer-6-Debugging 55 +
  Infer-19-Survival 3, 1 PIVOT, + 3 ORPHAN cellules supprimees
  pre-existantes sur Infer-08-TrueSkill). La marge 400 cas resolus est
  mesuree ; le reliquat est date et pre-existant, a traiter en T1
  (regeneration) hors de cette PR.
* `scripts/notebook_tools/twin_pairs.d/probas-18-change-point/` --
  attestation `0010-2026-10-10-myia-po-2024-CoursIA-2.yaml` (doublon
  d'index, deja sur la branche) retiree, `0013-2026-10-12-...` ajoutee par
  `check_twin_parity.py --update --pair "Probas-18 Change-Point"`. La
  numerotation 0001-0013 est consecutive, NUMBERING-DRIFT leve.

Exclus du perimetre (mesures, rapportes en follow-up) :
* `translations/probas-pymc.csv` (11), `probas-decinfer.csv` (4) :
  occurrences uniquement dans `text_<lang>`, 0 en cle colonne 1.
* `MyIA.AI.Notebooks/Probas/PyMC/PROBAS_INFER_AUDIT.csv` (4) : cle = nom
  relatif dans un snapshot de mesure date, enregistre comme dataset
  (`docs/notebook-metadata/DATASET_REGISTRY.md`). Une mise a jour du
  snapshot est un travail de regeneration, pas un collateral de renommage.
* `MyIA.AI.Notebooks/Probas/PARITY-INVENTORY.md` (1) : ligne d'inventaire
  qui decrit l'etat tranche par tranche -- documentation, pas consommateur.
* `scripts/notebook_tools/tests/test_check_link_label_agreement.py`,
  `scripts/tests/test_check_companion_coverage.py` : fixtures unitaires
  calibrees, le defaut de renommage n'est pas leur test.
* `tests/test_batch_reexecute.py` : commentaire d'historique (incident
  2026-09-03 sur Infer-7-Skills-IRT), une reecriture falsifierait le
  compte-rendu.

Verification :
* `regen_quarto_render.py --check` : rc=0
* `check_series_zero_pad.py` : Infer OK, 0 violation
* `diff_readme_link_violations.py` (base vs head) : NOUVELLES=0,
  CORRIGEES=1, rc=0
* `check_translation_sync.py translations/probas-infer` (non-bloquant) :
  avant 596, apres 196, 0 cle ancienne restante

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@jsboige

jsboige commented Oct 12, 2026

Copy link
Copy Markdown
Owner Author

Reparation des collateraux tranche A (#12933, renum/12933-probas-tranche-a)

Tete : b08d270fe4 (poussee le 2026-10-12, base a023e15100). Les six jambes
rouges se reduisaient a trois causes ; chacune a un geste de reparation et une
mesure.

Mesures par surface

Surface Avant Apres Source de verite
MyIA.AI.Notebooks/Probas/Infer/README.md lien :820 BROKEN Infer-5-Causal-Inference.ipynb lien OK Infer-05-Causal-Inference.ipynb dump base/head + delta
Probas/Infer/scripts/test_notebooks.py NOTEBOOKS_CORE 9 chemins non-paddes 9 chemins paddes ; NOTEBOOKS_DECISION (autre serie) intact lecture directe
_quarto.yml (artefact genere) ::error:: render list is stale --check rc=0, 535 READMEs / 225 docs / 1522 carnets regen_quarto_render.py --check
translations/probas-infer/probas_infer.csv cle colonne 1 490 lignes sur ancien chemin 0 cle ancienne restante parsing csv + regex ancree ^<chemin ancien>,
Meme CSV -- anomalies checker (non-bloquant) 596 (548 ORPHAN_ROW + 47 SRC_DRIFT + 1 PIVOT) 196 (134 SRC_DRIFT + 61 ORPHAN + 1 PIVOT) check_translation_sync.py --check
twin_pairs.d/probas-18-change-point/ doublon d'index 0010-10-10 + 0012 max 0013-2026-10-12-myia-po-2024-CoursIA-2 ajoute, 0001-0013 consecutif git ls + check_twin_parity --update

Decomposition de la marge ORPHAN_ROW (mesuree, source : c249_tr_post.json)

  • 490 lignes re-keyees : collateral direct du renommage (8 carnets de la
    tranche A). Le temoin discriminants etait : re-keyer les 10 anciens
    chemins aurait du faire passer ORPHAN_ROW de 548 a 58 (les 2 carnets
    pre-existants Infer-6-Debugging 55 et Infer-19-Survival-Analysis 3).
  • +3 ORPHAN sur Infer-08-TrueSkill : sous-classe distincte, trois
    cell_id absents du carnet source (8704a102/03/04, cellules
    supprimees). Drift de contenu pre-existant, devenu visible des que la cle
    resolve. Pas un collateral de renommage.
  • +87 SRC_DRIFT demasques : 490 lignes nouvellement evaluables, 87
    montrent un src_hash en divergence. Pre-existant, conforme au pattern
    documente (cf. MEMORY.md : fix path-only demasque le drift).

L'acceptance n'est PAS anomaly_count: 0 (la regeneration T1 n'est pas le
sujet de cette PR). Le reliquat 196 est date et catalogue, a traiter en T1
hors renommage.

Hors perimetre (mesures, follow-up)

  • translations/probas-pymc.csv (11) et probas-decinfer.csv (4) :
    occurrences dans text_<lang>, 0 en cle colonne 1 -- prose traduite,
    pas cle fonctionnelle.
  • MyIA.AI.Notebooks/Probas/PyMC/PROBAS_INFER_AUDIT.csv (4) : cle = nom
    relatif dans un snapshot de mesure date, enregistre comme dataset
    (docs/notebook-metadata/DATASET_REGISTRY.md). Mise a jour = job de
    regeneration, hors renommage.
  • MyIA.AI.Notebooks/Probas/PARITY-INVENTORY.md:66 : ligne d'inventaire
    tranche-par-tranche, documentation, pas consommateur.
  • scripts/notebook_tools/tests/test_check_link_label_agreement.py et
    scripts/tests/test_check_companion_coverage.py : fixtures unitaires
    calibrees.
  • tests/test_batch_reexecute.py:18 : commentaire d'historique
    (incident 2026-09-03 sur Infer-7-Skills-IRT), une reecriture
    falsifierait le compte-rendu.

Verification

  • regen_quarto_render.py --check : rc=0
  • check_series_zero_pad.py : Infer OK, 0 violation
  • diff_readme_link_violations.py (base vs head) : NOUVELLES=0,
    CORRIGEES=1, rc=0
  • check_twin_parity.py --update --pair "Probas-18 Change-Point" :
    0013 ecrit, numerotation consecutive
  • check_translation_sync.py translations/probas-infer --check :
    596 -> 196, 0 cle ancienne

CI

Le push b08d270fe4 re-evalue la totalite des jambes a la nouvelle tete.
Les deux jambes infra (Scripts Tests (CPU), Always-on guards -- 16 organes) etaient vertes sur main et rouges sur l'ancienne tete de la
branche (execution, pas contenu) ; elles sont attendues vertes ici. Le
gate derive (PR gate) etait alimente par Twin parity audit (#8057),
qui doit maintenant passer (NUMBERING-DRIFT leve, 0013 a la bonne tete).

Levee

La levee de la reserve (s'il en reste une apres le passage CI vert)
appartient au coordinateur : sous le login partage, une phrase de levee
signee par la lane worker est indiscernable d'une auto-levee.

@jsboige jsboige added the translation-override Dual-key override for translation-guard (#10332): label + [TRANSLATION-OVERRIDE] comment required label Oct 12, 2026
@jsboige

jsboige commented Oct 12, 2026

Copy link
Copy Markdown
Owner Author

[TRANSLATION-OVERRIDE] re-key byte-precis colonne 1 du CSV collateral au renommage tranche A (#12933) -- 490 lignes, regex ancre debut de ligne, garde falsifiable total == csv_keyed verifiee

Motif

Le commit b08d270fe4 (tete de la PR) a re-keye 490 lignes du fichier
translations/probas-infer/probas_infer.csv : la cle de la colonne 1
(MyIA.AI.Notebooks/Probas/Infer/Infer-N-*) a ete mise a jour pour suivre
le renommage tranche A des carnets (10 chemins Infer-1 ... Infer-9
paddes en Infer-01 ... Infer-09).

Pourquoi c'est un re-key legitime, pas un hand-edit de contenu

  • Substitution byte-precise, ancree en debut de ligne : regex
    ^MyIA.AI.Notebooks/Probas/Infer/Infer-5-Causal-Inference\.ipynb,
    --> ^MyIA.AI.Notebooks/Probas/Infer/Infer-05-Causal-Inference\.ipynb,
    ; aucun caractere du contenu des colonnes text_<lang> n'a ete
    touche (les newlines embarques et le quoting RFC 4180 sont preserves).
  • Garde falsifiable : total == csv_keyed (nombre de matches regex
    == nombre de lignes dont la colonne 1 porte un ancien nom, mesuree
    par csv.reader). Un ecart eut signale une occurrence prise dans un
    newline embarque d'un champ texte -> on n'ecrit pas.
  • Verification post-ecriture : 0 cle ancienne restante, 490 lignes
    re-keyees, check_translation_sync 596 -> 196 (les 87 SRC_DRIFT
    demasques etaient pre-existants, observes apres que la cle resolve ;
    ils relevent de la regeneration T1, pas du renommage).
  • Aucun re-render de notebook n'est affecte par le re-key de cle (les
    *_<lang>.ipynb ne sont pas regeneres tant que la hold
    translation-sync tient, voir i18n notebooks : T4 renderer + CI autonome — sortir du moteur qui tourne a vide (mandat user 2026-08-08) #10038 -- le CSV sert de source de
    verite pour la regeneration a venir).

Mécanisme de l'override (#10332)

  • Label : translation-override (posee sur la PR)
  • Marker commentaire : [TRANSLATION-OVERRIDE] <motif> (cette ligne)
  • Les deux sont requis (dual-key). Voir le module
    scripts/ci/translation_override_required.py pour le contrat exact.

Reference

This was referenced Oct 12, 2026

This branch has not been deployed

No deployments
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) markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. paragraph-length Paragraph > 2000 chars (wall-of-text, #15405). Resorb before merge. translation-override Dual-key override for translation-guard (#10332): label + [TRANSLATION-OVERRIDE] comment required

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants