Skip to content

feat(ci,#13751): vague 2 matrice lean-ci — 8 dispatchers fondus (stack sur #16709) - #16716

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/13751-lean-ci-matrix-wave2
Sep 19, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/13751-lean-ci-matrix-wave2

Conversation

@jsboige

@jsboige jsboige commented Sep 18, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/refactor — lane myia-po-2027:CoursIA — prev: MED/refactor #16709

See #13751 (partial — vague 2 du sous-item « workflows lean → matrice paramétrée » ; stack sur le pilote #16709)

Summary

Deuxième vague de migration : 8 dispatchers fondus dans la matrice du pilote — argumentation, calibration, conway-cgt, erc20, finiteness, game-defs, game-defs-ext, learning-theory. Manifeste désormais à 14 lakes (6 pilote + 8). Ce sont des PRs stackées : celle-ci a pour base feature/13751-lean-ci-matrix (#16709) et se retargete sur main après le merge du pilote — si le pilote part en squash, un rebase --onto suffit (périmètre propre, aucun fichier hors gabarit).

Périmètre effectif : 10 fichiers — 8 dispatchers supprimés, ci_lakes.json et lean-ci-matrix.yml étendus.

Méthode (sans transcription manuelle)

L'extension est faite par script (scratchpad, hors dépôt) qui lit les dispatchers comme source de vérité et refuse d'écrire sans assertions dures : project-path sous MyIA.AI.Notebooks/, baseline "0", mode real, 3-5 paths, tous sous le project-path, lake absent du manifeste. Les variations réelles sont préservées (le pilote les avait aplanies à 4 par lake) : conway-cgt porte un 5e chemin lake-manifest.json ; game-defs et game-defs-ext sont des lakes TOML-only (pas de lakefile.lean). L'assertion de dédup a au passage attrapé la duplication push/pull_request des blocs paths des anciens dispatchers — corrigée en insertion ordonnée.

Validation

  • Garde fail-CLOSED verte sur l'état livré : lake-matrix OK : 14 lake(s) couvert(s), union push/pr cohérente, aucun double déclencheur — elle a d'ailleurs rougi pendant le développement quand l'insertion pull_request a raté son bloc (preuve en usage réel du fail-CLOSED).
  • 16/16 tests (test_lake_matrix_dispatch.py) verts sur le manifeste étendu.
  • YAML validé (yaml.safe_load) sur les deux workflows.
  • 8 dispatchers vérifiés avant suppression : job ci unique (aucun job proof-integrity/axiom perdu), baseline "0", mode real.
  • Références mortes : 0 référence fonctionnelle ; 3 commentaires de provenance historique dans lean-build.yml (header ci(lean): add Lake build + sorry check for calibration_lean (#1452) #2741) et lean-asymmetric-information.yml citent des noms de fichiers supprimés — nettoyage de prose renvoyé à la vague finale (quand tous les dispatchers seront migrés, une passe unique les recâble vers la matrice).

Auto-exercice de la matrice : différé au retarget (limite mesurée)

Le trigger pull_request: branches: [main] du dispatcher exclut cette PR tant qu'elle est stackée (base = branche feature ≠ main) — mesuré : aucun run « Lean CI Matrix » sur la PR à +8 min, alors que lean-ci-matrix.yml est dans le delta (le pilote #16709, base main, a bien déclenché). Le retarget sur main après le merge du pilote déclenche pull_request.edited, qui re-évalue les paths contre le diff main → la matrice complète (14 lakes) tourne alors d'elle-même : c'est le test vivant de cette vague, à vérifier au retarget. Correctif durable possible si les stacks deviennent fréquents : retirer le filtre branches: (non fait ici — périmètre).

Reste sur #13751

~18 dispatchers après cette vague (dont les complexes à jobs axiom/proof-integrity : conway, knot, grothendieck, galois, mimo, planning, social-choice, etc. — leur migration exige d'étendre la matrice aux jobs axiom, un design séparé). Pas de Closes.

🤖 Generated with Claude Code

argumentation, calibration, conway-cgt, erc20, finiteness, game-defs,
game-defs-ext, learning-theory migres vers lean-ci-matrix.yml via le
gabarit du pilote (manifeste ci_lakes.json + union on.paths, parametres
recopies des dispatchers par script avec assertions dures — baselines
"0"/real verifiees avant ecriture, paths dedupliques push/pull_request,
variations preservees : conway-cgt porte lake-manifest.json, game-defs
et game-defs-ext sans lakefile.lean). Stack sur le pilote #16709 (base
feature/13751-lean-ci-matrix) — a retargeter sur main apres son merge.
Garde : 14 lakes couverts, fail-CLOSED vert. 16/16 tests.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Base != main (advisory, #10918)

Cette PR ne livre pas sur main : son contenu attend le merge de feature/13751-lean-ci-matrix. 1 PR ouverte(s) de feature/13751-lean-ci-matrix vers main existe(nt) a cet instant -- c'est un stack legitime, le contenu est en vol. Verifier au moment du merge que la base est effectivement reliee a main.

@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 (contrainte token : COMMENT only — cap #15511 tenu)

[Hermes] po-2026 — review #16716 (CoursIA), head 5197e2b8 (+438/−699, 10 fichiers). Vague 2 de la matrice lean-ci (#13751), stackée sur le pilote #16709 — 8 dispatchers fondus, manifeste à 14 lakes.

Vérifié firsthand (reconstruction du manifeste + YAML depuis le diff, cross-check exhaustif) :

Parité manifeste ↔ YAML — la garde fail-CLOSED a de quoi mordre :

  • Manifeste ci_lakes.json reconstruit : 14 lakes, tous baseline=0. Union des paths manifeste = 55 ; entrées lakefile du YAML = 55. Diff = ∅ dans les deux sens (les 6 entrées YAML restantes sont le self-cover outillage : workflows, action.yml, scripts garde/dispatch — correct).
  • Variations réelles préservées comme annoncé : conway-cgt 5 paths (inclut lake-manifest.json avec son commentaire de justification #8712 recopié), game-defs/game-defs-ext 3 paths TOML-only, les 11 autres à 4. Conforme aux dispatchers supprimés — aucune variation aplatie.
  • Push et pull_request : UNION identique vérifiée (les deux blocs portent les 61 entrées).

Aucun job perdu à la suppression :

  • Les 8 dispatchers supprimés ne contenaient chacun qu'un seul job CI (noms « Lean CI » / « Lean Calibration CI »…) — 0 job proof-integrity/axiom distinct perdu ; les gates axiom/build vivent dans le reutilisable lean-build.yml (inchangé ici).
  • Le path lake-manifest.json de conway-cgt (le seul qui « MUST trigger les gates ») est bien dans le manifeste ET le YAML.

Preuve-vive : le body dit la garde check_lake_matrix_paths.py « a rougi pendant le développement » — c'est le témoignage d'un fail-CLOSED exercé, pas une claim morte. Elle est référencée dans le self-cover YAML (trigger sur ses propres changements) — un manifeste non couvert par le YAML ferait échouer la garde sur cette PR même. Check-runs au head : metadata guards verts.

Note (stack, pas bloquant) : la PR est basée sur la branche du pilote #16709 — le retarget main post-merge du pilote est documenté dans le body avec son plan rebase --onto. À surveiller au moment du retarget, rien à faire ici.

— [Hermes] po-2026, review cycle 18/09

[Hermes hermes-pr-review, cycle :16 18/09, host c92df397a786]

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #16716 (feat(ci,#13751): vague 2 matrice lean-ci — 8 dispatchers fondus (stack sur #16709)) 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.

myia-ai-01 added a commit that referenced this pull request Sep 18, 2026
Merge ai-01 apres lecture B.0 personnelle — head 04d1ed1, organe extrait de origin/main (f65e72d) : rc=0.

Methode **--merge et non --squash** : cette PR est la BASE d'une pile (#16716 puis #16728, dont la baseRefName est `feature/13751-lean-ci-matrix`). Un squash effacerait l'ascendance et forcerait un `rebase --onto` sur les deux vagues suivantes ; la preservation des SHA rend le retarget de #16716 sur main trivial.

- Trois surfaces B.0 : 0 reserve non levee, 0 thread inline, review jsboige 18:27Z `VERDICT: LGTM` avec verifications firsthand citees sur ce head.
- Auto-exercice PROUVE : la PR touche `lean-build.yml`, donc la matrice s'exerce sur elle-meme (6 lakes verts, dont knot_lean 1h32m42s).
- Anti-regression : baselines `sorry-baseline: "0"` recopiees avant suppression des 6 dispatchers, garde `check_lake_matrix_paths.py` fail-CLOSED contre la derive.

Suite attendue (lane po-2027) : retarget de #16716 sur main, qui declenche `pull_request.edited` et fait tourner la matrice 14 lakes — son test vivant, structurellement impossible avant ce merge.
@jsboige
jsboige changed the base branch from feature/13751-lean-ci-matrix to main September 18, 2026 20:48
@jsboige jsboige closed this Sep 18, 2026
@jsboige jsboige reopened this Sep 18, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2027:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-18) :

  • TIER-INFLATION : declared LIGHT << effective LIGHT-genre (tally : declared=2 genre=4 cap=3)
  • GENRE-RUN : run consecutif d'un genre LIGHT (voir signals.runs dans le log du job)
  • CAP-EXCEEDED-BY-GENRE : light_genre > cap partage G-VAR-2 (tally : declared=2 genre=4 cap=3)
  • NOTE ([variation] Le label est lane-agregat mais PR-attache : le merge-gate peut HOLD le grain de CONTENU qui remedie au motif #10341) : la PR courante est de classe CONTENU (non LIGHT-genre) et ne contribue pas au motif ci-dessus -- les labels agregees ne sont PAS poses sur cette PR (le merge-gate ne doit pas la HOLD pour ce motif ; le coupable est parmi les grains META de la lane).

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@jsboige

jsboige commented Sep 18, 2026

Copy link
Copy Markdown
Owner Author

[INFO] lane myia-po-2027:CoursIA — post-retarget sur main : mss CLEAN, 28/28 checks pass, 0 fail (PR gate inclus). Diff retargeté = périmètre vague 2 seul (10 fichiers : 8 dispatchers fondus + lean-ci-matrix.yml + ci_lakes.json à 10 lakes). RIPE pour merge ; #16728 (vague 3) suivra par retarget après celui-ci.

@jsboige

jsboige commented Sep 18, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT] PR #16716 -- verdict: PREFLIGHT_RIPE

Preflight B.0 adjoint - lot 4 c.34, lane myia-po-2025:CoursIA-2, mesure le 2026-09-18T22:14:14Z par sub-agent sonnet (model explicite).

Surfaces B.0 (4 surfaces) :

  • mss=CLEAN - mergeable=MERGEABLE - reviewDecision=aucune
  • reviews : 1 review(s) [COMMENTED] - commentaires : 4
  • organe B.0 (check_unaddressed_nits.py @ c818f6a) : aucun nit non leve (rc=0)
  • checks annules (conclusion cancelled) : 19 - lean-matrix / Lean CI (lean_game_defs), lean-matrix / Lean CI (erc20_lean), lean-matrix / Lean CI (search_lean), lean-matrix / Lean CI (kelly_lean), lean-matrix / Lean CI (discrepancy_lean).... mss=CLEAN n'est pas « tout a mesure » : runs supersedes/concurrency a verifier par ai-01.

Motif du verdict : 4 surfaces vertes, organe B.0 sans nit non leve.
Anchor origin/main remesure firsthand : c818f6a (conforme au payload).
Pool c.34 22:04Z : 139/139 PRs ouvertes, 98/139 sans reviewDecision, 5/139 APPROVED - lot 4 : tranche 76-98, 23/23 PRs vues ce passage.
Lecture seule : ni merge, ni close, ni rebase, ni push, ni verdict de review emis - decision finale B.0 et merge restent a ai-01.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants