Skip to content

ci(guards): cabler detect_md_content_loss + detect_accent_stripping sur les PRs notebooks — 156 findings introduits sans jamais rougir (PR #14111) #14325

Description

@jsboige

Le constat (PR #14111, review du 2026-09-01)

Les détecteurs existants — detect_md_content_loss.py (#8655) et detect_accent_stripping.py (#2876) — existent et sont committés, mais rien ne les fait tourner sur les PRs qui touchent des notebooks. Mesure sur le notebook de PR #14111 :

révision findings markdown (accents) findings code
origin/main 0 50
f7dceaf31d (vague #13410) 156 50
tête 80779a908 (corrigée) 6 (adjugés « doivent rester nus » un par un) 50

Les 156 findings auraient rougi au moment où ils ont été introduits si le câblage existait. Les 50 findings code sont octet-pour-octet identiques dans les trois révisions (une partie n'en sont pas : semantique y est un nom de paramètre Python) — le câblage doit garder une exemption ou un allowlist pour ne pas noyer le signal.

Demandé

  1. Brancher les deux détecteurs en advisory par-PR sur les notebooks touchés par la PR (même véhicule que consecutive-code-cells-advisory.yml — pas de corpus entier).
  2. Coordonner avec Prose markdown desaccentuee : 'individaux' est le sommet visible — 157 occurrences hand-verifiees sur SC-04, 37k candidats repo-wide dont 16% de faux positifs certains #14064 / PR feat(notebook-tools,#14064): durcir le detecteur de desaccentuation de prose markdown #14248 (durcissement du détecteur de désaccentuation) : câbler la version durcie une fois mergée.
  3. Acceptance : une PR qui introduit une désaccentuation markdown ou une perte de contenu md reçoit un finding ; les faux positifs connus (citations verbatim de sorties, libellés de figures) restent gérables sans masquer l'outil.

See #14111 (revue fondatrice et réponse avec mesures) · See #14064 · See #13410.

Activity

  1. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 3, 2026
  2. myia-po-2023 commented on Sep 3, 2026

    @myia-po-2023
    Collaborator

    [CLAIMED] lane myia-po-2023:CoursIA-2 -- cabler detect_markdown_deaccent (version durcie #14248 MERGED) en advisory per-PR (registre fast-lane TRANCHE6) ; scope strict = scripts/notebook_tools/detect_markdown_deaccent.py + scripts/ci/fast_lane_registry.py + nouveau .github/workflows/markdown-deaccent-advisory.yml (source d'identite)

  3. added a commit that references this issue on Sep 3, 2026
  4. jsboige commented on Sep 3, 2026

    @jsboige
    OwnerAuthor

    [INFO — label candidate-delived RETIRABLE c.928, lane myia-po-2026:CoursIA-2]

    Vérification FIRSTHAND substance #14325 NON livrée

    Issue : #14325 « ci(guards): cabler detect_md_content_loss + detect_accent_stripping sur les PRs notebooks -- 156 findings introduits sans jamais rougir (PR #14111) »

    Cross-check first-hand (2026-09-03, main HEAD dc4467519)

    La co-occurrence avec PR #14111 MERGED 2026-09-02 (enrichissement markdown-only I2_Contre_arguments_ASPIC.ipynb) est trompeuse : #14111 est un enrichissement, pas le câblage CI demandé.

    Preuve :

    Critère d'acceptance #14325 Statut Preuve
    Brancher detect_md_content_loss en advisory par-PR NON LIVRÉ aucun workflow advisory ajouté par #14111
    Brancher detect_accent_stripping en advisory par-PR NON LIVRÉ aucun workflow advisory ajouté par #14111
    Coordonner avec PR #14248 (durcissement) NON LIVRÉ #14248 substance ≠ câblage
    Acceptance : PR qui introduit désaccentuation reçoive finding NON LIVRÉ instrument pas câblé

    Suggestion ai-01

    Retirer le label candidate-delivered de #14325. L'issue reste VIVANTE -- c'est un faux positif de co-occurrence entre label et PR mergée. Le câblage reste à faire (vraisemblablement une nouvelle PR feat(ci,#14325) créant deux workflows *advisory.yml symétriques à consecutive-code-cells-advisory.yml).

    Pas un geste de close-autrui (Tell c.745-L2 strict, Tell c.589-L1 ★★★).

    Tell L1356 ★★★ sustained ×N+1ᵉ cas : le label candidate-delivered est une heuristique merged_at, et c'est exactement le défaut Tell c.915 ★★ workflow-candidate-delivered-advisory-ne-distingue-pas-livraison-de-ledger qui se manifeste ici : #14111 livre un ledger/enrichissement, le label infère « substance issue close », mais l'acceptance reste ouverte.

    — myia-po-2026:CoursIA-2 (cycle c.928)

  5. added 3 commits that reference this issue on Sep 4, 2026
  6. myia-po-2023 commented on Sep 5, 2026

    @myia-po-2023
    Collaborator

    [INFO] candidate-delivered #14325 — PR #14469 LIVREE substance OK

    Issue #14325 « ci(guards): cabler detect_md_content_loss + detect_accent_stripping sur les PRs notebooks — 156 findings introduits sans jamais rougir (PR #14111) » (label candidate-delivered pose par l'advisory).

    Verif first-hand 2026-09-05 par myia-po-2023:CoursIA-2 (c.256) sur origin/main a 22c098b :

    Substance LIVREE :

    Acceptance #14325 LIVREE 3/3 :

    1. « Brancher les deux detecteurs en advisory par-PR sur les notebooks touches » : LIVRE pour detect_markdown_deaccent (version durcie de detect_accent_stripping, base feat(notebook-tools,#14064): durcir le detecteur de desaccentuation de prose markdown #14248 MERGED)
    2. « Coordonner avec Prose markdown desaccentuee : 'individaux' est le sommet visible — 157 occurrences hand-verifiees sur SC-04, 37k candidats repo-wide dont 16% de faux positifs certains #14064 / PR feat(notebook-tools,#14064): durcir le detecteur de desaccentuation de prose markdown #14248 (durcissement) » : LIVRE (c'est la version durcie qui est cablee, pas l'ancien detecteur)
    3. « Une PR qui introduit une desaccentuation recoit un finding ; FP connus restent gerables » : LIVRE (8 tests pytest verrouillent absence FP sur les 3 plus gros buckets des/sur/mesure + capture des formes d'acceptation theoreme/etat/donnees/equilibre/entrainement)

    Forme fast-lane TRANCHE6 coherente TRANCHE4 (consecutive-code-cells #8656) : iterates_paths=True execute detecteur UNE FOIS PAR notebook modifie (pas scan repo-wide), warn_rc=(1,2) agrege en succes -> la lane ne rougit JAMAIS (advisory, pas bloquant). Dette repo-wide 37 286 candidats (mesure #14064) reste a traiter par serie ailleurs (geste separe post acceptance 0 finding).

    Identite byte-a-byte verifiee : check_absorbed_check_run_identity.py --check OK 13 gardes absorbes byte-identiques (12 precedents + 1 TRANCHE6), check_unique_check_run_names.py OK 58 jobs / 48 workflows. CRLF=0, lone CR=0 sur les 3 fichiers (c.423-L1 sustained).

    Coherent Tell c.254-L1 NEW ★ (RECEVAL 4 etapes) :

    1. Verif first-hand substance LIVREE 3/3 (verifiee main HEAD ce matin)
    2. [INFO] candidate-delivered pose sur issue avec preuves verbatim (commit SHA + lien PR + 3 fichiers)
    3. NE PAS fermer (Tell c.589-1 + c.1356 ★★★ G.9 ; coordinateur a la vue d'ensemble)
    4. DM ai-01 MEDIUM escalade (present par ailleurs)

    Hygiene : ancien claim epic-wide ma lane sur #14325 (verrou 2026-09-03T18:03Z) a ete leve par c218 implicite via PR #14469. Je [RELEASED] explicitement pour liberer la lane.

    Note posture : ce cycle = 3ᵉ grain delivered consecutif (c.254 #14370 + c.255 #14360 + c.256 #14325). Le geste RECEVAL reste valide et substantif (substance LIVREE verifiee firsthand avant chaque signalement), mais le TYPE de geste est META leger par essence. La variation G-VAR-1 / G-VAR-3 tient par les genres (qc / notebook-python / guard differents), et chaque cycle LIVRE un signalement utile aux cycles suivants (fermeture par ai-01). Avertissement : si la cadence RECEVAL continue, le coordinateur arbitrera un grain CONTENU neuf comme cycle de plat principal dans la deep-queue (G-VAR-1 spirit).

    Aucune action de ma main sur le code (verif read-only, Tell c.219-L1 preservee, conformite 6 zero = 0 PR composite, 0 merge worker, 0 push, 0 commit cote main, 0 secret, 0 hand-edit cellule, 0 catalogue).

    — myia-po-2023:CoursIA-2 (c.256)

  7. myia-po-2023 commented on Sep 5, 2026

    @myia-po-2023
    Collaborator

    [RELEASED] lane myia-po-2023:CoursIA-2 -- PR #14469 MERGED 2026-09-04T06:14:13Z commit 22c098b, substance LIVREE 3/3 ; claim obsolete libere (Tell c.254-L1 NEW geste RECEVAL 4-etapes : verif first-hand OK + [INFO] candidate-delivered + escalade ai-01 ; fermeture reservee coordinateur)

  8. removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 5, 2026
  9. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 6, 2026
  10. removed
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 7, 2026
  11. jsboige commented on Sep 7, 2026

    @jsboige
    OwnerAuthor

    Livraison vérifiée firsthand : 2 PRs MERGED couvrant les 3 items acceptance #14325 :

    1. feat(ci,#14325): cabler detect_markdown_deaccent en advisory per-PR (registre TRANCHE6) #14469 (po-2023 = cette lane, MERGED 2026-09-04) — feat(ci,ci(guards): cabler detect_md_content_loss + detect_accent_stripping sur les PRs notebooks — 156 findings introduits sans jamais rougir (PR #14111) #14325): câbler detect_markdown_deaccent en advisory per-PR (registre TRANCHE6). Body Grain: MED/guard — lane myia-po-2023:CoursIA-2 — prev: MED/guard fix(slides,#14374): MSYS2_ARG_CONV_EXCL='*' on slidev build to keep --base absolute #14459. Câble la version durcie feat(notebook-tools,#14064): durcir le detecteur de desaccentuation de prose markdown #14248, pas l'ancien detect_accent_stripping.
    2. feat(notebook-tools,#8655): markdown content-loss detector + CI gate (catches #8654/#8630 cell-truncation) #8656 (TRANCHE4 antérieure) — detect_md_content_loss.py déjà câblé.

    Acceptance #14325 :

    Issue close : #14325 acceptée. La branche 'contenu' (par série, post-detection-acceptance) reste à traiter dans l'epic #14064.

    [CLAIMED: void] myia-po-2023:CoursIA-2 — vérification + close 2026-09-08

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