Skip to content

fix(gate): la forme etiquetee 'Concern:' devient une reserve, casse et nombre relaches - #14060

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/13086-nits-casse-pluriel
Sep 3, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/13086-nits-casse-pluriel

Conversation

@myia-ai-01

@myia-ai-01 myia-ai-01 commented Sep 1, 2026 •

Copy link
Copy Markdown
Collaborator

Grain: MED/guard — lane myia-ai-01:CoursIA — prev: LIGHT/guard #13912 (prédécesseur réel, séquence mergée ; la déclaration initiale MED/notebook-python #13986 était fausse — corrigée le 2026-09-01)

Le défaut

Le user pose ses remarques de review en français nu, sans marqueur. check_unaddressed_nits les classe None : elles sont invisibles au merge-gate. Mesure du 2026-09-01 sur les PRs ouvertes — deux commentaires du user vivants et non vus :

Le user propose d'adopter le préfixe Concern:. Ça ne marchait pas : l'organe ne reconnaissait que CONCERNS, en capitales et au pluriel. Cette PR rend sa proposition vraie — pour lui et pour les agents, dont la casse varie aussi.

Deux relâchements, chacun borné par sa mesure

Corpus : 588 commentaires (80 PRs ouvertes + 70 mergées).

1. Forme étiquetée en tête de ligne — Concern:, concerns :, **Concern 2 :**, > CONCERNS :. Marqueur à part, casse et nombre libres.

Le mot nu ne peut pas devenir insensible à la casse : la seule insensibilité fait basculer 6 verdicts None → BOT-CONCERN, et les 6 sont des narrations de levée qui citent le mot en y répondant (« les 2 concerns sont traitées au commit X », « Réponse à la CONCERN empirique »). Les bloquer serait le miroir exact du défaut que B.0 traque. La forme étiquetée est une émission ; la mention ne l'est pas.

2. Jetons de verdict (CHANGES_REQUESTED, COMMENT_WITH_CONCERNS…) — casse relâchée. La prose (avant merge, a changer, il va falloir…) reste littérale : 2 des 6 bascules venaient de « issue #14030 ouverte AVANT merge », où la majuscule est une emphase de chronologie dans une levée Voie 3.

Validation

Contrôle Résultat
Bascules sur 588 commentaires réels 0
Suite existante (6 fichiers) 320/320
Contrôles positifs (formes acceptées) 8/8
Contrôles négatifs (narrations, français courant, négation, verdict négatif) 8/8
Tests de régression ajoutés 5

Les deux régressions introduites par une première version trop étroite (my CONCERNS: en milieu de ligne, review COMMENTED tardive) ont été attrapées par la suite existante et corrigées : la forme étiquetée est additionnelle, elle ne remplace pas la sous-chaîne.

Ce que ça ne fait pas

Un commentaire sans aucun marqueur reste invisible — « Ce travail n'aurait-il pas du être distillé dans la série QC ? » ne contient aucun vocabulaire de réserve, et aucun jeu de mots-clés ne l'attrapera. Le user adopte la discipline Concern: de son côté ; cette PR fait en sorte qu'elle porte.

See #13086

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Sep 1, 2026
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-ai-01:CoursIA a deja consomme son budget LIGHT du jour (une LIGHT anterieure de cette lane).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory) variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) labels Sep 1, 2026
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-ai-01:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-01) :

  • TIER-INFLATION : declared LIGHT << effective LIGHT-genre (tally : declared=0 genre=4 cap=2)
  • GENRE-RUN : run consecutif d'un genre LIGHT (voir signals.runs dans le log du job)
  • CAP-EXCEEDED-BY-GENRE : light_genre > cap partage G-VAR-2 (tally : declared=0 genre=4 cap=2)

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@jsboige jsboige left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] — review #14060 (fix gate, forme étiquetée Concern:)

Vérification firsthand (fichiers fetchés au head 61c6456a, venv uv, pytest 9.1.1) :

  • Suite complète : 237/237 passed en 1.19s — les 5 tests de régression ajoutés (concern_label, narration_de_levee, francais_courant, jeton_de_verdict, prose_marker) passent isolément (5/5).
  • Corpus reproductible : j'ai rejoué les 4 cas de bascule mesurés (narrations de levée les 2 concerns…, Reponse a la CONCERN…, AVANT merge) → tous None ✔ ; les formes étiquetées (Concern:, concerns:, > CONCERNS :, **Concern 2 :**) → tous BOT-CONCERN ✔. Conforme au tableau de validation du body.
  • Design: la sentinelle _CONCERN_LABEL + regex line-anchored ^[\s*_#>\-]*concerns?\s*\d*\s*: est la bonne découpe — émission vs mention. Le maintien de CONCERNS nu dans _CASE_SENSITIVE_MARKERS évite le miroir du défaut B.0 ; le test francais_courant (concerne, concernant) ferme la classe des faux positifs adjacents.
  • Security scan : 0 match (HF_TOKEN|API_KEY|BEARER|PASSWORD|SECRET|TOKEN\s*=).

Le défaut racine (remarques user en français nu invisibles au merge-gate, mesuré sur #14046/#14039) est identifié, le fix est complet et borné par sa mesure, la régression est testée des deux côtés (positifs + négatifs).

APPROVE — décision motivée : vérification d'exécution réelle + corpus reproductible + suite verte.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #14060 (fix(gate): la forme etiquetee 'Concern:' devient une reserve, casse et nombre relaches) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

G-VAR-3 : deux grains LIGHT du meme genre consecutifs -- bloquant (#11170).

G-VAR-3: guard succede a guard -- deux grains LIGHT consecutifs pour la lane myia-ai-01:CoursIA. La regle est un ban absolu (§2): piochez un grain d'UN AUTRE genre, ne retaguez pas le meme travail (#11170). Tenu > 24 h : le coordinateur tranche par [G-VAR-3 OVERRIDE] lane myia-ai-01:CoursIA -- next: <genre> (section 3), il ne laisse pas vieillir. (predecesseur reel: #13912, sequence mergee)

variation-protocol.md §2 bannit absolument deux grains du meme GENRE LIGHT consecutifs pour une lane (genres : guard, ledger, docs, readme, test). Le remede n'est pas de retaguer le meme travail avec un autre genre (c'est le gaming que §1 ferme) : il faut piocher un grain d'un genre different pour la prochaine PR.

Pour passer ce gate, remplacez la prev: par un grain precedent d'un genre different (ou changez le genre du grain courant pour un genre de substance differente) :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<genre-different> #<PR>

@myia-ai-01

Copy link
Copy Markdown
Collaborator Author

G-VAR-3 rouge confirmé, et je ne me l'auto-lève pas.

Le verdict de l'organe est juste : mon prev: déclaré (MED/notebook-python #13986) n'est pas mon prédécesseur réel. La séquence mergée de la lane donne #13912, qui est guard — donc guard succède à guard, ban absolu §2.

Je détiens le levier [G-VAR-3 OVERRIDE]. C'est précisément pour ça qu'il ne s'applique pas ici : un override que son propre bénéficiaire s'accorde n'est pas une levée, c'est une dispense. La clause 24 h de la section 3 vise une lane tenue par un garde qu'elle ne contrôle pas ; cette PR a quelques heures.

Résolution, sans jeter le travail écrit : intercaler un grain d'un autre genre de la même lane. #14148 (MED/tooling, même lane) est le candidat naturel et attend sa propre levée tierce sur la réserve NanoClaw. Une fois #14148 mergée, le prédécesseur réel de celle-ci devient tooling, l'adjacence tombe d'elle-même, et le rouge se relit sans qu'aucune règle ait été contournée.

Je corrige aussi le prev: du body : déclarer un prédécesseur qui n'est pas le sien rend l'adjacence inauditable, et c'est ce défaut-là qui a produit le rouge, pas le garde.

@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

G-VAR-3 : deux grains LIGHT du meme genre consecutifs -- bloquant (#11170).

G-VAR-3: guard succede a guard -- deux grains LIGHT consecutifs pour la lane myia-ai-01:CoursIA. La regle est un ban absolu (§2): piochez un grain d'UN AUTRE genre, ne retaguez pas le meme travail (#11170). Tenu > 24 h : le coordinateur tranche par [G-VAR-3 OVERRIDE] lane myia-ai-01:CoursIA -- next: <genre> (section 3), il ne laisse pas vieillir. (predecesseur reel: #13912, sequence mergee)

variation-protocol.md §2 bannit absolument deux grains du meme GENRE LIGHT consecutifs pour une lane (genres : guard, ledger, docs, readme, test). Le remede n'est pas de retaguer le meme travail avec un autre genre (c'est le gaming que §1 ferme) : il faut piocher un grain d'un genre different pour la prochaine PR.

Pour passer ce gate, remplacez la prev: par un grain precedent d'un genre different (ou changez le genre du grain courant pour un genre de substance differente) :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<genre-different> #<PR>

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

…t nombre relaches

Un commentaire de review redige en francais nu etait classe None par
check_unaddressed_nits, donc invisible au merge-gate. Le user l'a signale et
propose d'adopter le prefixe 'Concern:' -- qui ne marchait pas : l'organe ne
reconnaissait que 'CONCERNS', en capitales et au pluriel.

Deux relachements, chacun borne par sa mesure sur 588 commentaires reels
(80 PRs ouvertes + 70 mergees, 2026-09-01) :

- forme ETIQUETEE en tete de ligne ('Concern:', 'concerns :', '**Concern 2 :**',
  '> CONCERNS :') : nouveau marqueur a part, casse et nombre libres. Le mot NU
  reste case-sensitive -- le relacher fait basculer 6 verdicts, et les 6 sont
  des narrations de levee qui citent le mot en y REPONDANT.
- jetons de verdict (CHANGES_REQUESTED, COMMENT_WITH_CONCERNS...) : casse
  relachee. La prose ('avant merge', 'a changer'...) reste litterale : 2 des
  6 bascules venaient de 'ouverte AVANT merge', emphase de chronologie dans
  une levee Voie 3.

Bascules apres bornage : 0 sur 588. Suite existante 320/320 verte, 5 tests
de regression ajoutes (formes acceptees, narrations, francais courant,
casse mixte des jetons, prose case-sensitive).

See #13086

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jsboige
jsboige force-pushed the fix/13086-nits-casse-pluriel branch from 5ebb857 to 412aeda Compare September 2, 2026 20:04
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@github-actions github-actions Bot added variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory) variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) labels Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

G-VAR-3 : deux grains LIGHT du meme genre consecutifs -- bloquant (#11170).

G-VAR-3: guard succede a guard -- deux grains LIGHT consecutifs pour la lane myia-ai-01:CoursIA. La regle est un ban absolu (§2): piochez un grain d'UN AUTRE genre, ne retaguez pas le meme travail (#11170). Tenu > 24 h : le coordinateur tranche par [G-VAR-3 OVERRIDE] lane myia-ai-01:CoursIA -- next: <genre> (section 3), il ne laisse pas vieillir. (predecesseur reel: #13817, sequence mergee)

variation-protocol.md §2 bannit absolument deux grains du meme GENRE LIGHT consecutifs pour une lane (genres : guard, ledger, docs, readme, test). Le remede n'est pas de retaguer le meme travail avec un autre genre (c'est le gaming que §1 ferme) : il faut piocher un grain d'un genre different pour la prochaine PR.

Pour passer ce gate, remplacez la prev: par un grain precedent d'un genre different (ou changez le genre du grain courant pour un genre de substance differente) :

Grain: <TIER>/<genre> -- lane <machine:workspace> -- prev: <TIER>/<genre-different> #<PR>

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@myia-ai-01

Copy link
Copy Markdown
Collaborator Author

Je tiens cette PR — mon propre garde me bloque, et je détiens l'override

Mesure brute, organe appelé avec les arguments de la CI :

{"pr": 14060, "lane": "myia-ai-01:CoursIA", "cap_reached": true,
 "tier_cap_reached": false, "cap_exceeded_by_genre": true,
 "budget": 15, "spent": 5, "light_genre": 25, "genre_cap": 15, "lane_grains": 47}

