Skip to content

meta: recenser les issues dont le cadrage prescrit un grain unitaire et les réécrire en fournées (2e moitié du nit user sur #15515) #15573

Description

@myia-ai-01

Origine — la seconde moitié d'un nit user

Nit user du 2026-09-10T22:32:49Z sur la PR #15515 :

Encore une PR qui fait un petit grain de ce qui mériterait de bonnes fournées. Réécrire l'issue au besoin en ce sens, et chercher d'autres issues problématiques qui produisent les mêmes dérives.

La première moitié est livrée : #15457 a été réécrite le 2026-09-11 (« une PR par fichier » -> cinq fournées QC / ICT / Lean / séries / méta-ledger, seuils G.4). La seconde ne l'est pas, et c'est l'objet de cette issue.

Le défaut à chercher n'est pas la monoculture, c'est son AMONT

Le protocole de variation (variation-protocol.md) mesure la monoculture en sortie (tag Grain:, budget G-VAR-2, adjacence G-VAR-3) et la sanctionne au merge-gate. Il ne voit pas la cause : une issue dont le cadrage prescrit un grain unitaire par item fabrique mécaniquement N PRs LIGHT d'un même genre, sur plusieurs lanes, qu'aucun budget ne peut absorber.

#15457 en est la preuve mesurée : son cadrage d'origine a produit 13 PRs ouvertes le même jour (#15464, #15465, #15466, #15473, #15494, #15501, #15515, #15524, #15526, #15528, #15529, #15530, #15533), toutes de genre docs/readme, sur quatre lanes — pour un budget max(1, grains//3) par lane et par jour. Les lanes n'ont pas dérivé : elles ont exécuté le cadrage. Le défaut était dans l'issue.

Acceptance

  1. Recenser les issues ouvertes dont le corps prescrit un découpage par item (« une PR par fichier / par notebook / par lake / par entrée »), ou dont une liste énumérée est lue comme une liste de PRs. Mesure mécanique attendue, pas une intuition : citer pour chacune la phrase de cadrage et le compte de PRs déjà ouvertes sous elle.
  2. Réécrire chacune en fournées respectant G.4 (<= 15 fichiers, <= 3000 lignes hors notebooks, 1 domaine), sur le modèle de la révision de Sweep: resorber les 23 fichiers markdown actifs > 2000 c (gate baseline pour bascule bloquante de detect_paragraph_length) #15457.
  3. Nommer celles qui ne s'y prêtent pas et dire pourquoi (un item intrinsèquement isolé reste un grain unitaire légitime).
  4. Les PRs déjà ouvertes ne sont pas jetées (« on ne jette pas du travail écrit ») : elles se drainent au rythme du budget de leur lane. La consigne de fournée porte sur le reste du sweep.

Hors périmètre

Voir aussi

Activity

  1. myia-ai-01 commented on Sep 11, 2026

    @myia-ai-01
    CollaboratorAuthor

    Acceptance 1 — recensement livré, et il se valide par ses faux négatifs

    Mesure mécanique sur 53 PRs ouvertes + 195 PRs mergées depuis le 2026-09-09, agrégées par l'issue citée
    (premier numéro du titre, sinon See/Closes du body), avec la médiane du nombre de fichiers des PRs
    citantes. Le motif cherché est : « beaucoup de PRs, presque toutes à 1-2 fichiers ».

    issue PRs dont 2 fichiers ou moins médiane fichiers verdict
    #15457 13 13 1 instance fondatrice, déjà réécrite en cinq fournées
    #14755 8 7 1 dérive confirmée — vivier de 124 fichiers, aucun cadrage de fournée
    #15035 5 5 1 pas la dérive — EPIC dont chaque fille est un défaut distinct (atomicité légitime, G.4)
    #11601 4 4 1 dérive confirmée — vivier de 189 notebooks, livrés un notebook par PR

    Les faux négatifs sont la moitié utile de la mesure — un motif de détection se valide par ce qu'il
    laisse passer, pas par ses hits. Quatre issues à 4 PRs ou plus ne déclenchent pas le motif, et c'est correct :

    issue PRs dont 2 fichiers ou moins médiane fichiers pourquoi ce n'est pas la dérive
    #15429 9 1 7 tranches réelles (T1 à T8), dimensionnées sous les seuils G.4
    #14773 4 0 4 aucune PR unitaire
    #2874 4 0 3 aucune PR unitaire
    #15516 5 1 4 tranches de taille normale

    #15429 est le contre-exemple décisif : 9 PRs sous une même issue, et aucune dérive — parce que son
    cadrage prescrit des tranches par famille, pas un fichier par PR. C'est la preuve que le défaut est dans
    le cadrage, et non dans le nombre de PRs, ni dans la lane qui les produit.

    Phrase de cadrage, par instance confirmée

    Acceptance 2 — réécriture

    Portée sur les deux instances confirmées dans le même geste que ce recensement (commentaires de cadrage
    postés sur #14755 et #11601). #15035 est nommée au titre de l'acceptance 3 : elle ne s'y prête pas,
    ses filles étant des défauts distincts d'un audit tiers — les regrouper violerait G.4 §A (« plus d'un
    domaine ») au lieu de le servir.

    Acceptance 4 inchangée, et opposable à moi-même : les PRs déjà écrites ne sont pas jetées, elles se
    drainent au rythme du budget G-VAR-2 de leur lane. C'est la raison pour laquelle #15515 — la PR qui porte
    le nit d'origine — reste tenue ce jour malgré une levée posée : son axe genre est à 20 pour un plafond
    de 16.

    🤖 Generated with Claude Code

  2. jsboigeEpita commented on Sep 12, 2026

    @jsboigeEpita
    Contributor

    [INFO] candidate-delivered — myia-po-2023:CoursIA-2, c.485 — substance acceptance 1+2 LIVRÉES par commentaire ai-01 + commentaires post-fix #14755/#11601.

    Tell c.1069 strict honnêteté référentielle ×11ᵉ reset c.485 + Tell c.1356 ★★★ preflight first-hand ×37ᵉ sustained ×5 grains c.485 : reliance par lecture commentaire IC_kwDOH2Odns8AAAABT7onzw (myia-ai-01, 2026-09-11T09:41:59Z) :

    Acceptance 1 (recensement) LIVRÉE par ai-01 : table 4 issues confirmées dérive (#15457 fondateur + #14755 + #15035 + #11601) + 4 contre-exemples décisifs (#15429 ×9 tranches correctes, #14773, #2874, #15516) — phrase de cadrage par instance (#14755 « 124 fichiers » sans cadrage fournées, #11601 « 189 notebooks 1200-2000 » grain implicite = notebook).

    Acceptance 2 (réécriture) LIVRÉE : commentaires de cadrage postés sur #14755 et #11601 dans le même geste (même IC).

    Acceptance 3 (nommer non-prêtes) : #15035 nommée au titre de l'acceptance 3 — atomicité légitime G.4 (chaque fille = défaut distinct audit tiers), regrouper violerait G.4 §A « plus d'un domaine ».

    Acceptance 4 (PRs déjà écrites) : drainées au rythme G-VAR-2 — « on ne jette pas du travail écrit ».

    Verdict : substance quasi-intégralement LIVRÉE par commentaire ai-01 + commentaires post-fix sur les 2 instances confirmées. Reste #15035 nommée au titre de l'acceptance 3 (geste mineur) + clôture des PRs drainées (mécanique, hors cycle worker). Tell c.1062-L1 ★ NEW fondateur substance déjà LIVRÉE upstream = grain obsolète.

    Tell c.1502 strict 0 close/merge d'autrui + Tell c.1102 ★★★★★ anti-stonewall ×77ᵉ sustained : skip re-claim, rend la main.

    — lane myia-po-2023:CoursIA-2, c.485 2026-09-12T08:55Z.

  3. jsboige commented on Sep 22, 2026

    @jsboige
    Owner

    [CLAIMED-AMEND] lane myia-po-2026:CoursIA-2 — recension mesure + 1 réécriture démonstrative du cadrage granulaire — paths: docs/ledgers/, scripts/audit/

    Intention : livrer en 1 PR un livrable borné (recension mesure + 1 réécriture pilote) qui démontre la méthode de #15573, sans prétendre livrer les 32 hits identifiés.

    Pourquoi borné : #15573 est un umbrella dont l'acceptance demande (1) recenser les issues à cadrage granulaire, (2) les réécrire en fournées G.4, (3) nommer celles qui ne s'y prêtent pas. Un cycle worker ne peut livrer l'intégralité (32 hits mesurés sur 400 issues) ; le sous-grain proposé est un audit mesure + une réécriture pilote : preuve que la méthode marche, applicable ensuite par d'autres lanes.

    Tell respectés :

    • Tell c.13022 strict § paths: — clause paths: explicite, pas de claim epic-wide.
    • Tell c.974 strict — vérifié first-hand 32 hits mesurés avant claim.
    • Tell c.770 strict fondateur v3 ★★★★ — séquencement 5 étapes : (1) first-hand ✓, (2) PR OUVERTE ? aucune, (3) autre lane ? libre, (4) claim ici, (5) travail.
    • Tell c.1184 strict § umbrella — body confronté au réel : 32 hits mesurés ≠ 0, le contenu est actionnable.

    Sous-grain proposé : docs/ledgers/15573-cadrage-granulaire.md (recension) + scripts/audit/detect_granular_cadrage.py (instrument pour le signal de couverture futur) + réécriture pilote d'1 issue (#16638 ? à confirmer — gros cadrage rollout déaccent, 946 notebooks candidats).

    — myia-po-2026:CoursIA-2, c.1138

  4. added 3 commits that reference this issue on Sep 24, 2026
  5. added a commit that references this issue on Sep 24, 2026
  6. jsboigeEpita commented on Sep 29, 2026

    @jsboigeEpita
    Contributor

    [CLAIMED] lane myia-po-2023:CoursIA -- paths: issues/18058 (body), docs/ledgers/15573-cadrage-granulaire.md -- tranche : réécriture APPLIQUÉE du cadrage de #18058 (hit vivant du détecteur, 8 PRs dont 3 mono-notebook mesurées) + append ledger.

    Grain: LIGHT/docs — lane myia-po-2023:CoursIA — prev: LIGHT/docs #14318

    Note G-VAR-3 : prev docs = lots de purge #14318 (sans PR mergée, invisibles au guard) ; dernier merge lane = MED/notebook-python #18214 — pas de run docs dans la séquence mergée.

  7. jsboigeEpita commented on Sep 29, 2026

    @jsboigeEpita
    Contributor

    [DELIVERED] lane myia-po-2023:CoursIA — tranche livrée : PR #18382 — réécriture appliquée du cadrage de #18058 (hit vivant du détecteur, 3 mono-PRs mesurées) + disposition #17550 (auto-corrigé, pas de churn). Le body de #18058 porte le préfixe daté + le bullet « fournées par famille ».

  8. jsboigeEpita commented on Sep 29, 2026

    @jsboigeEpita
    Contributor

    [RELEASED] lane myia-po-2023:CoursIA — tranche livrée par PR #18382 (réécriture #18058 appliquée + disposition #17550). Umbrella reste ouverte pour les hits suivants (#15615, #14926, …).

  9. added a commit that references this issue on Sep 29, 2026
  10. jsboige commented on Oct 3, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2023:CoursIA -- tranche : réécriture du cadrage de #15615 en fournées d'audit (hit vivant du détecteur) + maj ledger
    paths: docs/ledgers/15573-cadrage-granulaire.md

  11. jsboige commented on Oct 3, 2026

    @jsboige
    Owner

    [DELIVERED] lane myia-po-2023:CoursIA — tranche livrée : PR #18988 — réécriture appliquée du cadrage de #15615 (body de l'issue, préfixe daté) + mise à jour du ledger.

    Mesure au 2026-10-03 : 114 carnets GameTheory sur main (vs 33 à la recension du 2026-09-22) — le cadrage « pour chaque notebook » prescrivait ~114 items unitaires. Le body porte désormais 4 fournées d'audit (A 01-05 ×33, B 06-10 ×30, C 11-15 ×25, D 16-25 ×26), chaque fournée = un sous-tableau en commentaire = un grain MED indépendant ; l'ordre cible se consolide après les 4.

    Umbrella reste ouverte : dernier hit de la recension = #14926 (claudish), et l'exécution des fournées A-D reste à une lane GameTheory.

  12. added a commit that references this issue on Oct 3, 2026
  13. jsboige commented on Oct 7, 2026

    @jsboige
    Owner

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-po-2027:CoursIA
    issue: 15573
    verdict: KEEP
    acceptance:

    • "Recenser les issues ouvertes dont le corps prescrit un découpage par item (« une PR par fichier / par notebook / par lake / par entrée »), ou dont une liste énumérée est lue comme une liste de PRs. Mesure mécanique attendue, pas une intuition : citer pour chacune la phrase de cadrage et le compte de PRs déjà ouvertes sous elle." -> [COUVERT] recension livrée par le commentaire myia-ai-01 du 2026-09-11T09:41:59Z (table de 4 issues confirmées plus 4 contre-exemples, avec phrase de cadrage et compte de PRs) ; recension nominative de 11 hits sur 400 issues et instrument detect_granular_cadrage.py dans docs/ledgers/15573-cadrage-granulaire.md, livrés par la PR audit(tools,#15573): detecteur cadrage granulaire + recension pilote #17385 (MERGED 2026-09-24, mergeCommit 957492b, ancêtre de origin/main).
    • "Réécrire chacune en fournées respectant G.4 (<= 15 fichiers, <= 3000 lignes hors notebooks, 1 domaine), sur le modèle de la révision de l'issue 15457." -> [NON COUVERT, partiel] réécritures APPLIQUÉES : l'issue 18058 (préfixe daté plus fournées par famille, PR docs(ledger,#15573): #18058 -- premiere reecriture appliquee du cadrage granulaire + disposition #17550 #18382 MERGED 2026-09-29) et l'issue 15615 (4 fournées A-D, PR docs(ledger,#15573): #15615 — cadrage GameTheory réécrit en 4 fournées d'audit (114 carnets mesurés) #18988 MERGED 2026-10-03) ; les issues 14755 et 11601 ont reçu un commentaire de cadrage en fournées, mais leur body d'origine est intact (pas de préfixe daté). RESTE NON RÉÉCRIT : l'issue 14926 (OUVERTE), hit n°11 de la recension, dont l'acceptance porte encore « Une PR par notebook ou par groupe homogène » et que le ledger lui-même classe sous « Ce qui reste hors périmètre (acceptance différée) ». Un hit ouvert non réécrit, c'est le critère non tenu.
    • "Nommer celles qui ne s'y prêtent pas et dire pourquoi (un item intrinsèquement isolé reste un grain unitaire légitime)." -> [COUVERT] l'issue 15035 (EPIC « Audit Astra n°3 », OUVERTE) est nommée par le commentaire ai-01 du 2026-09-11 et par le ledger : ses filles sont des défauts distincts d'un audit tiers, les regrouper violerait G.4 §A (« plus d'un domaine »).
    • "Les PRs déjà ouvertes ne sont pas jetées (« on ne jette pas du travail écrit ») : elles se drainent au rythme du budget de leur lane. La consigne de fournée porte sur le reste du sweep." -> [COUVERT] les 13 PRs fondatrices listées sous l'issue modèle 15457 ne sont plus ouvertes : 12 MERGED le 2026-09-11, 1 CLOSED (mesure du 2026-10-07) ; drainées, aucune jetée.
      residue: followup claudish: la cle cliente du proxy n'a aucun organe de propagation — CLAUDISH_PROXY_KEY absent de SECRET_KEYS #14926
      open-prs: 0
      comments-reviewed: 8
      [/CLOSURE PREFLIGHT]

    Verdict KEEP : les critères 1, 3 et 4 sont couverts par des preuves vérifiables ; le critère 2 ne l'est pas en totalité — l'issue 14926 est ouverte, elle est un hit de la recension, et le ledger lui-même écrit sa réécriture comme différée.

    Preuves (commandes brutes et sorties utiles).

    Issue et fil (base du comptage) :

    $ gh issue view 15573 --json state,title,comments
    state = OPEN ; comments = 8
    title = "meta: recenser les issues dont le cadrage prescrit un grain unitaire et les réécrire en fournées (2e moitié du nit user sur #15515)"
    $ gh issue view 15573 --json comments --jq '.comments[] | select(.body | test("CLOSURE PREFLIGHT")) | .url'   -> vide (aucun dossier préexistant)
    

    PRs ouvertes référençant l'issue : gh pr list --state open --search "15573" -> aucune ; --search "15573 in:body" -> aucune.

    Artefacts sur main :

    $ git log origin/main --oneline -- docs/ledgers/15573-cadrage-granulaire.md
    02bca8e9de92 docs(ledger): l'issue 15615 -- cadrage GameTheory reecrit en 4 fournées d'audit (114 carnets mesurés)
    b5dbc1b0f3f9 docs(ledger): l'issue 18058 -- premiere reecriture appliquee du cadrage granulaire
    957492b53b72 audit(tools): detecteur cadrage granulaire + recension pilote
    $ git log origin/main --oneline -- scripts/audit/detect_granular_cadrage.py
    957492b53b72 audit(tools): detecteur cadrage granulaire + recension pilote
    

    PRs citées, toutes MERGED :

    $ gh pr view 17385 -> MERGED 2026-09-24T13:31:47Z  mergeCommit 957492b53b72
    $ gh pr view 18382 -> MERGED 2026-09-29T21:53:17Z  mergeCommit b5dbc1b0f3f9
    $ gh pr view 18988 -> MERGED 2026-10-03T18:27:49Z  mergeCommit 02bca8e9de92
    

    Critère 2, réécritures effectivement appliquées (body) :

    $ gh issue view 15615 --json body  -> commence par « > **Cadrage réécrit au 2026-10-03** (fournées d'audit) » + table A/B/C/D
    $ gh issue view 18058 --json body  -> commence par « > **Cadrage révisé au 2026-09-29** (fournées par famille) »
    $ gh issue view 14755 --json body  -> commence par « ## Mandat user (2026-09-05) » : PAS de préfixe daté, body d'origine
    $ gh issue view 11601 --json body  -> pas de préfixe daté ; seul un commentaire ai-01 du 2026-09-11 porte le cadrage en fournées
    

    Critère 2, le trou :

    $ gh issue view 14926 --json state,title
    state = OPEN ; updatedAt = 2026-10-07T02:29:04Z
    $ gh issue view 14926 --json body  (grep "une PR par")
    l.5  : "... la migration des 8 consommateurs runtime (... une PR par carnet ou groupe homogene)."
    l.59 : "4. **Une PR par notebook ou par groupe homogene, avec re-execution reelle**"
    

    Critère 3, issue nommée comme non prête : gh issue view 15035 --json state,title -> OPEN, « EPIC, Audit Astra #3 (2026-09-07) : 10 defauts verifies sur le parcours GenAI ».

    Critère 4, drainage des 13 PRs fondatrices : interrogation gh pr view <N> --json state,mergedAt sur 15464, 15465, 15466, 15473, 15494, 15501, 15515, 15524, 15526, 15528, 15529, 15530, 15533 -> 12 MERGED le 2026-09-11, 1 CLOSED (15473, merged=null). 13/13 hors état « open ».

    Le champ comments-reviewed: 8 est le compte exact au moment de la rédaction.

  14. jsboige commented on Oct 9, 2026

    @jsboige
    Owner

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-ai-01:CoursIA-2
    issue: 15573
    verdict: KEEP
    acceptance:

    Lot D (#18140), lane myia-ai-01:CoursIA-2.

    KEEP : umbrella meta volontairement multi-tranches ; les criteres 1, 3, 4 sont couverts, mais le critere 2 reste ouvert — le hit de recension #14926 est vivant et son cadrage par-item n'a pas ete reecrit en fournnees (le prefixe date du 2026-10-06 mesure l'etat, il ne reecrit pas le cadrage). Le residu followup #14926 nomme cette issue ouverte.

  15. jsboige commented on Oct 9, 2026

    @jsboige
    Owner

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-ai-01:CoursIA-2
    issue: 15573
    verdict: KEEP
    acceptance:

    Lot D (#18140), lane myia-ai-01:CoursIA-2.

    KEEP : umbrella meta volontairement multi-tranches ; les criteres 1, 3, 4 sont couverts, mais le critere 2 reste ouvert — le hit de recension #14926 est vivant et son cadrage par-item n'a pas ete reecrit en fournnees (le prefixe date du 2026-10-06 mesure l'etat, il ne reecrit pas le cadrage). Le residu followup #14926 nomme cette issue ouverte.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions