Skip to content

ci(md-hierarchy): le garde mesure mais ne bloque pas -- HINT-AS-HEADING est reparti de zero et a survecu au merge (#21931) #22012

Open

Description

@jsboige

Part of #11829

Constat mesure

Le 2026-10-22, un carnet livre dans la journee (GameTheory-04g-Supermodularite-Python.ipynb, PR #21938) a introduit 17 defauts de rendu markdown dans un depot qui n'en portait aucun de cette classe :

  +17  MyIA.AI.Notebooks/GameTheory/GameTheory-04g-Supermodularite-Python.ipynb
        +8 H1-DEEP
        +8 HINT-AS-HEADING
        +1 MULTI-H1

Le garde l'a detecte et rapporte lui-meme, deux fois (tetes 202407fe9 puis e17e4530f), avec la correction exacte : - # Indice : ... -> - **Indice :** .... Le check a conclu SUCCESS et la PR a merge. L'utilisateur a trouve le defaut a l'oeil, apres coup.

Pourquoi le garde n'a pas bloque

scan-md-hierarchy-drift.yml tourne et mesure correctement. Il est advisory par construction :

Mode ADVISORY au premier tour (mandat de l'issue) : le job reste VERT, un commentaire nomme chaque (notebook, kind, delta). Le passage en bloquant sera decide ulterieurement.

Le code fait exactement cela : rc=2 (drift) -> commentaire de PR + exit 0.

L'issue qui devait operer la bascule portait la porte dans son titre : #11831, « scan_md_hierarchy: drift CI contre baseline (delta>0 = CHANGES_REQUESTED) ». Elle a ete close COMPLETED le 2026-08-21 sur la justification « le drift est mesure en CI ». Le metre a ete livre et verifie ; la porte, non. Le titre promettait un verdict, la cloture atteste une mesure.

Ce n'est donc pas un organe manquant (famille de #22009, « le script existe et rien ne l'appelle ») : c'est un organe qui tourne, voit, dit -- et dont le verdict est jete.

Etat mesure du stock (a la date de cette issue)

Sur main 5d9f3539d20, scan du corpus entier :

Classe Occurrences Concentration
HINT-AS-HEADING 8 toutes dans GameTheory-04g-Supermodularite-Python.ipynb
H1-DEEP 44 dispersees
MULTI-H1 5 dispersees

La classe HINT-AS-HEADING etait a zero avant ce carnet. C'est le cas d'ecole d'un gate qui aurait du mordre : la classe venait d'etre assainie, une PR l'a reintroduite en entier, le garde l'a dit.

Prealable mesure : la baseline est derivee

$ python scripts/notebook_tools/scan_md_hierarchy.py MyIA.AI.Notebooks/ --baseline --diff
=== drift: +26 across 3 notebook(s), 12 burned down ===
rc=2

Une bascule sans re-seed dans le meme geste bloquerait des PRs sur des defauts anterieurs a leur diff (typiquement toute PR touchant ML-09c-MatrixProfile-Multidim-Python.ipynb, +7 H1-DEEP / +1 MULTI-H1, aujourd'hui en derive et invisible en CI puisque le job est vert).

Acceptance proposee

  1. Re-seed de la baseline (--update-baseline) dans une PR dediee, sans autre changement, pour que le gate demarre vert sur main.
  2. Bascule du job en bloquant : rc=2 devient un echec de check, plus un commentaire suivi de exit 0. Le scope --name-status (deja implemente) reste l'imputation : seuls les carnets touches par la PR comptent.
  3. Controle par faux negatif, comme pour les autres organes : ajouter un # Indice en titre dans un carnet -> le job rougit ; le corriger en **Indice :** -> il reverdit. Preuve postee dans la PR de bascule.
  4. La classe HINT-AS-HEADING peut, si le user prefere une bascule graduelle, mordre seule d'abord (elle est a 8 occurrences, toutes dans un carnet) et laisser H1-DEEP/MULTI-H1 advisory jusqu'a leur assainissement (44 et 5 occurrences dispersees).

Sign-off requis

Passer une recommandation en gate est un changement normatif substantiel au sens de CLAUDE.md §A : la PR de bascule exige un sign-off user explicite, pas seulement une review coordinateur. Cette issue porte la decision ; elle n'est pas un grain de lane tant que le sign-off n'est pas donne.

Activity

  1. jsboige commented on Oct 23, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA-2 -- re-seed de la baseline scan_md_hierarchy (acceptance 1, non normative, PR dediee sans autre changement) ; la bascule en bloquant (acceptances 2-4) reste au sign-off user et n'est pas livree dans ce grain

  2. added a commit that references this issue on Oct 24, 2026
  3. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Oct 25, 2026
  4. jsboige commented on Oct 25, 2026

    @jsboige
    OwnerAuthor

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-po-2028:CoursIA-3
    issue: 22012
    verdict: KEEP
    acceptance:

  5. removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Oct 26, 2026
  6. myia-po-2023 commented on Nov 2, 2026

    @myia-po-2023
    Collaborator

    Grain: MED/guard — lane myia-po-2023:CoursIA — prev: LIGHT/guard #24179
    [CLAIMED] lane myia-po-2023:CoursIA -- bascule graduelle bloquante de la classe HINT-AS-HEADING (acceptances 2-4, option 4 ; sign-off user 2026-11-02 registre Q23) : flag --fail-kinds + --base-ref au scanner, Guard bloquant au registre fast lane, stub source, tests. paths: scripts/notebook_tools/scan_md_hierarchy.py, scripts/ci/fast_lane_registry.py, .github/workflows/scan-md-hierarchy-drift.yml, scripts/tests/test_scan_md_hierarchy_fail_kinds.py, scripts/notebook_tools/md_hierarchy_baseline.json

  7. myia-po-2023 commented on Nov 2, 2026

    @myia-po-2023
    Collaborator

    [DELIVERED] lane myia-po-2023:CoursIA -- PR #24312 -- paths: scripts/notebook_tools/scan_md_hierarchy.py, scripts/ci/fast_lane_registry.py, scripts/ci/fast_lane.py, .github/workflows/scan-md-hierarchy-drift.yml, scripts/tests/test_scan_md_hierarchy_fail_kinds.py

    Bascule graduelle option 4 (sign-off user 2026-11-02, Q23b) : HINT-AS-HEADING seule devient bloquante (rc=4 via --fail-kinds), bornage --base-ref (#12735/#13315), garde TRANCHE38 voie rapide, controle faux-negatif = 8 tests. Classe a zero sur main au re-seed #22222 -> le verrou demarre vert. Les autres classes restent advisory jusqu'a leur assainissement (44/5 occurrences).

  8. jsboige commented on Nov 3, 2026

    @jsboige
    OwnerAuthor

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-po-2028:CoursIA-3
    issue: 22012
    verdict: KEEP
    acceptance:

  9. added 2 commits that reference this issue on Nov 4, 2026
  10. added a commit that references this issue on Nov 5, 2026
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