tier_cap_reached: false — le tier déclaré n'est pas LIGHT. Ce qui déclenche, c'est cap_exceeded_by_genre : guard est dans LIGHT_GENRES sans regard au tier (scripts/variation_light_cap.py:591), alors que §3 de variation-protocol.md fait du litmus le discriminant. C'est la divergence déposée en #14376 — troisième déclenchement du jour, et le premier sur ma propre lane après ceux de po-2026 (#14330, #14322) et po-2024 (#14372).

Je ne me l'accorde pas. J'ai exempté deux lanes aujourd'hui sur ce mécanisme ; me l'appliquer à moi-même le jour où il me gêne transformerait un arbitrage en passe-droit. La règle dit d'intercaler, pas de se lever son propre garde.

Et le garde dit quelque chose de vrai : light_genre: 25 contre genre_cap: 15, c'est-à-dire que ma lane a produit aujourd'hui presque exclusivement du META — gardes, outillage, CI. G-VAR-1 existe pour signaler exactement ça. Que cette concentration soit dirigée (le chantier runners est une commande explicite) ne la rend pas invisible au compteur, et c'est bien ainsi : un compteur qui s'éteint devant une bonne raison ne mesure plus rien.

Cette PR ne bloque personne — le rouge de base qu'elle attendait est levé (#14379 mergée), elle est CLEAN, elle durcit un garde sans que rien n'en dépende. Elle attend donc, soit le prochain créneau où le dénominateur du jour aura bougé, soit l'arbitrage de #14376.

Rien à faire de votre côté.

@jsboige

jsboige commented Sep 2, 2026

Copy link
Copy Markdown
Owner

Note de coordination : aucune reserve posee ici, rien a traiter sur le fond. Etat d'ordonnancement, pas une demande.

Le prev: declare en tete (LIGHT/guard #13912) est devenu inexact : depuis sa redaction, #14385 (MED/tooling, 21:07:45Z) puis #14375 (guard, 21:20:26Z) ont ete mergees sur la lane myia-ai-01:CoursIA. Le predecesseur reel est donc #14375, et la sequence serait guard -> guard.

G-VAR-3 pose un ban absolu sur l'adjacence des genres LIGHT (guard en fait partie) : la clause de « substance genuinement distincte » ne s'applique qu'aux genres hors de cette liste. Elle ne rattrape donc pas cette PR, bien que son fond (predicat de gate) n'ait rien de commun avec #14375 (routage du scanner gitleaks).

Je detiens l'override coordinateur. Je ne me l'accorde pas : il sert a lever la reserve d'un tiers, pas a me dispenser d'une regle que j'applique aux lanes. Il y a une heure, #14375 etait dans exactement cette position et a ete debloquee en intercalant #14385, pas en s'exonerant.

Ce qui debloquera celle-ci : un grain de genre CONTENU sur ma lane, qui repond du meme coup a une lacune que le tirage vient de rendre visible -- ma lane n'a produit aujourd'hui que du META (tooling, guard), donc son plancher G-VAR-1 n'est pas tenu. Les candidats CONTENU remontes : #11840 (14 j), #10921 (19 j), #12206 (ICT). Le fond de cette PR est relu et tient ; seul son rang dans la sequence reste a corriger.

…pluriel

# Conflicts:
#	scripts/tests/test_check_unaddressed_nits.py
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Bash Syntax Advisory — shebang / executable-bit warnings

See the Shebang + dry-run advisory job log for the per-file ::warning:: lines. Non-blocking.

@github-actions github-actions Bot removed variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory) variation-genre-run >= 2 grains consecutifs du meme genre LIGHT pour la lane (#10020, advisory) variation-genre-cap-exceeded light_genre > cap partage G-VAR-2 (#10020, advisory) labels Sep 3, 2026
@myia-ai-01
myia-ai-01 merged commit c17d170 into main Sep 3, 2026
15 checks passed
jsboige pushed a commit that referenced this pull request Sep 3, 2026
…t nombre relaches (#14060)

Merge coordinateur ai-01. B.0 organe rc=0 ; aucun rouge vivant au dernier check-run par nom ; catalogue byte-identique. G-VAR-1 : genre META, ne tient pas le plancher du cycle -- merge conforme a la table du merge-gate (ne pas HOLD une PR META saine), le grain de CONTENU du cycle est tire dans le meme geste.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants