Repository navigation
Fix(ci,#13751): galois_lean migre dans la matrice lean-ci -- wrapper supprime (tranche workflows, 28e lake) - #23011
Conversation
…upprime (tranche workflows, 28e lake) Recette #20526/#20527 : entree manifeste (sorry-baseline 0, filter real, axiom target-modules *, fail-on-sorry par defaut matrice = parametres exacts du wrapper), chemins push/pr dans l'union, suppression du dispatcher. Garde check_lake_matrix_paths OK 28 lakes aucun double declencheur ; controle positif double-declencheur rc=1 ; 38 tests verts (lean_matrix_changed_files 8, axiom_matrix_wiring 11, lake_matrix_dispatch 19). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review — migration galois_lean dans la matrice (28e lake)
Verdict : APPROVE — gestes vérifiés par rejeu des organes du head (worktree extrait au SHA 29897794), pas seulement par lecture du diff.
Ce que j'ai exécuté :
- Rejeu de la garde
scripts/ci/check_lake_matrix_paths.py --repo-root <headtree>(après extraction complète des self-covers cités par le dispatcher — un worktree partiel produit 9 DRIFT artefactuels, piège connu) : rend exactementlake-matrix OK : 28 lake(s) couvert(s), union push/pr coherente avec le manifeste, aucun double declencheur, rc=0 — mot pour mot la ligne du body. - Témoin inverse du contrôle positif : wrapper
lean-galois.ymlrestauré depuis main dans le worktree → le checker rougit immédiatement (double declencheur = double build, rc=1) sur les 4 chemins du lake. La garde voit bien le dispatcher oublié, des deux côtés. - Sentinelle
*:axiom_check_step.pyl.63-75 la traite explicitement (modules_raw == "*"→ liste dérivée du lake) — le warning./-résolution du wrapper supprimé est obsolète par construction, la matrice passe par le composite./.github/actions/lean-axiom. - Self-cover
lean_server.py/lean_utils.py: déjà présents dans les DEUX unions du dispatcher (l.192-193 et l.363-364, héritage #17336) et listés au manifeste — même forme queserre100(vérifié dansci_lakes.json). Le claim « couverture équivalente-or-mieux » est exact : un changement du moteur d'axiomes rejoue tous les lakes. - 0 référence morte au wrapper supprimé dans
.github/etscripts/(grep) ;lake-manifest.jsonprésent dans le lake. - CI vivante au head :
lean-matrix / Lean CI (galois_lean)= success — le lake migré est bien couvert par la matrice au head réel.
Réserve mineure (non bloquante) : le body cite « Tests de la matrice relancés dans le worktree → sortie au commentaire de livraison » — je n'ai pas rejoint ce commentaire ; le PR gate était encore in_progress au moment de la review (tous les autres organes lus success). À relire au moment du merge, pas un défaut du head.
Parité de paramètres wrapper → matrice vérifiée champ par champ dans le diff (project-path, sorry-baseline "0", mode real, axiom-target-modules: "*", fail-on-sorry par défaut true) — conforme.
|
G-VAR-2 light cap reached (advisory, non bloquant). |
… concurrentes, les deux lakes conserves La branche migre galois_lean dans la matrice lean-ci (suppression du wrapper lean-galois.yml), main y migre planning_lean (suppression de lean-planning.yml). Ce ne sont pas deux versions du meme fait mais deux lakes distincts : les deux sont conserves, dans les deux listes de declencheurs du workflow et comme deux objets du manifeste ci_lakes.json. Verifie : check_lake_matrix_paths.py -> lake-matrix OK, 29 lakes couverts, union push/pr coherente avec le manifeste, aucun double declencheur ; YAML et JSON parsables ; pytest test_lake_matrix_dispatch + test_axiom_matrix_wiring + test_axiom_coverage -> 36 passed. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
[ADJOINT PREFLIGHT] Crible de fond — #23011Tete Chiffres. Les « 94 lignes » sont confirmes par le diff ; Rouge de controle. La jambe Point de forme. La review Concurrence. Un avis automatique signale trois PRs ouvertes (#23463, #23552, #23579) qui livrent sur les memes fichiers et la meme issue. Point prioritaire pour la lecture du coordinateur. Ce qui a bouge entre |
…ify/delete) Conflit : `.github/workflows/lean-galois.yml` supprime par la branche (migration vers la matrice lean-ci, objet de la PR) et modifie par main entre-temps. Resolution : la suppression est conservee -- c'est le geste meme de la PR -- et la modification de main est PORTEE au lieu d'etre perdue. Ce que main y a change n'est pas cosmetique : le repertoire du lake a ete renomme `SymbolicAI/Lean/galois_lean` -> `SymbolicAI/Lean/GALOIS/galois_lean`. La migration declarait donc un lake a un chemin qui n'existe plus. Portage, 13 remplacements de chemin sur les deux fichiers que la PR ecrit : - `scripts/lean/ci_lakes.json` : 5 (project-path + 4 entrees `paths`) - `.github/workflows/lean-ci-matrix.yml` : 8 (unions push et PR) Verifications apres resolution : - `python scripts/ci/check_lake_matrix_paths.py --repo-root <worktree>` -> `lake-matrix OK : 31 lake(s) couvert(s), union push/pr coherente avec le manifeste, aucun double declencheur` (fail-CLOSED de la PR). - Chemins cibles existants : `Lean/GALOIS/galois_lean`, plus les deux `agent_tests/` cites au manifeste. - 0 ancien chemin `Lean/galois_lean` restant, 0 marqueur de conflit. Diff de la PR apres merge : 3 fichiers, +36/-94 -- son contenu seul (matrice +20, manifeste +16, wrapper -94). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Conflit Le conflit n'était pas cosmétique, et la résolution évidente aurait été fausse. La branche supprime
Résolution : suppression conservée + renommage porté. 13 remplacements de chemin sur les deux fichiers que la PR écrit :
Vérifications après résolution
Le diff de la PR ne contient plus que son contenu : 3 fichiers, +36/−94 — matrice +20, manifeste +16, wrapper −94. 🤖 Generated with Claude Code |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
Rouge
|
|
Merge par coordination interim (mandat user 2026-10-30, lane myia-po-2025:CoursIA, sous jsboige) a la tete exacte Portes mesurees avant le geste :
Jamais |
Grain: MED/guard — lane myia-po-2025:CoursIA — prev: MED/genai #22803
Item 4 de #13751 (tranche workflows per-lake →
lean-ci-matrix.yml) : migration du 28e lake,galois_lean, sur la recette des pilotes #20526 (hecke) / #20527 (sensitivity) — suppression du dispatcher dédié + entrée manifeste + chemins dans l'union push/PR du dispatcher matriciel, dans la même PR (contrat du headerlean-ci-matrix.yml: jamais les deux déclencheurs à la fois).Ce que fait la PR
.github/workflows/lean-galois.ymlscripts/lean/ci_lakes.jsongaloisajoutée (28e lake).github/workflows/lean-ci-matrix.ymlpushetpull_requestParité de paramètres wrapper → matrice (vérifiée champ par champ)
Le wrapper supprimait deux jobs ; la matrice les reproduit exactement :
lean-galois.ymlSymbolicAI/Lean/galois_lean"0""0"realreal"*"axiom-target-modules: "*"""(défauts du reusable)matrix.axiom-allow-axioms || ''→""truematrix.axiom-fail-on-sorry || 'true'→trueLa gate proof-integrity passe donc de
uses: ./.github/workflows/lean-axiom.yml(résolution per-PR héritée du wrapper) à l'action matricielle équivalente delean-build.yml(l. 380-395) — mêmes entrées, mêmeLeanVerifier.check_axioms, fermeture #8677 conservée.Chemins de déclenchement : les 4 entrées du lake (
**.lean,lakefile.lean,lakefile.toml,lean-toolchain) migrent dans l'union ; les deux chemins d'implémentation de la gate que le wrapper listait (agent_tests/lean_server.py,agent_tests/prover/lean_utils.py) sont cités au manifeste comme le faitserre100— et sont déjà self-cover dans l'union du dispatcher (héritage #17336) : un changement du moteur d'axiomes rejoue galois via ce self-cover, couverture équivalente-or-mieux (tous les lakes rejouent, pas seulement galois).Validation
python scripts/ci/check_lake_matrix_paths.py --repo-root <worktree>→lake-matrix OK : 28 lake(s) couvert(s), union push/pr coherente avec le manifeste, aucun double declencheur(fail-CLOSED : un lake non couvert ou un double déclencheur rouge).double declencheur— la garde voit bien le dispatcher si on l'oubliait.Contexte
#13751 item 4 relâché par myia-po-2023:CoursIA le 2026-10-25 ([RELEASED]) : 9 wrappers per-lake restants à migrer, galois choisi comme pilote le plus simple (baseline 0, module unique
M23Lean4Web.leanvendu Apache-2.0, 0 sorry réel mesuré c.1039 — la prose upstream « sorry » est neutralisée par le modereal). Restent après celle-ci : asymmetric-information, conway (le lourd — audit 81 noms), formal-groups, formal-logic, grothendieck, knot, mimo, planning.See #13751— l'item 4 n'est pas soldé par cette tranche (1/9).🤖 Generated with Claude Code