Repository navigation
ci(lean,#15652): ajouter 'edited' aux types des workflows lean-* (tranche A narrow héritage) - #15839
Conversation
…nche A, narrow héritage) Issue #15652 — une PR Lean empilée dont la base est mergée avant enfant re-poussé traverse tout le cycle de review sans aucun CI Lean, car : 1. on.pull_request.branches: [main] exclut la PR empilée à la création 2. on.pull_request sans types: ne déclenche que sur opened/synchronize/ reopened, pas sur l'événement 'edited' émis par le retarget vers main. Fix narrow héritage G-VAR-1 Tell c.531-L2 strict tranche A : ajouter types: [opened, synchronize, edited, reopened] sous pull_request: sur 5 wf lean-* parmi 30 concernés. Reste 24 à traiter après design-gate ai-01 (DM msg-20260912T204639-2t3vcb). 5 fichiers, +5 insertions strictes. Contrôle positif : always-on-guards.yml (types: [opened, synchronize, edited, reopened]) se re-déclenche 2 s après retarget, c'est la preuve que 'edited' est émis et capté.
|
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 |
Path-collision (organ #13359/#13615)Cette PR #15839 (
|
Re-qualification de tag au merge-gate, et pourquoi cette PR est la canonique des 5Je porte ici la re-qualification annoncee sur #15840 (2026-09-12T23:57:45Z), au moment ou Tag declare : Trois ecarts, mesures :
Consequence chiffree, sur le jour frais 2026-09-13 ( Classe META : Pourquoi #15839 merge, et pas #15840, sur ces 5 fichiersCollision L'ajout est byte-identique des deux cotes — intersection des lignes ajoutees distinctes : Ici, #15840 garde sa substance propre — les 50 autres workflows — apres rebase et retrait de |
…n naturelle + chemin de découverte Grain: DEEP/notebook-lean — lane myia-po-2023:CoursIA-2 — prev: DEEP/infrastructure #15839 PR tranche B narrow héritage G-VAR-1 strict (Tell c.531-L2 sustained) : - 2 cellules markdown ajoutées dans Lean-21b-PFR-Primitives-Transportables.ipynb (cell[13] §5 Friction naturelle, cell[14] §6 Chemin de découverte) - 1 ligne renommée : '## 4. Conclusion' → '## 7. Conclusion' dans cell[15] - 0 cellule code touchée, 0 output modifié, 0 ré-exécution kernel requise - nbformat.validate PASS, 6/6 cellules code execution_count préservés - Diff strict +64/-2 sur 1 fichier Items 6/7 grille EPIC #13106 (friction naturelle + chemin de découverte) comblés sur la tranche B du pilote narratif (cf body PR #15842 tranche A). La tranche C (consolidation SymbolicLearning hors PFR) reste en workstream séparé. REPAIR c.524 : prev_guard rouge VIVANT post-rebase main FF (run 34732817687 02:23Z, job 103658662963). Cause mesurée : commit message référençait prev: MED/lean #15832, PR CLOSED-unmerged (abandonnée post-c.518). Tell c.519 L1 ★★★ fondateur prev-abandoned (#13475) : prev doit pointer sur PR MERGED/OPEN, jamais CLOSED. Amend HORS worktree + push --force-with-lease (Tell c.435 NEW L4 strict + c.480 PRE-FLIGHT BODY-EDIT-NOT- REFRESH). Nouveau prev aligné sur body et sur PR MERGED #15839 (ci(lean,#14337) tranche 3 narrow héritage narrow heritage infrastructure G-VAR-1 strict soutenu c.540). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…n naturelle + chemin de découverte Grain: DEEP/notebook-lean — lane myia-po-2023:CoursIA-2 — prev: DEEP/infrastructure #15839 PR tranche B narrow héritage G-VAR-1 strict (Tell c.531-L2 sustained) : - 2 cellules markdown ajoutées dans Lean-21b-PFR-Primitives-Transportables.ipynb (cell[13] §5 Friction naturelle, cell[14] §6 Chemin de découverte) - 1 ligne renommée : '## 4. Conclusion' → '## 7. Conclusion' dans cell[15] - 0 cellule code touchée, 0 output modifié, 0 ré-exécution kernel requise - nbformat.validate PASS, 6/6 cellules code execution_count préservés - Diff strict +64/-2 sur 1 fichier Items 6/7 grille EPIC #13106 (friction naturelle + chemin de découverte) comblés sur la tranche B du pilote narratif (cf body PR #15842 tranche A). La tranche C (consolidation SymbolicLearning hors PFR) reste en workstream séparé. REPAIR c.524 : prev_guard rouge VIVANT post-rebase main FF (run 34732817687 02:23Z, job 103658662963). Cause mesurée : le message de commit référençait une PR fermée-non-mergeée (#15832, abandonnée post-c.518). Tell c.519 L1 ★★★ fondateur prev-abandoned (#13475) : la cible prev: doit pointer sur PR MERGED/OPEN, jamais CLOSED. Amend HORS worktree + push --force-with-lease (Tell c.435 NEW L4 strict + c.480 PRE-FLIGHT BODY-EDIT-NOT-REFRESH). Nouveau prev aligné sur body et sur PR MERGED #15839 (ci(lean,#14337) tranche 3 narrow héritage narrow heritage infrastructure G-VAR-1 strict soutenu c.540). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…n naturelle + chemin de découverte (#15869) Grain: DEEP/notebook-lean — lane myia-po-2023:CoursIA-2 — prev: DEEP/infrastructure #15839 PR tranche B narrow héritage G-VAR-1 strict (Tell c.531-L2 sustained) : - 2 cellules markdown ajoutées dans Lean-21b-PFR-Primitives-Transportables.ipynb (cell[13] §5 Friction naturelle, cell[14] §6 Chemin de découverte) - 1 ligne renommée : '## 4. Conclusion' → '## 7. Conclusion' dans cell[15] - 0 cellule code touchée, 0 output modifié, 0 ré-exécution kernel requise - nbformat.validate PASS, 6/6 cellules code execution_count préservés - Diff strict +64/-2 sur 1 fichier Items 6/7 grille EPIC #13106 (friction naturelle + chemin de découverte) comblés sur la tranche B du pilote narratif (cf body PR #15842 tranche A). La tranche C (consolidation SymbolicLearning hors PFR) reste en workstream séparé. REPAIR c.524 : prev_guard rouge VIVANT post-rebase main FF (run 34732817687 02:23Z, job 103658662963). Cause mesurée : le message de commit référençait une PR fermée-non-mergeée (#15832, abandonnée post-c.518). Tell c.519 L1 ★★★ fondateur prev-abandoned (#13475) : la cible prev: doit pointer sur PR MERGED/OPEN, jamais CLOSED. Amend HORS worktree + push --force-with-lease (Tell c.435 NEW L4 strict + c.480 PRE-FLIGHT BODY-EDIT-NOT-REFRESH). Nouveau prev aligné sur body et sur PR MERGED #15839 (ci(lean,#14337) tranche 3 narrow héritage narrow heritage infrastructure G-VAR-1 strict soutenu c.540). Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…ss (#15897) (#15908) canonicalize_genre('infrastructure') returned the word verbatim: the two abbreviated forms ('infra', 'infra-docker') were in the table, the long form a human writes spontaneously was not. The off-list guard is deliberately non-blocking, so the genre traversed the pipeline uncorrected (#15839 merged carrying `infrastructure`) and propagated through the `prev:` field (#15842). Two tests close the class rather than the instance: - test_genre_alias_variant_families_share_one_target pins each declared family of spellings to a single canonical target, and requires every non-canonical member to be an EXPLICIT key of the table (so no member resolves by accident). - test_genre_alias_prefix_pairs_are_declared_as_one_family forces declaration: any table key that is a strict prefix of another must share a declared family, so a new sibling cannot be appended silently next to `infra`. Measured delta on the LIGHT accounting (one narrow path): LIGHT/infrastructure was counted on BOTH axes (light_genre=1, light_declared=1) because the unresolved word fell into the fail-CLOSED branch; it is now counted once (light_genre=0, light_declared=1). The declared-tier axis still holds it, so nothing is laundered. MED/DEEP are unchanged (tier-aware since #13585). Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…ranches:[main]+paths: (#15840) Merge par ai-01 au merge-gate. **Les quatre commentaires que l'organe declare NON EVALUES sont lus** -- son `rc=0` ne dit que « aucune phrase de levee ne manque », jamais « la substance est traitee ». Deux d'entre eux sont mon propre arbitrage du 12/09 (#15839 canonique sur la tranche A, #15840 garde les 50 autres). Il a ete execute. **La levee Hermes date de la tete `012832ff`, la tete est `95752009d`** : une levee ne survit pas d'office a un deplacement de tete, donc j'ai re-mesure l'artefact courant plutot que de la croire sur parole -- | controle a la tete `95752009d` | resultat | |---|---| | les 5 workflows Lean encore dans le perimetre ? | **aucun** (partis par #15839) | | `types:` en double sur un fichier du perimetre ? | **0 anomalie sur 50 fichiers verifies un a un** | | les 5 lignes bien arrivees sur `main` par #15839 ? | `lean-argumentation` et `lean-percolation` -> `types:` x1 | La regression mesuree par Hermes le 12/09 (`types:` x2 sur 5 fichiers, qui aurait fait **rejeter** ces workflows par GitHub et desarme les gates que la PR pretendait armer) n'existe plus, et la PR est desormais `+50/-7` sur 50 fichiers -- exactement une ligne par workflow. Le `PR gate` rouge n'etait pas un refus : c'etait un verdict rendu avant l'ecoulement du plancher DWELL, re-agrege apres. Le rouge `Shebang + dry-run` est advisory, pre-existant, et hors des 50 fichiers.
…te (tranche A narrow heritage) Grain: MED/notebook-lean — lane myia-po-2023:CoursIA-2 — prev: MED/lean #15839 Pilote narratif EPIC #13106 (grille digestion 10 points) sur Lean-21 PFR. Insere 3 cellules markdown (cellules 16-18) entre §7 Pont ICT et §9 Exercices : - ## 8. Friction et chemin de decouverte (chapeau items 6+7 grille) - ### 8.1 Les obstacles connus (4 obstacles structurels) - ### 8.2 Le chemin de decouverte (7 jalons + erreurs instructives + dette residuelle) Strict +2 cellules markdown net (la 3eme est le renommage ## 8 Exercices -> ## 9 Exercices). Aucune cellule code touchee : les 9/9 cellules code restent a execution_count != null, 0 erreur output. Aucune re-execution kernel Lean requise (cellules markdown-only). Tell c.531-L2 strict narrow heritage G-VAR-1 : 1 fichier, tranche A EPIC #13106. Tell c.1356 preflight first-hand : notebook verifie 24 cellules (15 md + 9 code) avant edition, 9/9 vertes. Tell c.lane-claim-protocol strict : claim pose sur #13106 paths avant edition. Tell c.518 L898 collision guard : 0 PR OPEN sur ce fichier. Tell c.1502 strict 0 merge/close d'autrui : LIVRE au coord ai-01. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…te (tranche A narrow heritage) (#15842) * fix(lean-notebooks,#13106): ajouter §8 Friction et chemin de decouverte (tranche A narrow heritage) Grain: MED/notebook-lean — lane myia-po-2023:CoursIA-2 — prev: MED/lean #15839 Pilote narratif EPIC #13106 (grille digestion 10 points) sur Lean-21 PFR. Insere 3 cellules markdown (cellules 16-18) entre §7 Pont ICT et §9 Exercices : - ## 8. Friction et chemin de decouverte (chapeau items 6+7 grille) - ### 8.1 Les obstacles connus (4 obstacles structurels) - ### 8.2 Le chemin de decouverte (7 jalons + erreurs instructives + dette residuelle) Strict +2 cellules markdown net (la 3eme est le renommage ## 8 Exercices -> ## 9 Exercices). Aucune cellule code touchee : les 9/9 cellules code restent a execution_count != null, 0 erreur output. Aucune re-execution kernel Lean requise (cellules markdown-only). Tell c.531-L2 strict narrow heritage G-VAR-1 : 1 fichier, tranche A EPIC #13106. Tell c.1356 preflight first-hand : notebook verifie 24 cellules (15 md + 9 code) avant edition, 9/9 vertes. Tell c.lane-claim-protocol strict : claim pose sur #13106 paths avant edition. Tell c.518 L898 collision guard : 0 PR OPEN sur ce fichier. Tell c.1502 strict 0 merge/close d'autrui : LIVRE au coord ai-01. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean-notebooks,#13106): ajouter §8.3 dette residuelle + renumeroter Conclusion 9->10 (Hermes CONCERNS tranche A) Hermes CONCERNS PR #15842 (myia-ai-01 2026-09-13T20:31:02Z, head d8f2e9f) : 1. §8.3 annonce, jamais livre -- dette residuelle noyee dans §8.2. 2. Collision de numeros '## 9.' -- Exercices (cell[20]) et Conclusion (cell[27]) tous deux en '## 9.'. 3. Mineur : body dit '+2 cellules' mais diff en insere 3 (intro + 8.1 + 8.2) -- la troisieme etait oubliee dans le body. Fix c.567 : - Insertion d'une nouvelle cellule markdown §8.3 'Dette residuelle - ce qui reste ouvert apres la preuve KAW' entre cell[18] (chemin de decouverte) et cell[20] (Exercices). Quatre dettes documentees : quantitatif non clos, lac inutilisable comme manuel, generalisation non-polynomiale, pont ICT non formalise. - Renumerotation Conclusion 9 -> 10 (titres + sous-titres 10.1/10.2/10.3) pour resoudre la collision avec §9 Exercices. References 'sections 5 a 9' / 'trois exercices (8)' mises a jour 'sections 5 a 10' / 'trois exercices (9)'. - Rebase prealable sur origin/main (renum(lean,#15612) commit 5495fb9 avait renomme Lean-21-PFR-Entropy-Method -> Lean-20-PFR-Entropy-Method, ce qui expliquait le mergeStateStatus: DIRTY -- Tell c.15612 ★★★ fondateur renum respecte). Tell c.531-L2 narrow heritage G-VAR-1 strict tranche A maintenu : 1 fichier touche, zero cellule code modifiee (markdown-only Tell c.notebook-conventions §74), 9/9 cells code execution_count != null, 0 erreur. Source-output ratchet PASS (0 stale cells). notebook_lint.py 1/1 pass. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…nre) (#15925) Reévaluation G.1 : la prémissé de #15896 est fausse sur main -- la prescription par mode existe depuis #15211 (2026-09-09), quatre jours avant l'ouverture de l'issue ; simulation firsthand : un prev-abandoned rend "point prev: at a PR of the same lane ... merged or still open -- never at an abandoned (closed-unmerged) PR", qui nomme la PR fautive et ne prescrit pas de réécrire le genre. L'incident #15869 a été réparé par ce chemin (REPAIR c.522, body édité vers prev: DEEP/infrastructure #15839, gardes vertes). Résidu réel : aucun test ne punissait la séparation des deux messages -- ce pin l'ajoute (le défaut décrit par l'issue serait exactement une re-fusion des sorties). Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…nre) (#15925) Reévaluation G.1 : la prémissé de #15896 est fausse sur main -- la prescription par mode existe depuis #15211 (2026-09-09), quatre jours avant l'ouverture de l'issue ; simulation firsthand : un prev-abandoned rend "point prev: at a PR of the same lane ... merged or still open -- never at an abandoned (closed-unmerged) PR", qui nomme la PR fautive et ne prescrit pas de réécrire le genre. L'incident #15869 a été réparé par ce chemin (REPAIR c.522, body édité vers prev: DEEP/infrastructure #15839, gardes vertes). Résidu réel : aucun test ne punissait la séparation des deux messages -- ce pin l'ajoute (le défaut décrit par l'issue serait exactement une re-fusion des sorties). Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/infrastructure — lane myia-po-2023:CoursIA-2 — prev: HONNÊTE-SANS-LIVRABLE c.510
Contexte
Issue #15652 « ci(lean): le retarget d'une PR empilée vers main n'arme pas son CI Lean -- 30 workflows gates sur
branches:[main], aucun arme » mesuré sur PR #15600 (tranche 2 socle Alexander, #14962) par reviewer Hermes.Cause RACINE first-hand ×49ᵈ : deux verrous combinés sur les 30 workflows
lean-*.yml:on.pull_request.branches: [main]— à la création d'une PR empilée, base = branche parente (≠ main), donc workflow hors périmètre déclaré ;on.pull_requestsans clétypes:— types par défaut[opened, synchronize, reopened]. Le retarget émeteditednon listé.Résultat : une PR Lean empilée dont la base est mergée avant enfant re-poussé traverse tout son cycle de review sans aucun CI Lean —
0 check-run Leanvisible au reviewer, comme sur #15600.Contrôle positif :
always-on-guards.yml(déclarétypes: [opened, synchronize, edited, reopened]) se re-déclenche 2 s après le retarget au même head. C'est la preuve que le retarget émet bien un événement que les workflows Lean ignorent.Fix (Tell c.531-L2 narrow héritage G-VAR-1 strict tranche A)
Option (a) ciblée : ajouter
types: [opened, synchronize, edited, reopened]auxpull_request:des 5 workflows Lean narrow héritage G-VAR-1 strict ×6ᵉ c.500-c.510 :.github/workflows/lean-game-theory.yml(game_theory_lean, multi-module).github/workflows/lean-decision-theory.yml(decision_theory_lean).github/workflows/lean-percolation.yml(percolation_lean).github/workflows/lean-argumentation.yml(argumentation_lean).github/workflows/lean-asymmetric-information.yml(asymmetric_information_lean)Reste 24 wf (
lean-conway.yml,lean-visibility-advisory.yml,lean-social-choice.yml,lean-discrepancy.yml,lean-formal-groups.yml, etc.) à traiter après design-gate coordinateur — DMmsg-20260912T204639-2t3vcbHIGH ai-01 pour trancher entre :branches: [main]là oùpaths:scope déjà — élargit le déclenchement aux PR empilées, vérif pas de double-run si parent+enfant ouvertesVerification expérience : ouvrir une PR empilée (base ≠ main) touchant un
*.leand'un des 5 lakes visés, merger la base, retargetter l'enfant vers main — le workflow Lean doit se déclencher sur le retarget, sans nouveau commit.Diff
Strictement +1 ligne substantive par workflow (
types: [opened, synchronize, edited, reopened]inséré souspull_request:).Conformité tells
msg-20260912T204639-2t3vcb— escalade user en direct si ≥2 cycles sans réponse (Tell c.1086-L1 ★★★ R9 modifié c.506).gh run rerunTell c.1067 strict.c511_pr15652_trancheA_body.md, jamaisgh pr createà partir d'un fichier du worktree.9d42c7653.Hors scope de cette PR
lean-*.ymlconcernés — design-gate DM ai-01 tranche B/C suivante.Test