variation-protocol.md §3 et variation_light_cap.py ne disent pas la meme chose sur un MED/guard consecutif a un LIGHT/guard. La regle laisse passer, l'organe bloque -- et c'est l'organe qui decide.
Les deux textes
La regle (.claude/rules/variation-protocol.md, G-VAR-3) :
Ban absolu sur les genres LIGHT (guard · ledger · docs · readme · test) : bloque des 2. Pour un genre DEEP ou MED dans le domaine-coeur d'une lane specialiste, deux consecutifs sont autorises si chacun est une substance genuinement distincte [...] Tell decisif : le litmus LIGHT -- generable en scannant l'instance d'a-cote -> bloque meme sous une etiquette DEEP.
Deux phrases qui se contredisent sur le cas MED/guard : la premiere l'interdit par le NOM du genre, la seconde l'autorise par le LITMUS. Le tell explicite (« bloque meme sous une etiquette DEEP ») ne serait pas ecrit si le nom du genre suffisait -- il n'a de sens que si le tier compte.
L'organe (scripts/variation_light_cap.py:591) tranche par le nom, sans regarder le tier :
LIGHT_GENRES = frozenset({"docs", "readme", "guard", "ledger", "test"})
Consequence : un MED/guard genuinement distinct est bloque comme un LIGHT/guard scan-generable, et la seule sortie est un [G-VAR-3 OVERRIDE] du coordinateur.
Ce que ca coute, mesure
Sur le cycle du 2026-09-02, la lane myia-po-2026:CoursIA a du escalader deux fois pour deux grains que la regle autorisait :
| PR |
tag |
predecesseur reel |
verdict organe |
verdict litmus |
| #14330 |
MED/guard |
#13869 LIGHT/guard |
BLOQUE |
passe (+176/-3, differentiel sur 264 corps) |
| #14322 |
MED/guard |
#13869 LIGHT/guard |
bloquera au recalcul |
passe (classe de FP distincte) |
Les deux ajoutent une position de detection a l'organe qui garde B.0 lui-meme. Le predecesseur, lui, est une correction de regex _LANE_RE -- generable en serie, LIGHT a juste titre. L'organe ne voit pas la difference.
Deux overrides poses le meme jour pour la meme cause n'est pas de l'arbitrage, c'est un symptome.
Le choix a faire est editorial, pas technique
Trois issues possibles, et aucune ne doit etre prise par une lane seule (tout ajout ou modification de .claude/rules/ passe par sign-off user, CLAUDE.md §A) :
- L'organe suit la regle : rendre
is_light_genre tier-conscient -- un genre de LIGHT_GENRES declare DEEP/MED n'est plus soumis au ban absolu, seulement au litmus (qui reste, lui, non mecanisable et donc porte par le coordinateur au merge-gate).
- La regle suit l'organe : retirer la seconde phrase de G-VAR-3 et assumer que
guard/ledger/docs/readme/test sont bannis en adjacence quel que soit le tier. L'override reste alors la voie nominale, et il faut l'ecrire comme telle plutot que comme une exception.
- Statu quo assume : garder l'ecart et documenter que l'override est le mecanisme attendu pour les lanes specialistes du harnais.
Ma preference, non decisoire : (1). L'attribut que la regle rend decisif est le litmus, et le litmus n'est pas le nom du genre -- c'est precisement ce que dit « bloque meme sous une etiquette DEEP ». Mais (1) affaiblit un garde, et affaiblir un garde se decide en haut, pas en passant.
Ce que ce ticket ne demande pas
Pas de retag des PRs concernees : le verdict de l'organe l'interdit lui-meme (« ne retaguez pas le meme travail »), et ce serait du blanchiment -- le travail EST un grain guard.
Constate en tranchant #14330 et #14322 le 2026-09-02.
variation-protocol.md§3 etvariation_light_cap.pyne disent pas la meme chose sur unMED/guardconsecutif a unLIGHT/guard. La regle laisse passer, l'organe bloque -- et c'est l'organe qui decide.Les deux textes
La regle (
.claude/rules/variation-protocol.md, G-VAR-3) :Deux phrases qui se contredisent sur le cas
MED/guard: la premiere l'interdit par le NOM du genre, la seconde l'autorise par le LITMUS. Le tell explicite (« bloque meme sous une etiquette DEEP ») ne serait pas ecrit si le nom du genre suffisait -- il n'a de sens que si le tier compte.L'organe (
scripts/variation_light_cap.py:591) tranche par le nom, sans regarder le tier :Consequence : un
MED/guardgenuinement distinct est bloque comme unLIGHT/guardscan-generable, et la seule sortie est un[G-VAR-3 OVERRIDE]du coordinateur.Ce que ca coute, mesure
Sur le cycle du 2026-09-02, la lane
myia-po-2026:CoursIAa du escalader deux fois pour deux grains que la regle autorisait :MED/guardLIGHT/guardMED/guardLIGHT/guardLes deux ajoutent une position de detection a l'organe qui garde B.0 lui-meme. Le predecesseur, lui, est une correction de regex
_LANE_RE-- generable en serie,LIGHTa juste titre. L'organe ne voit pas la difference.Deux overrides poses le meme jour pour la meme cause n'est pas de l'arbitrage, c'est un symptome.
Le choix a faire est editorial, pas technique
Trois issues possibles, et aucune ne doit etre prise par une lane seule (tout ajout ou modification de
.claude/rules/passe par sign-off user, CLAUDE.md §A) :is_light_genretier-conscient -- un genre deLIGHT_GENRESdeclareDEEP/MEDn'est plus soumis au ban absolu, seulement au litmus (qui reste, lui, non mecanisable et donc porte par le coordinateur au merge-gate).guard/ledger/docs/readme/testsont bannis en adjacence quel que soit le tier. L'override reste alors la voie nominale, et il faut l'ecrire comme telle plutot que comme une exception.Ma preference, non decisoire : (1). L'attribut que la regle rend decisif est le litmus, et le litmus n'est pas le nom du genre -- c'est precisement ce que dit « bloque meme sous une etiquette DEEP ». Mais (1) affaiblit un garde, et affaiblir un garde se decide en haut, pas en passant.
Ce que ce ticket ne demande pas
Pas de retag des PRs concernees : le verdict de l'organe l'interdit lui-meme (« ne retaguez pas le meme travail »), et ce serait du blanchiment -- le travail EST un grain
guard.Constate en tranchant #14330 et #14322 le 2026-09-02.