Repository navigation
fix(ci,#15545): exempter la fixture de contrôle positif du piège symétrique du denominator check - #15870
Conversation
…trique `Shebang + dry-run advisory` echoue sur `main` lui-meme, et donc sur chaque PR, depuis 6c903ed. La cause n'est pas une regression : ce sont deux organes dont les contrats se contredisent sur un meme fichier. - `slides-composition-advisory.yml` EXIGE la fixture a exactement `slides/_composition-control/slides.md` (CTRL_DIR, copie slides.md -> dev.md pour armer un defaut HORS_CANVAS deterministe) et l'exclut de sa propre decouverte par son nom (`-not -path '*/_composition-control/*'`). - `build_advisory.sh check` a un piege symetrique (#8929) qui refuse qu'un dir hors convention NN/SN porte un `slides.md` -- invisible a la decouverte. Le controle positif d'un organe etait donc le rouge permanent de l'autre. L'exemption est reciproque et NOMMEE : un basename exact, pas un glob `_*`. Un dir prefixe `_` portant un VRAI deck doit continuer a rougir -- c'est le trou que #8929 a ferme, et un glob le rouvrirait gratuitement. Mesure, controle negatif inclus (SLIDES_DIR sur un arbre jetable) : - fixture seule exemptee -> rc 0 (PASS) - + un autre dir non-convention portant un deck -> rc 1 (FAIL, #8929 tenu) - depot reel apres correctif -> rc 0, 17 dirs / 20 decks See #15545, #8929, #8817 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
|
Trivial-diff advisory (#15740, non bloquant). |
…'extraction aussi (#15873) _extract_line_candidates cherchait le mot de portee en sous-chaine, alors que _has_strong_scope() fait le meme test en mot entier depuis #11800 (frontiere \b, pour « inchanges ») et #12718 (lookbehind, pour « out-of-scope »). Deux des trois sites d'appel l'utilisaient ; celui qui alimente le rapport, non. Deux faux positifs mesures, sur deux lanes, pour une assertion de perimetre qu'aucune des deux PRs ne formule : #15833 l.45 -- 'scope' dans « loadscope » (marqueur « uniquement ») #15846 l.44 -- 'change' dans « changer » (marqueur « seulement ») Apres correctif : 0 et 0, et #15846 conserve sa vraie declaration de perimetre (l.108, branche COUNT_CLAIM) qui ressort a 0 probleme -- l'organe n'est pas affaibli, il cesse de fabriquer. #15870 est le controle negatif : 0 avant comme apres. 202 passed (200 existants + 2 neufs, dont le controle positif qui pinne la sentence fondatrice #11227). See #15833, #15846. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Grain: MED/guard — lane myia-ai-01:CoursIA — prev: MED/guard #15761
Le défaut : deux organes, une fixture, un rouge permanent
Shebang + dry-run advisoryéchoue surmainlui-même, et donc sur chaque PR ouverte, depuis6c903ed6af. Ce n'est pas une régression d'une lane : ce sont deux organes dont les contrats se contredisent sur le même fichier.slides/_composition-control/slides.mdslides-composition-advisory.yml(#15545)CTRL_DIR=slides/_composition-control, copieslides.md→dev.mdpour armer un défautHORS_CANVASdéterministe. Il l'exclut de sa propre découverte par son nom (-not -path '*/_composition-control/*',grep -v '^slides/_composition-control/')build_advisory.sh check(#8929)NN/SNne porte deslides.md— le piège symétrique, qui attrape le deck invisible à la découverteLe contrôle positif d'un organe était le rouge permanent de l'autre. Aucun des deux n'a tort isolément ; il manquait la réciproque de l'exclusion que #15545 s'accorde déjà à lui-même.
Le correctif, et pourquoi il est étroit
Une exemption nommée par basename exact, jamais un glob
_*. Un dir préfixé_qui porterait un vrai deck doit continuer à rougir — c'est précisément le trou que #8929 a fermé, et un glob le rouvrirait gratuitement.Mesure — le contrôle négatif, pas seulement le vert
Un motif de détection se valide par ses faux négatifs. Trois passes sur un arbre jetable via
SLIDES_DIR, plus le dépôt réel :_composition-controlseulerc=0,Denominator check: PASSrc=1,ERROR: '_zz-vrai-deck-cache' porte un deck ... #8929rc=0,17 dirs / 20 decks, 17/17 couvertsLa deuxième ligne est celle qui compte : elle prouve que l'exemption n'a pas désarmé le piège, elle l'a rendu compatible avec la fixture d'un autre organe.
Portée
Shebang + dry-run advisoryest non bloquant : ce correctif ne débloque mécaniquement aucune PR. Il retire un rouge permanent que trois lanes ont déjà cité ce cycle comme « rouge imputé à la base » dans leur justification de--ignore-red. Un advisory rouge en permanence n'est plus un signal : c'est du bruit qui apprend à ignorer la colonne.Genre :
guard(le script porte son propre statut d'échec, consommé par un job) — classe META, ce grain ne tient pas le plancher G-VAR-1 de mon cycle, et je le déclare comme tel.See #15545, #8929, #8817
🤖 Generated with Claude Code