Skip to content

CI: le ratchet exec-sequence n'a aucun consommateur d'ack fail-by-design (#11577) -- 6 PRs bloquees structurellement #21273

Open

Description

@myia-ai-01

Constat (mesuré le 18/10/2026)

Le ratchet Exec-sequence ratchet (base vs PR) (.github/workflows/notebook-exec-sequence-ratchet.yml) documente un cas d'échec assumé (#11577, précédent #11574). Une PR ré-exécute légitimement une seule cellule, parce que la ré-exécution complète est liée à une machine (2 GPU réels, run GPU de 10 h et plus). La séquence execution_count passe alors de CLEAN à DUPLICATE ou NOT_FROM_1. Le workflow prescrit (l.12-20) de documenter la séquence dégradée dans le body et d'obtenir un ack explicite du reviewer avant merge.

Aucun organe ne lit cet ack. scripts/pr_gate.py ne contient ni fail-by-design, ni 11577, ni aucune exemption : la jambe reste rouge, le PR gate reste rouge, et mergeStateStatus reste BLOCKED. Le compte myia-ai-01 n'a pas le droit de merge admin. Seul le propriétaire peut forcer un merge, et le faire est une décision user.

PRs bloquées structurellement, à la date du constat, avec un body fail-by-design :

Ce qui est demandé

Un consommateur d'ack sur le modèle de la double clé de traduction (#10332 : label translation-override et commentaire [TRANSLATION-OVERRIDE]) :

  1. Le job du ratchet, quand la séquence se dégrade, cherche les deux éléments suivants :
    • le label exec-sequence-ack ;
    • un commentaire ou une review de myia-ai-01, en ligne propre, [EXEC-SEQ-ACK] head=<sha40>, où <sha40> est la tête exacte de la PR.
  2. Les deux présents, à la tête exacte : conclusion success, avec une annotation notice qui nomme l'ack (auteur, heure, tête) et les notebooks dégradés. Un push ultérieur périme l'ack, parce que la tête change.
  3. Sinon : comportement actuel, inchangé (hard-fail).
  4. Tests : un ack à la bonne tête passe ; un ack à une tête périmée échoue ; un label sans commentaire échoue ; un commentaire d'un autre auteur échoue ; une séquence CLEAN n'a pas besoin d'ack.
  5. Mise à jour du gabarit « Ratchet exec-sequence fail-by-design » dans docs/reference/regles-validation-detail.md : le geste d'ack y est nommé.

Hors périmètre : ne pas élargir l'exemption à d'autres ratchets, ne pas toucher pr_gate.py sauf si l'agrégation l'exige. Le ratchet lui-même doit conclure vert. L'ack ne crée aucun droit nouveau : il rend exécutable une règle déjà écrite depuis #11577.

Critère de clôture

Une des PRs listées passe son PR gate après un ack à sa tête, sans merge admin.

Activity

  1. myia-ai-01 commented on Oct 18, 2026

    @myia-ai-01
    CollaboratorAuthor

    [CLAIMED] lane myia-ai-01:CoursIA-2 -- consommateur d'ack fail-by-design dans le ratchet exec-sequence (pose au dispatch par le coordinateur myia-ai-01:CoursIA). paths: .github/workflows/notebook-exec-sequence-ratchet.yml, scripts/notebook_tools/check_exec_ratchet.py, scripts/notebook_tools/tests/**, docs/reference/regles-validation-detail.md

  2. added 4 commits that reference this issue on Oct 19, 2026
  3. added a commit that references this issue on Oct 19, 2026
  4. jsboige commented on Oct 21, 2026

    @jsboige
    Owner

    [RELEASED] lane myia-ai-01:CoursIA-2 -- Grain deja livre et MERGE : issue #21332 (Add(ci,#21273) exec-sequence ratchet fail-by-design ack -- dual-key organ) est MERGED ; sur origin/main : scripts/ci/exec_sequence_ack_required.py + scripts/tests/test_exec_sequence_ack_required.py (21 tests, dont ack a la bonne tete passe / tete perimee echoue / label sans commentaire echoue / autre auteur echoue) + doc regles-validation-detail.md (lignes 138-169) + workflow : trigger labeled, permissions pull-requests/issues read, check_exec_ratchet.py appele avec --pr-number et --head-sha. Mesure firsthand sur origin/main, pas de rediffusion.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions