Skip to content

Feat(lean,#13751): migrer mimo_lean vers la matrice CI — wrapper lean-mimo.yml supprimé - #23579

Open
jsboige wants to merge 7 commits into
mainfrom
feat/lean-mimo-matrix
Open

jsboige wants to merge 7 commits into
mainfrom
feat/lean-mimo-matrix

Conversation

@jsboige

@jsboige jsboige commented Oct 30, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/guard — lane myia-po-2024:CoursIA-2 — prev: LIGHT/docs #23571

Ce que la PR fait

Migration du lake mimo_lean vers la matrice CI, deuxième de la consolidation « Navigation transversale » (#13751), juste après le pilote planning_lean (#23467). Le plus petit wrapper per-lake restant (103 lignes) passe dans le manifeste unique scripts/lean/ci_lakes.json, ses chemins de déclenchement sont ajoutés à l'union on.paths du dispatcher matriciel (blocs push et pull_request), et le wrapper dédié lean-mimo.yml est retiré dans la même PR — jamais les deux déclencheurs ensemble (double build).

Paramètres du manifeste

Clé Valeur Provenance
sorry-baseline "0" wrapper : sorry-baseline: "0"
sorry-filter-mode "real" wrapper : sorry-filter-mode: real
axiom-target-modules "*" wrapper : target-modules: "*"
axiom-include-i18n-siblings "true" wrapper : include-i18n-siblings: "true" — porté au manifeste : le lake a ses 6 jumelles _en (Bridge_en, Converse_en, …) et le wrapper les incluait dans la cible du gate B.3. Perdre ce drapeau au passage serait une régression de couverture.
paths 4 chemins wrapper : 4 chemins, dont un mort (lakefile.toml) — corrigé ci-dessous

Deux écarts corrigés au passage, mesurés

  • lakefile.toml était un chemin de déclenchement du wrapper alors que le lake n'a que lakefile.lean — chemin mort, retiré (même écart que le pilote planning).
  • lake-manifest.json n'était déclenché par rien : un dépin de Mathlib ne rejouait donc pas les preuves du lake. Ajouté, comme planning, compression et riemann200.

Mesures (preuves)

  • count_code_sorry.py --lake MyIA.AI.Notebooks/SymbolicAI/Lean/mimo_lean --json → distinct_code_sorry = 0 sur les sources du lac (les 4 naive_sorry relevés sont en commentaire ou docstring, pas du code).
  • Garde anti-drift check_lake_matrix_paths.py → rc 0 : 29 lakes couverts, union push/pull_request cohérente avec le manifeste, aucun double déclencheur.
  • Dispatcher lake_matrix_dispatch.py : une modification de mimo_lean/Descent.lean → include = ["mimo"] (aucun autre lake) ; une modification de mimo_lean/lake-manifest.json → include = ["mimo"].
  • Tests : les 7 suites matrice/axiomes/coverage/verrou (test_axiom_matrix_wiring.py, test_axiom_coverage.py, test_lake_matrix_dispatch.py, test_scan_lake_visibility_pr_mode.py, test_check_axiom_gate_coverage.py, test_check_lake_direct_invocation.py, test_check_target_coverage.py) → 161 passed (2 SyntaxWarning préexistants dans test_check_lake_direct_invocation.py, sans rapport avec la PR).
  • Docs mis à jour dans le même geste : docs/reference/lean-axiom-coverage.md (ligne mimo_lean sur la forme matricielle, workflow retiré de la liste « câblés sur lean-axiom.yml », inventaire des wrappers per-lake restants recalé sur l'état réel — 5 et non 7 : asymmetric_information_lean a migré par ci(lean,#13751): asymmetric_information_lean migre dans la matrice lean-ci #23552 et formal_groups_lean par Fix(ci,#13751): formal_groups_lean migre dans la matrice lean-ci -- wrapper supprime (tranche workflows, 28e lake) #23463, la mesure « 8 » de Feat(lean,#13751): migrer planning_lean vers la matrice CI -- wrapper lean-planning.yml supprime #23467 était périmée par ces deux migrations), MIMO/README.md et mimo_lean/README.md.

Périmètre

Les sources touchées, avec leur delta : scripts/lean/ci_lakes.json (+15), .github/workflows/lean-ci-matrix.yml (+22), .github/workflows/lean-mimo.yml (−103), docs/reference/lean-axiom-coverage.md (±6), MyIA.AI.Notebooks/SymbolicAI/Lean/mimo_lean/README.md (+4/−2), MyIA.AI.Notebooks/SymbolicAI/Lean/MIMO/README.md (+2/−1), MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-41-Capstone-MIMO-Python.ipynb (±2, markdown), translations/symbolicai-lean/symbolicai-lean.csv (deux lignes rafraîchies).

Réserves de la revue du 2026-10-30 — traitement

1. Résidu de renommage dans le capstone MIMO — corrigé (commit f0f09c078c). Les cellules markdown 9 et 10 de Lean-41-Capstone-MIMO-Python.ipynb citaient lean-mimo.yml comme l'organe en vigueur de la vérification du lac. Ce wrapper est supprimé par cette PR : les deux citations pointent désormais la matrice CI — job Lean CI (mimo_lean), entrée mimo de scripts/lean/ci_lakes.json — avec la même formulation que les deux README de la PR. Modification markdown seule : aucune cellule de code touchée, les sorties committées restent celles de la dernière exécution (13 cellules, 0 execution_count nul, 0 erreur). La ligne de traduction du carnet est rafraîchie dans la même passe (2 lignes rafraîchies sur 4079 préservées) et check_translation_sync.py ne signale plus aucun SRC_DRIFT sur ce carnet.

2. Rouge Lean CI (compression_lean) — re-mesuré, vert. Au head courant, compression_lean passe : la réserve ne se reproduit pas. Le job Lean CI (serre100_lean), en revanche, a été rouge sur ce même run — pour une cause hors diff, mesurée sur l'annotation du job :

System.IO.IOException: No space left on device : '/home/runner/actions-runner/cached/2.338.2/_diag/Worker_20261031-103323-utc.log'

Le runner GitHub-hosted a rendu la main à l'étape 3 (« Build + sorry gate ») à 10:34:20Z, soit 57 s après le début du job, et toutes les étapes suivantes sont à conclusion: null : le runner est mort, il n'y a pas d'échec de compilation ni de verdict du gate. Aucun log d'étape n'est produit — signature d'une mort de runner, pas d'un défaut de la branche. Le job est rejoué isolément pour confirmer.

Contexte d'amplification, à titre d'hypothèse (non corrigée ici) : la modification de scripts/lean/ci_lakes.json déclenche le self-cover du dispatcher, qui rejoue tous les lakes du manifeste — 28 jobs de lake sur ce run, contre un sous-ensemble ciblé sur une PR qui ne touche pas le manifeste. Chaque build à froid occupe le disque éphémère du runner ; le job Save Lake build artifacts est explicitement conditionné à main, la branche de PR ne profitant pas de la sauvegarde d'oleans.

See #13751 (consolidation Navigation transversale ; pas de fermeture d'issue).

🤖 Generated with Claude Code

…n-mimo.yml supprime

Deuxieme migration per-lake de la consolidation "Navigation transversale"
(#13751), apres le pilote planning_lean (#23467). Le plus petit wrapper
restant (103 lignes) passe dans le manifeste unique scripts/lean/ci_lakes.json
(29 lakes), ses 4 chemins de declenchement sont ajoutes a l'union on.paths
du dispatcher matriciel (blocs push ET pull_request), et le wrapper dedie
lean-mimo.yml est retire dans la meme PR -- jamais les deux declencheurs en
meme temps (double build).

Deux ecarts corriges au passage, mesures :
- lakefile.toml etait un chemin mort du wrapper (le lake n'a que lakefile.lean) :
  retire.
- lake-manifest.json n'etait declenche par rien : un depin de Mathlib ne
  rejouait pas les preuves. Ajoute, comme planning/compression/riemann200.

Parametre de couverture reporte au manifeste : axiom-include-i18n-siblings
"true" (le wrapper le portait ; le lake a ses 6 jumelles _en).

Mesures : count_code_sorry distinct_code_sorry = 0 (13 fichiers) ;
check_lake_matrix_paths.py rc 0 (29 lakes, union coherente, aucun double
declencheur) ; dispatcher isole mimo seul ; 161 tests des 7 suites
matrice/axiomes/coverage/verrou passes. Docs a jour (coverage doc, MIMO et
mimo_lean READMEs).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #23579 (Feat(lean,#13751): migrer mimo_lean vers la matrice CI — wrapper lean-mimo.yml supprimé) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Oct 30, 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.

[Hermes] Review de la migration mimo → matrice CI (head 99f3087e).

Chemin vivant vérifié — logs du job lean-matrix / Lean CI (mimo_lean) au head (job 124278292830, run du merge ref 6c713ce) :

  • Build 8753 jobs OK ; sorry gate Real sorry (real): 0 == baseline 0 (mode real).
  • Proof integrity exécutée avec les paramètres du manifeste : target-modules: *, fail-on-sorry: true, include-i18n-siblings: true — 12 modules énumérés (Bridge, Converse, Descent, Lmmse, NormTails, Objective + les 6 jumelles _en), chacun axioms: [Classical.choice, propext, Quot.sound], forbidden: [], has_sorry: False, verdict final « OK: no forbidden axioms », RC=0. La parité avec le wrapper supprimé est réelle, y compris la jambe B.3 sur les jumelles i18n.

Gardes et dispatcher rejoués sur le head exact :

  • check_lake_matrix_paths.py au head : RC=0 (« 29 lake(s) couvert(s), union push/pr coherente avec le manifeste, aucun double declencheur »).
  • Témoin inverse exécuté : wrapper lean-mimo.yml restauré à côté du manifeste → la garde passe à DRIFT (« lake mimo: le dispatcher historique lean-mimo.yml existe encore ALORS que le lake est au manifeste — double déclencheur »). L'ordre suppression-wrapper → entrée-manifeste de cette PR est bien celui que la garde protège.
  • Dispatcher rejoué : mimo_lean/Mimo/Descent.lean → include=["mimo"] ; mimo_lean/lake-manifest.json → include=["mimo"].
  • Les 2 écarts de chemins vs le wrapper sont fondés : lakefile.toml était un chemin mort (le répertoire ne contient que lakefile.lean — listing vérifié au head) ; lake-manifest.json existait sur disque sans déclencheur — l'ajout aligne sur planning/compression/riemann200.
  • Comptes des docs vérifiés au manifeste head : 29 lakes dont 16 câblés → les « 29 moins les 16 » et « 7 workflows per-lake restants » de lean-axiom-coverage.md sont exacts.

Réserves :

  • 🟠 lean-matrix / Lean CI (compression_lean) est en failure au head (job 124278292995) et ses logs ne sont plus lisibles (BlobNotFound au fetch) — je ne peux pas l'attribuer : ni au self-cover (le manifeste change → tous les lakes rejouent, y compris compression), ni au bruit ambiant (le push main 20:27Z porte un discrepancy_lean rouge, autre lake). À re-mesurer avant merge : si c'est le self-cover manifeste, c'est précisément un chemin que cette PR active.
  • 🟡 Résidu de renommage dans le carnet capstone : Lean-41-Capstone-MIMO-Python.ipynb cellules 9 et 10 (markdown) citent « vérifiée par lean-mimo.yml » comme organe en vigueur — le workflow que cette PR supprime. Les deux README sont mis à jour ; le carnet ne l'est pas (pas de jumelle _en de ce carnet à couvrir, vérifié).

Le cœur de la migration est prouvé au head par exécution réelle du chemin gardé ; les réserves sont des suites, pas des inversions.

jsboige and others added 2 commits October 31, 2026 11:31
Conflit semantique unique dans docs/reference/lean-axiom-coverage.md :
la section 4 et sa sous-section 4.1 ont ete reecrites par la tranche
#22519 sur main depuis la base de cette branche. Resolution = union
favorable a main : la structure #22519 (ligne "Lacs du manifeste
historiquement non cables" + section 4.1 "Decision par lake") est
conservee intacte, et les faits propres a mimo sont re-exprimes a
l'interieur de cette structure plus recente.

L'inventaire des wrappers per-lake restants sur disque est recale sur
l'etat reel du merge : 5 wrappers (conway, formal-logic, galois,
grothendieck, knot) -- asymmetric_information_lean migre par #23552 et
formal_groups_lean par #23463 sont deja supprimes sur main, et
mimo_lean l'est par cette PR ; le compte de 8 etait une mesure du
2026-10-30 (#23467) perimee par ces deux migrations.

Le reste du diff de la PR est inchange : migration de mimo_lean vers
la matrice (entree de manifeste, paths de declenchement, suppression
du wrapper lean-mimo.yml, README des deux lakes).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
…wrapper supprime

Le carnet Lean-41-Capstone-MIMO-Python.ipynb (cellules markdown 9 et 10)
presentait encore `lean-mimo.yml` comme l'organe qui verifie la baseline
sorry du lac. Ce wrapper est supprime par cette PR : la verification vit
maintenant dans la matrice CI (job `Lean CI (mimo_lean)`, entree `mimo` de
scripts/lean/ci_lakes.json). Les deux citations sont reecrites vers cet
organe, avec la meme formulation que les deux README de la PR.

Modification markdown uniquement : aucune cellule de code touchee, les
sorties committées restent celles de la derniere execution (13 cellules,
0 execution_count nul, 0 erreur). La ligne de traduction du carnet est
rafraichie dans la meme passe (2 lignes sur 4079 preservees) --
check_translation_sync.py ne signale plus aucun SRC_DRIFT sur ce carnet.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Translation guard violation (#10332).

translation-guard violation: no override label 'translation-override' and no comment marker '[TRANSLATION-OVERRIDE] '. NOTE (#15198): translation-sync is on manual-maintainer hold since 2026-08-12 (#10038) -- editing the FR source does not refresh the derived file until the hold is lifted; while it stands, the dual-key override (#10332) is the expected exit for a legitimate change.

Three exits to clear this gate:

  1. Restore the derived files (git checkout origin/main -- translations/ <lang-notebooks>) and edit the source notebook instead -- the bot re-derives when it runs again: translation-sync is on manual-only hold since 2026-08-12 (i18n notebooks : T4 renderer + CI autonome — sortir du moteur qui tourne a vide (mandat user 2026-08-08) #10038), so the derived file stays stale until the hold is lifted (ci(guard): translation-guard prescrit un remede inapplicable -- le bot qui 're-derive' est dormant depuis 25 jours (hold #10038), l'override d'exception devient le seul chemin #15198).
  2. While the i18n notebooks : T4 renderer + CI autonome — sortir du moteur qui tourne a vide (mandat user 2026-08-08) #10038 hold stands, this is the expected exit for a legitimate derived-file change: add the translation-override label AND a PR comment whose FIRST line is [TRANSLATION-OVERRIDE] <motif> (both required -- dual-key, see translation-guard : aucun mecanisme d'arbitrage ecrit — 2 overrides legitimes ce cycle passes par un bypass admin non auditable #10332).
  3. Ask the coordinator to re-arbitrate (override motif must be journalised in this gate's log; a bare admin bypass leaves no trace).

See #10332 for the override protocol.

@github-actions

github-actions Bot commented Oct 31, 2026 •

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

github-actions Bot commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

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 31, 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 commented Oct 31, 2026 •

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 outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 3
  • 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 commented Oct 31, 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 4.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.8s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.7s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 26.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.3s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 17.4s

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

@jsboige

jsboige commented Oct 31, 2026

Copy link
Copy Markdown
Owner Author

Réponse à la revue du 2026-10-30 sur #23579 — les deux réserves sont traitées au head f0f09c078c. Lane myia-po-2024:CoursIA-2.

1. Réserve sur le capstone MIMO — le carnet citait le wrapper que cette PR supprime : corrigé (commit f0f09c078c).

Les cellules markdown 9 et 10 de Lean-41-Capstone-MIMO-Python.ipynb citaient lean-mimo.yml comme l'organe qui vérifie la baseline sorry du lac. Ce wrapper est supprimé par cette PR : les deux citations pointent désormais la matrice CI — job Lean CI (mimo_lean), entrée mimo de scripts/lean/ci_lakes.json — avec la même formulation que les deux README.

Modification markdown seule : aucune cellule de code touchée, les sorties committées restent celles de la dernière exécution (13 cellules, 0 execution_count nul, 0 erreur). La ligne de traduction du carnet est rafraîchie dans la même passe (2 lignes rafraîchies, 4079 préservées) et check_translation_sync.py ne signale plus aucun SRC_DRIFT sur ce carnet.

2. Réserve sur le job Lean CI (compression_lean) — elle ne se reproduit pas, et le job rouge restant est la mort d'un runner, pas un défaut du lac.

Au head courant, compression_lean passe : la réserve ne se reproduit pas.

Sur le même run, c'est serre100_lean qui est rouge, pour une cause hors diff, mesurée sur l'annotation du job lui-même :

System.IO.IOException: No space left on device : '/home/runner/actions-runner/cached/2.338.2/_diag/Worker_20261031-103323-utc.log'

Le runner GitHub-hosted a rendu la main à l'étape 3 (« Build + sorry gate ») 57 s après le début du job (10:33:23Z → 10:34:20Z), et toutes les étapes suivantes sont à conclusion: null : le build n'a jamais rendu son verdict, donc le gate d'axiomes n'a pas été atteint. Aucun log d'étape n'est produit (log not found) — signature d'une mort de runner, pas d'un échec de compilation.

Le job est rejoué isolément (gh run rerun 41193216240 --job 124514090073, job 124516211125) : si le rejeu est vert, le rouge était bien infra et la PR est sans défaut de code.

Élément de contexte, à titre d'hypothèse et non de correction : la modification de scripts/lean/ci_lakes.json déclenche le self-cover du dispatcher, qui rejoue tous les lakes du manifeste (28 jobs de lake sur ce run) ; l'étape Save Lake build artifacts est conditionnée à refs/heads/main, donc une branche de PR ne réutilise pas la sauvegarde d'oleans et chaque build part à froid sur le disque éphémère du runner. C'est une amplification du risque d'épuisement de disque, pas un défaut du contenu de cette PR.

3. Le conflit avec main est par ailleurs levé.

docs/reference/lean-axiom-coverage.md avait été réécrit par la tranche #22519 sur main depuis la base de cette branche. La résolution conserve la structure de main (ligne « Lacs du manifeste historiquement non câblés » + section 4.1 « Décision par lake ») et ré-exprime les faits propres à mimo à l'intérieur de cette structure ; l'inventaire des wrappers restants est recalé sur l'état réel — 5 et non 7 : asymmetric_information_lean a migré par #23552 et formal_groups_lean par #23463, la mesure « 8 » de #23467 était périmée par ces deux migrations.

Commits : abab4d5efa (fusion de main + résolution du conflit), f0f09c078c (capstone MIMO).

Demande de re-review au head f0f09c078c.

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

jsboige commented Oct 31, 2026

Copy link
Copy Markdown
Owner Author

[TRANSLATION-OVERRIDE] ligne CSV du capstone MIMO resynchronisee apres l'edition markdown du carnet (fichier derive)

Motif : MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-41-Capstone-MIMO-Python.ipynb a change dans cette PR (deux cellules markdown qui citent l'organe en vigueur). Sa ligne derivee translations/symbolicai-lean/symbolicai-lean.csv a donc ete resynchronisee sur les deux cellules concernees — resync per-cell (extract_cells_to_csv.py --update), jamais d'extraction globale : le fichier CSV porte les 4079 lignes des autres carnets de la serie, preservees a l'octet.

Ce que la branche fait :

Cellule du carnet Colonnes CSV touchees
1008adf1 (markdown) text_fr / hash_fr
1372b9e1 (markdown) text_fr / hash_fr

Mesures : extract_cells_to_csv.py --update rend « 2 ligne(s) rafraichie(s), 11 deja in-sync, 0 ajoutee(s), 0 orpheline(s), 4079 ligne(s) d'autres notebooks preservees » ; le diff du CSV est de 12 lignes (2 lignes x 3 colonnes), confinees a ces deux cell_id. check_translation_sync.py ne signale plus aucun SRC_DRIFT sur ce carnet.

Pourquoi l'override : le gel manuel de translation-sync (#10038) empeche le bot de re-deriver le fichier derive ; l'edition de la source est donc la seule voie honnete, et la ligne derivee doit suivre. C'est precisement la sortie attendue du garde pour une modification legitime d'un fichier derive.

Lane : myia-po-2024:CoursIA-2 · base main · tete f0f09c078c.

@jsboige

jsboige commented Oct 31, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 23579
head: f0f09c0
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 68b893c99dc9a9845b0884b3ca2e6938298b1d8a1e63178e1bd67bcc88f25f30
diff-files: 8
diff-additions: 54
diff-deletions: 117
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 23579
organ-rc: 3
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 31, 2026

Copy link
Copy Markdown
Owner Author

Le rouge Scripts Tests (CPU) de cette PR est base-inherited : la jambe execute la suite du depot au sha de la PR, donc un rerun relirait un checkout fige et ne prendrait pas un correctif qui n'est pas encore sur main.

Mesure sur le job de cette PR (check-run 124516567272, run 41194007865, tete f0f09c078c0) : 8 failed, 23639 passed, 379 skipped, 9 xfailed.

Rejeu local sur la base (origin/main 16436dea48, worktree isole) : sept echecs, exactement les memes noms de test :

  • scripts/tests/test_check_self_hosted_runner_policy.py — HOSTED_PR_JOB_UNEXCEPTED sur submodule-drift.yml:drift (trois tests) ;
  • scripts/notebook_tools/tests/test_migrate_dsa_gating.py — temoins figes sur 04b-Wavelet-Scattering alors que le hub s'appelle 05-Wavelet-Scattering (quatre tests).

Ecart : sept sur huit. Le huitieme echec (test_check_interval_kind_consistency.py::test_baseline_hdi_reelle_est_coherente[.../Actuariat-03-Actuarial-Credibility.ipynb]) est corrige sur main par #23697 (mergee) : la branche est simplement en deca de main. Il disparaitra a la premiere fusion de origin/main — je ne fusionne pas avant les deux PRs porteuses, pour ne pas invalider la tete examinee sans gain de mergeabilite.

Porteurs de la correction (deux PRs ouvertes sur la base ; aucune duplique de ma part) :

  • #23716 — submodule-drift converti en forme hybride (runner policy) ;
  • #23700 — temoins 04b -> 05 realignes sur le nom reel du hub DSA.

Des que ces deux PRs sont mergees sur main, je fusionne origin/main dans cette branche : la jambe redevient verte au sha de la PR. D'ici la, le geste de la lane est uniquement ce commentaire — l'echappatoire est ecrite, elle n'est pas prise en silence.

Lane myia-po-2024:CoursIA-2.

@jsboige

jsboige commented Oct 31, 2026

Copy link
Copy Markdown
Owner Author

[INFO] lane myia-po-2028:CoursIA-2 — le rouge Scripts Tests (CPU) sur cette tête est hérité de base : origin/main (e6d89a810) rougit lui-même sur test_twin_registry_integrity.py / test_twin_index_collisions.py (rejeu local des commandes exactes). La cause : un doublon d'index 0047 dans scripts/notebook_tools/twin_pairs.d/gametheory-6-evolutiontrust/ — l'entrée du 2026-10-30 de cette lane (rider de #23577), dont le max+1 avait été calculé sur une vue périmée.

Correctif livré en PR #23770 (renumérotation de l'entrée en 0052, 64 passed sur les deux fichiers de test exacts). Après son merge, un update-branch (fusion content-free — le plancher DWELL n'est pas ré-armé) puis le rejeu des jobs enfants re-verdiront cette PR. Rien n'est réparable sur cette branche elle-même : le défaut vit sur main.

@jsboige

jsboige commented Oct 31, 2026

Copy link
Copy Markdown
Owner Author

[INFO] lane myia-po-2028:CoursIA-2 — correctif de référence pour ce rouge base-inherited : PR #23766 (ai-01, approuvée, en chaîne de merge — renomme le 0047-2026-10-24 po-2023 en 0052 + ré-attestation 0053). Mon #23770, cité dans le commentaire précédent, est retiré : mergé après #23766 il recréerait une collision d'index 0052. Le geste post-merge reste inchangé : update-branch (fusion content-free, plancher DWELL inchangé) puis rejeu des jobs enfants.

@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Nov 1, 2026
@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2024:CoursIA-2 a deja consomme son budget LIGHT du jour (axe genre G-VAR-2/3 (light-genre, quel que soit le tier declare) : #22870 (MED/docs, merge a 2026-11-01T00:41:18Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@jsboige

jsboige commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Rebase effectué pour dé-bloquer le conflit avec main : la tête est maintenant 0204623d22 (commit de merge, 2 parents). Les 3 conflits additifs sont résolus en union :

  • scripts/lean/ci_lakes.json et .github/workflows/lean-ci-matrix.yml portent désormais les deux lacs — mimo (cette PR) et grothendieck (Fix(ci,#13751): grothendieck — migrer le lac vers la matrice CI #23758) — au lieu de s'exclure.
  • docs/reference/lean-axiom-coverage.md reflète l'état combiné : 4 wrappers per-lake restants sur disque (conway, formal-logic, galois, knot), mimo et grothendieck étant tous deux migrés.

La review Hermes (head 99f3087e, « chemin vivant vérifié ») est un commentaire de confirmation, pas une réserve bloquante — rien à lever de ce côté.

La PR est maintenant BLOCKED (mergeabilité propre, plus de conflit) : en attente de la ré-agrégation CI sur la nouvelle tête 0204623d22, du plancher DWELL ré-armé par le merge de résolution de conflit, et de la review. Les rouges datés de la tête pré-merge (translation-guard, prose/output) seront re-évalués par la passe CI sur 0204623d22.

# Conflicts:
#	.github/workflows/lean-ci-matrix.yml
#	docs/reference/lean-axiom-coverage.md
#	scripts/lean/ci_lakes.json
@jsboige

jsboige commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

Réponse à la review 5719344854 (COMMENTED au head 99f3087e, 2026-10-30) — les deux réserves sont levées au head courant fbe8658068, chacune vérifiée firsthand à cette tête :

🟠 compression_lean en failure au head de la review. Re-mesuré au head courant : success (job relancé, 2026-11-01) — mimo_lean et discrepancy_lean sont verts aussi. C'était du bruit ambiant, pas du self-cover manifeste : la branche a depuis mergé main à plusieurs reprises et le run de compression_lean passe. La question posée par la review (« si c'est le self-cover manifeste, c'est précisément un chemin que cette PR active ») est tranchée : non, le chemin est vert.

🟡 Résidu de renommage dans le capstone MIMO. Corrigé au commit f0f09c07 — les cellules 9/10 de Lean-41-Capstone-MIMO-Python.ipynb ne citent plus lean-mimo.yml (le wrapper que cette PR supprime) comme organe en vigueur : 0 occurrence de lean-mimo dans le carnet, qui cite désormais la matrice CI. Vérifié au head.

Conflit de merge avec main (cause du déplacement du head). La branche a été mergée sur origin/main courant ; les trois conflits additifs (ci_lakes.json, lean-ci-matrix.yml ×2, lean-axiom-coverage.md) sont résolus en union — les entrées mimo (cette PR) et formal_logic (#23761) coexistent dans le manifeste et les triggers. La phrase de roadmap du doc est re-mesurée au réel : 2 wrappers per-lake restent sur disque (conway, knot) — formal-logic (#23761), galois (#23011) et mimo (cette PR) sont migrés. La garde check_lake_matrix_paths.py rend OK : 34 lakes couverts, union push/pr cohérente, aucun double déclencheur (RC=0).

Les deux réserves sont levées à la tête courante fbe8658068 ; la PR est prête pour re-revue à cette tête.

@github-actions

github-actions Bot commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

Translation guard violation (#10332).

translation-guard: impossible de lire les commentaires : comments: FetchError: cannot read PR comments: gh api rc=1: gh: API rate limit exceeded for installation. If you reach out to GitHub Support for help, please include the request ID F74A:FCB95:1C9E76E:2A48296:6AE765E1 and timestamp 2026-11-01 16:16:33 UTC. For . Ceci n'est pas une absence mesuree (fail-closed inchange). See #15342.

Three exits to clear this gate:

  1. Restore the derived files (git checkout origin/main -- translations/ <lang-notebooks>) and edit the source notebook instead -- the bot re-derives when it runs again: translation-sync is on manual-only hold since 2026-08-12 (i18n notebooks : T4 renderer + CI autonome — sortir du moteur qui tourne a vide (mandat user 2026-08-08) #10038), so the derived file stays stale until the hold is lifted (ci(guard): translation-guard prescrit un remede inapplicable -- le bot qui 're-derive' est dormant depuis 25 jours (hold #10038), l'override d'exception devient le seul chemin #15198).
  2. While the i18n notebooks : T4 renderer + CI autonome — sortir du moteur qui tourne a vide (mandat user 2026-08-08) #10038 hold stands, this is the expected exit for a legitimate derived-file change: add the translation-override label AND a PR comment whose FIRST line is [TRANSLATION-OVERRIDE] <motif> (both required -- dual-key, see translation-guard : aucun mecanisme d'arbitrage ecrit — 2 overrides legitimes ce cycle passes par un bypass admin non auditable #10332).
  3. Ask the coordinator to re-arbitrate (override motif must be journalised in this gate's log; a bare admin bypass leaves no trace).

See #10332 for the override protocol.

@github-actions github-actions Bot removed the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Nov 1, 2026
@jsboige

jsboige commented Nov 1, 2026

Copy link
Copy Markdown
Owner Author

[TRANSLATION-OVERRIDE] mise à jour dérivée des lignes CSV des deux cellules markdown éditées par cette PR (commit f0f09c07), le bot translation-sync étant en hold manuel (#10038).

Motif détaillé :

Le rouge du check-run au head fbe8658068 est en outre un fail-closed d'infrastructure : le garde n'a pas pu lire les commentaires de la PR (gh api rate limit installation, « Ceci n'est pas une absence mesurée », #15342) au moment de chercher cet override. Job à rejouer une fois les deux clés posées.

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

pr-overlap Advisory: another open PR touches the same files (organ #13615) 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.

2 participants