Repository navigation
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
Activity
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, sinonSee/Closesdu 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
- notebooks(genai,ml,symbolicai): mettre a jour les modeles obsoletes (124 fichiers, ~657 refs) plutot que de les re-executer #14755 — le corps énumère « 124 fichiers touchés. Répartition par série : GenAI 78, ML 16,
SymbolicAI 15, QuantConnect 2, Config 2, Sudoku 1 » sans jamais dire ce qui constitue une PR. Une
répartition par série lue comme une liste de travail donne 124 PRs ; lue comme un plan de fournées
elle en donne six. Rien dans le corps ne tranchait — d'où les 8 PRs à 1 fichier déjà ouvertes. - [umbrella] #11224bis: densité QC notebooks round 2 (1200→2000+) #11601 — « Pool restant (189 notebooks 1200-2000, à trier par pertinence pédagogique) », suivi
d'une liste de notebooks nommés un par un. Le grain implicite est le notebook.
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
- notebooks(genai,ml,symbolicai): mettre a jour les modeles obsoletes (124 fichiers, ~657 refs) plutot que de les re-executer #14755 — le corps énumère « 124 fichiers touchés. Répartition par série : GenAI 78, ML 16,
- addeddocumentationImprovements or additions to documentationImprovements or additions to documentation
on Sep 12, 2026 [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.
[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
- Tell c.13022 strict § paths: — clause
- added a commit that references this issue
on Sep 24, 2026 [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.
- added a commit that references this issue
on Sep 29, 2026 [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[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.
- added a commit that references this issue
on Oct 3, 2026 [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.pydansdocs/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 pilotePRs 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 02bca8e9de92Critè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éesCritè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,mergedAtsur 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: 8est le compte exact au moment de la rédaction.- "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
[CLOSURE PREFLIGHT]
schema: 1
lane: myia-ai-01:CoursIA-2
issue: 15573
verdict: KEEP
acceptance:- critere 1 : recenser mecaniquement les issues a cadrage par item, en citant la phrase de cadrage et le compte de PRs ouvertes -> commentaire myia-ai-01 2026-09-11T09:41:59Z (table mecanique sur 53 PRs ouvertes + 195 mergees, mediane de fichiers) + docs/ledgers/15573-cadrage-granulaire.md:41 (11 hits nominatifs avec phrase citee) + scripts/audit/detect_granular_cadrage.py via PR audit(tools,#15573): detecteur cadrage granulaire + recension pilote #17385 MERGED 2026-09-24T13:31:47Z
- critere 2 : reecrire chacune en fournnees respectant G.4 -> PARTIEL : audit(notebooks): 63 nombres de prose sans sortie qui les porte, 17 notebooks (audit du 27/09) #18058 reecrite (PR docs(ledger,#15573): #18058 -- premiere reecriture appliquee du cadrage granulaire + disposition #17550 #18382 MERGED 2026-09-29T21:53:17Z, prefixe date « Cadrage revise au 2026-09-29 ») et GameTheory(#14944): passe de coherence de gradation de la serie apres renum — la sequence refermee n'a pas la gradation des premiers numeros #15615 reecrite (PR docs(ledger,#15573): #15615 — cadrage GameTheory réécrit en 4 fournées d'audit (114 carnets mesurés) #18988 MERGED 2026-10-03T18:27:49Z, 4 fournnees A-D) ; MAIS claudish: la cle cliente du proxy n'a aucun organe de propagation — CLAUDISH_PROXY_KEY absent de SECRET_KEYS #14926 OUVERTE : son body porte toujours « Une PR par notebook ou par groupe homogene » (l.59, verifie firsthand 2026-10-09) et le prefixe du 2026-10-06 (l.5) le reaffirme comme consigne — ledger:78 la liste comme restant a reecrire
- critere 3 : nommer celles qui ne s'y pretent pas et dire pourquoi -> EPIC — Audit Astra #3 (2026-09-07) : 10 defauts verifies sur le parcours GenAI + correction du protocole TP #15035 (EPIC Audit Astra n°3) nommee non-pretable par le commentaire ai-01 du 2026-09-11 et le ledger section « Verdict » (filles = defauts distincts d'un audit tiers, regroupement violerait G.4)
- critere 4 : les PRs deja ouvertes ne sont pas jetees, elles se drainent au rythme du budget -> spot-check firsthand 2026-10-09 : fix(casestudies,#15457): aérer la note éditoriale mono-kernel Python (1 paragraphe 2065 c → 3 segments) #15464/docs(qc,#15457): éclater les paragraphes-murs du catalogue comparatif — tranche 1 #15515/docs(ict,#15457): aérer les paragraphes-murs de tresse-cartographie (3 murs, max 4300→1731) #15533 MERGED 2026-09-11, docs(qc,#15457): aérer les paragraphes-murs de qc-comparative-backtests #15473 CLOSED ; mesure exhaustive du preflight 2026-10-07 : 12 MERGED + 1 CLOSED sur les 13 fondatrices
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: 9
[/CLOSURE PREFLIGHT]
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 #14926nomme cette issue ouverte.[CLOSURE PREFLIGHT]
schema: 1
lane: myia-ai-01:CoursIA-2
issue: 15573
verdict: KEEP
acceptance:- critere 1 : recenser mecaniquement les issues a cadrage par item, en citant la phrase de cadrage et le compte de PRs ouvertes -> commentaire myia-ai-01 2026-09-11T09:41:59Z (table mecanique sur 53 PRs ouvertes + 195 mergees, mediane de fichiers) + docs/ledgers/15573-cadrage-granulaire.md:41 (11 hits nominatifs avec phrase citee) + scripts/audit/detect_granular_cadrage.py via PR audit(tools,#15573): detecteur cadrage granulaire + recension pilote #17385 MERGED 2026-09-24T13:31:47Z
- critere 2 : reecrire chacune en fournnees respectant G.4 -> PARTIEL : audit(notebooks): 63 nombres de prose sans sortie qui les porte, 17 notebooks (audit du 27/09) #18058 reecrite (PR docs(ledger,#15573): #18058 -- premiere reecriture appliquee du cadrage granulaire + disposition #17550 #18382 MERGED 2026-09-29T21:53:17Z, prefixe date « Cadrage revise au 2026-09-29 ») et GameTheory(#14944): passe de coherence de gradation de la serie apres renum — la sequence refermee n'a pas la gradation des premiers numeros #15615 reecrite (PR docs(ledger,#15573): #15615 — cadrage GameTheory réécrit en 4 fournées d'audit (114 carnets mesurés) #18988 MERGED 2026-10-03T18:27:49Z, 4 fournnees A-D) ; MAIS claudish: la cle cliente du proxy n'a aucun organe de propagation — CLAUDISH_PROXY_KEY absent de SECRET_KEYS #14926 OUVERTE : son body porte toujours « Une PR par notebook ou par groupe homogene » (l.59, verifie firsthand 2026-10-09) et le prefixe du 2026-10-06 (l.5) le reaffirme comme consigne — ledger:78 la liste comme restant a reecrire
- critere 3 : nommer celles qui ne s'y pretent pas et dire pourquoi -> EPIC — Audit Astra #3 (2026-09-07) : 10 defauts verifies sur le parcours GenAI + correction du protocole TP #15035 (EPIC Audit Astra n°3) nommee non-pretable par le commentaire ai-01 du 2026-09-11 et le ledger section « Verdict » (filles = defauts distincts d'un audit tiers, regroupement violerait G.4)
- critere 4 : les PRs deja ouvertes ne sont pas jetees, elles se drainent au rythme du budget -> spot-check firsthand 2026-10-09 : fix(casestudies,#15457): aérer la note éditoriale mono-kernel Python (1 paragraphe 2065 c → 3 segments) #15464, docs(qc,#15457): éclater les paragraphes-murs du catalogue comparatif — tranche 1 #15515 et docs(ict,#15457): aérer les paragraphes-murs de tresse-cartographie (3 murs, max 4300→1731) #15533 MERGED le 2026-09-11 (trois PRs du lot fondateur, chacune lue a l'etat MERGED sur origin/main) ; mesure exhaustive du preflight 2026-10-07 : 12 des 13 PRs fondatrices MERGED, la treizieme retiree sans merge (volet clos, hors lot de livraison)
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: 10
[/CLOSURE PREFLIGHT]
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 #14926nomme cette issue ouverte.
Origine — la seconde moitié d'un nit user
Nit user du 2026-09-10T22:32:49Z sur la PR #15515 :
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 budgetmax(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
Hors périmètre
check_unaddressed_nits.py(tranché par mesure en check_unaddressed_nits: une reserve bloquante en prose libre, sans marqueur d'emission, rend rc=0 (#14658) #14682 : sur-accusation d'un facteur 5)..claude/rules/: un ajout de règle passe par PR + sign-off user (CLAUDE.md §A).Voir aussi