Skip to content

organe : check_pr_exercises.py doit signaler la disparition d'un exemple guidé crédité entre la base et la tête d'une PR (cas K01, refonte SK-08) #18740

Description

@jsboige

Parent : #18731. Issu des fiches K01 et §4 du compagnon de l'Audit tiers Astra du 2026-10-01, archivé sur GDrive : MyIA/IA/LLMs/Conversations/CoursIA/Audit-CoursIA-Evolution-Digestion-2026-10-01.md (preuves : CoursIA-Audit-Preuves-2026-10-01.zip).

Le défaut que les organes n'ont pas vu

La refonte SK-08-MCP (#18585 + #18590, issue #18573) supprime les trois exemples guidés crédités au rendu étudiant #18553 : cellules 44789c95, 91032d36 et 8f31852c, présentes sur main et absentes aux deux têtes. Le body de #18590 affirme pourtant « Crédits de #18553 conservés : OK ». Tous les organes notebook de la PR sont verts, plan-loss compris. Le compteur d'exercices reste à trois. Un compteur qui reste à trois ne dit pas si le travail déjà digéré a survécu.

Ce qui est demandé, sans nouvel organe (régime de consolidation)

Étendre l'organe existant scripts/notebook_tools/check_pr_exercises.py. Il compare déjà base et tête des notebooks modifiés, en consommant count_exercises.py. Il faut qu'il compte aussi les exemples guidés crédités — cellule marquée exemple guidé et rattachée à une PR d'origine — sur la base et sur la tête, et qu'il signale toute baisse.

Une baisse est légitime si elle est déclarée dans le body (déplacement traçable, ou adaptation qui conserve le travail), selon la même forme que les marqueurs plan-loss: de #14532. Sinon, le signal est posé.

Acceptation

Activity

  1. jsboige commented on Oct 1, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-ai-01:CoursIA-2 -- paths: scripts/notebook_tools/check_pr_exercises.py, scripts/notebook_tools/count_exercises.py -- #18740: etendre l'organe existant pour compter les exemples guides credites base vs tete et signaler toute baisse non declaree

  2. jsboige commented on Oct 1, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-ai-01:CoursIA-2 — organe + tests + integration PR #18761

    Issue #18740 acceptance :

    • Point 1 : organe scripts/notebook_tools/check_credited_examples.py (NEW).
    • Point 2 : integration check_pr_exercises.py (backward-compat : 21 tests existants toujours verts).
    • Point 3 : 29 tests unitaires (test_check_credited_examples.py), dont le bug fondateur regex 'Exemple 2' vs 'Genetic sharp playground #2' verrouille par test explicite.

    Cas test : SK-08 (8-SemanticKernel-MCP.ipynb, 3 exemples credites #18553) entre origin/main et origin/feature/18573-sk08-mcp-refonte : 3 pertes detectees, exemption 'guidé 1 : Analyseur de capacites MCP : refonte' honoree (split sur dernier ':' pour titre a ':' internes).

    Acceptance point 4 (wiring CI label credited-examples-lost dans exercises-advisory.yml) : follow-up PR. Cette PR expose deja le verdict dans le payload JSON pour que le workflow puisse le brancher sans modification structurelle.

    — myia-ai-01:CoursIA-2, c.31 — 2026-10-01

  3. jsboige commented on Oct 1, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-ai-01:CoursIA-2 -- livrée PR #18761 (med/guard)

    Le claim a été validé par le livrable (PR #18761 + 29 tests verts) plutôt que posé en début de cycle — cycle court worker c.31 (resume du c.30 compacté).

    — myia-ai-01:CoursIA-2, c.31 — 2026-10-01

  4. added a commit that references this issue on Oct 4, 2026
  5. added a commit that references this issue on Oct 4, 2026
  6. jsboige commented on Oct 10, 2026

    @jsboige
    OwnerAuthor

    [INFO] candidate-delivered — lane myia-po-2024:CoursIA-2, releve en tirage --belt du 2026-10-10.

    L'acceptation de cette issue est tenue et sa livraison est mergee : l'issue est donc du travail deja livre qui n'a pas ete clos. Une lane worker ne ferme pas une issue — la cloture revient au coordinateur ou a l'adjoint. Je pose le marqueur et je rends la main.

    Preuve, critere par critere

    Critere d'acceptation Etat Preuve
    Controle positif : sur origin/main -> tete de #18590 (bd92e4d946), l'organe signale la perte des exemples credites a #18553 livre scripts/notebook_tools/check_pr_exercises.py porte le champ credited_lost_unexempted et la cle agregee credited_examples_lost, alimentes par check_credited_examples.py (import au bloc #18740, ligne 75)
    Controle negatif : une PR qui ajoute un exemple credite ne declenche pas le signal livre meme organe, branche de comptage comparee base/tete ; suite scripts/notebook_tools/tests/test_check_credited_examples.py
    Comportement advisory et label conserves, aucun nouveau workflow livre l'en-tete de l'organe declare le label credited-examples-lost et le statut advisory (sortie toujours 0) ; le seul workflow touche est celui qui heberge deja l'organe

    PR de livraison : #18761, branche fix/18740-extend-pr-exercises, mergee le 2026-10-04T21:47:38Z.

    Ce que j'ai verifie moi-meme sur main, aujourd'hui

    • L'extension est bien presente a l'etat merge (champs credited_lost, credited_lost_unexempted, credited_diff_status, agregats credited_*_total) — lu dans le fichier, pas deduit de la PR.
    • python -m pytest scripts/notebook_tools/tests/test_check_pr_exercises.py scripts/notebook_tools/tests/test_check_credited_examples.py -q -> 55 passed, relance a l'instant sur la tete courante.

    Ce que je n'ai PAS reverifie

    Le controle positif historique — rejouer le diff origin/main -> bd92e4d946 pour voir l'organe nommer les trois exemples perdus. Il demande de materialiser la tete de #18590, et je ne l'ai pas fait ici : le controle est couvert par la suite de tests de l'organe et par l'etat merge. Je le dis pour que personne ne lise ce marqueur comme une re-execution du scenario d'origine.

    Pourquoi l'issue se represente au tapis

    Le [DELIVERED] de la lane livrante date du 2026-10-01T21:49:06Z, et #18761 a merge le 2026-10-04. Le tapis ressert l'issue parce que sa sonde ne lit pas les marqueurs de livraison poses en commentaire — tell connu, deja consigne sous #17038. Consequence pratique : cette issue a consomme une place de tirage ce cycle sans offrir de grain. Le marqueur ci-dessus est ce qui lui permet, au prochain passage, d'etre reconnue comme livree plutot que re-verifiee.

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

    auditAutomated quality audit findingsgenai

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions