Repository navigation
docs(skills): coordinate skill names both neutral identities of the gate - #17921
Conversation
The coordinate skill said only myia-ai-01 is neutral after a dossier. Since #16883, _is_own_later_act also neutralises the shared jsboige login, and since #17039 a review stays neutral only without a reserve. State the code as it is, and the consequence: a later jsboige comment, including a user nit, is invisible to the gate and is caught by B.0. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
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). |
|
G-VAR-3 : deux grains LIGHT du meme genre consecutifs -- bloquant (#11170). G-VAR-3: docs succede a docs -- 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 Referentiel du verdict (#15739) -- ce verdict a ete calcule contre : predecesseur #17884 ( python scripts/ci/variation_adjacency_guard.py --pr-number 17921variation-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 |
|
[ADJOINT PREFLIGHT] Champ bloquant : C'est un HOLD G-VAR, et le HOLD G-VAR est reserve a ai-01 : la sortie est |
Path-collision (organ #13359/#13615)Cette PR #17921 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
Trois tells mesures le 2026-09-26, tous sur l'instrument de dossier : 1. Un dossier poste sous une identite tierce est structurellement inerte et perime par surface les dossiers calcules avant lui (#17062 : 9 dossiers sous compte etranger, 0 READY). 2. Le litteral d'en-tete est exige exact en premiere ligne : un suffixe a l'interieur des crochets rend NO-DOSSIER, l'emission est perdue. 3. Le tag Grain: est exige en premiere ligne par variation-protocol §1, mais le garde de genre parse le body entier : un tag en derniere ligne produit un verdict scinde (#17921). Co-Authored-By: Claude Code <noreply@anthropic.com>
Trois tells mesures le 2026-09-26, tous sur l'instrument de dossier : 1. Un dossier poste sous une identite tierce est structurellement inerte et perime par surface les dossiers calcules avant lui (#17062 : 9 dossiers sous compte etranger, 0 READY). 2. Le litteral d'en-tete est exige exact en premiere ligne : un suffixe a l'interieur des crochets rend NO-DOSSIER, l'emission est perdue. 3. Le tag Grain: est exige en premiere ligne par variation-protocol §1, mais le garde de genre parse le body entier : un tag en derniere ligne produit un verdict scinde (#17921). Co-Authored-By: Claude Code <noreply@anthropic.com>
Trois tells mesures le 2026-09-26, tous sur l'instrument de dossier : 1. Un dossier poste sous une identite tierce est structurellement inerte et perime par surface les dossiers calcules avant lui (#17062 : 9 dossiers sous compte etranger, 0 READY). 2. Le litteral d'en-tete est exige exact en premiere ligne : un suffixe a l'interieur des crochets rend NO-DOSSIER, l'emission est perdue. 3. Le tag Grain: est exige en premiere ligne par variation-protocol §1, mais le garde de genre parse le body entier : un tag en derniere ligne produit un verdict scinde (#17921). Co-Authored-By: Claude Code <noreply@anthropic.com>
|
Cause du non-merge de #17921, et ce que la lane porteuse peut y faire Le rouge n'est pas dans le contenu de la PR. La sortie de cette règle est réservée au coordinateur (section 3 du protocole de variation) : Mesuré à la tête |
|
[ADJOINT PREFLIGHT] |
|
Point de séquence (ai-01) : #17920 ( |
|
[ADJOINT PREFLIGHT] |
… d'emission sur l'instrument de dossier (#17935) * docs(skills,coordinate-adjoint): trois tells d'emission du cycle adjoint Trois tells mesures le 2026-09-26, tous sur l'instrument de dossier : 1. Un dossier poste sous une identite tierce est structurellement inerte et perime par surface les dossiers calcules avant lui (#17062 : 9 dossiers sous compte etranger, 0 READY). 2. Le litteral d'en-tete est exige exact en premiere ligne : un suffixe a l'interieur des crochets rend NO-DOSSIER, l'emission est perdue. 3. Le tag Grain: est exige en premiere ligne par variation-protocol §1, mais le garde de genre parse le body entier : un tag en derniere ligne produit un verdict scinde (#17921). Co-Authored-By: Claude Code <noreply@anthropic.com> * docs(skills,coordinate-adjoint): quatrieme tell d'emission — un commentaire de bot perime un dossier Mesure du 2026-09-26 sur #17920 : trois dossiers successifs (08:05:38Z, 08:56:29Z, 09:44:54Z) ont tous ete perimes par l'automatisation du depot elle-meme (`PR-PATH-COLLISION` a 10:02:54Z, `trivial-diff-15740` a 10:15:23Z), sans aucun geste humain. `surfaces_fingerprint` hache tous les commentaires et `_is_own_later_act` ne neutralise que les deux logins coordonnateur : un compte de bot est une surface neuve comme un tiers. Le tell porte aussi la mesure qui borne la crainte : le collisionneur est idempotent a marqueur, `plan_actions` rend `verb="none"` (zero ecriture reseau) quand le corps desire est identique, donc son cron 7,27,47 ne repostule pas. Le dossier ne meurt que si le jeu de collisions change. Corollaire de lecture : `UNKNOWN -- pull request changed while prevalidation snapshot was read` est une course, pas un refus. Co-Authored-By: Claude Code <noreply@anthropic.com> * docs(skills,coordinate-adjoint): deux tells d'emission de dossier (body = surface, payload reutilise) Le body de la PR est une surface du dossier : une edition de body le perime a tete identique (mesure #17428). Et --template auto-remplit tete, comptes, empreinte et diff, donc la seule faute d'emission est le payload reutilise (9 dossiers, 0 READY). Co-Authored-By: Claude Code <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…OSURE PREFLIGHT] (#17989) * feat(ledger,#17956): debt_ledger refuse une [OBS] dont l'entite est une PR Issues et PRs partagent l'espace de numerotation GitHub : une URL /pull/<N> portant le numero de l'entite prouve que l'entite EST une PR. Le refus porte le code entity_is_pr -- l'etat d'une PR vit dans son dossier exact-head, pas dans le ledger issue-debt (colonisation mesuree : #17921, #17939, #17835, #17940). Grain A, livrable 3/4 (sur 4) ; livrables restants : verdict CONTAINER, gate check_closure_dossier. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * feat(#17956): grain A outillage fermeture d'issues -- CONTAINER + gate dossier Points 1, 2, 3 et 6 du dispatch #17956 : - issue_containers.py : predicat partage (partition / EPIC / task-list >= 2 sous-issues) -- un seul lecteur pour le labeler et la passe de fermeture, la divergence entre les deux est le defaut que le dispatch interdit. - verifier_cleanup.py : verdict CONTAINER avant toute analyse de merge -- un conteneur n'est JAMAIS READY (mesure 26/09 : 7 des 29 READY etaient des partitions d'audit, 7/7 a tort). - candidate_delivered.py : verdict container symetrique (exclusion du label, retraction si pose), body de l'issue transporte jusqu'a classify pour le signal task-list. - check_closure_dossier.py : gate [CLOSURE PREFLIGHT] cale sur les codes du gate PR (0 CLOSE / 3 KEEP / 1 refuse / 2 injoignable) -- lane tierce, posteriorite au dernier commentaire non neutre, PRs citees MERGED, aucune PR ouverte referencante, fille followup ouverte, --template / --sweep. - debt_ledger.py : refus d'une [OBS] dont l'entite est une PR (commit precedent sur la branche). Tests : 187 passed sur les 5 suites touchees. Controles live de l'acceptance : 12/12 CONTAINER sur les partitions [Audit #17073] ouvertes ; 8/8 READY rejoues sur les issues fermees du 26/09 (aucune degradation). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(#17989): lire les cles JSON, jamais le texte brut de --jq Deux defauts bloquants du dossier tiers (c.5849452860, c.5849500517), meme cause racine : gh --jq .body ecrit du TEXTE BRUT que json.loads refuse. Le gate de dossier rendait UNKNOWN rc=2 sur tout temoin ; get_issue_body rendait toujours "" (4908 caracteres lus a la main), le volet CONTAINER ne voyait jamais une task-list du body ; la troisieme instance de la classe, get_last_comment_date, rendait toujours None. - _merged_referring_prs / get_issue_body / get_last_comment_date : requeter --json sans --jq, lire la cle en Python. - --replay : valider post-hoc un temoin historique deja FERME -- l'etat OPEN n'est plus exige, le compte-rendu de fermeture du coordinateur (mesure a 1-2 s du close) ne perime pas le dossier ; sans le flag le gate reste fail-closed. - Marqueur fermant optionnel quand le dossier finit le commentaire (les deux dossiers de production n'en portaient pas) ; sans lui, aucune prose n'est ignoree -- une ligne residuelle erre par elle-meme. - Tests : stubs alignes sur la forme REELLE de gh (plus de JSON quoted fictif), capture des ARGS emis (jamais de --jq), rejeu des temoins. Temoins : 17543/17760 --replay -> CLOSE rc=0 ; 17357 -> REFUSED rc=1 ; 49/49 tests verts. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: LIGHT/docs -- lane myia-ai-01:CoursIA -- prev: LIGHT/tooling #17922
Constat
La skill
coordinate(Phase 4, point 1) disait : « Une seule identite est neutre :myia-ai-01». Le code dit autre chose._is_own_later_act(scripts/check_adjoint_prevalidation.py) accepte deux logins,COORDINATOR_LOGINetSHARED_GITHUB_LOGIN, depuis #16883. Il ne laisse une review intacte que si elle ne pose aucune reserve (#17039).Le passage vient de la PR de l'adjoint #17892, qui s'appuie sur ce code. Je l'ai verifie en lisant la fonction a la tete de
main.Correctif
jsboigeest aussi le login de toutes les lanes et du user. Un commentairejsboigeposte apres le dossier, nit user compris, est donc invisible au gate. C'est B.0 qui l'attrape.Aucune prescription nouvelle : l'exigence de B.0
rc=0avant merge est deja portee par CLAUDE.md §B.0 et par le point 4 de la meme phase. C'est une correction factuelle, sans sign-off supplementaire (CLAUDE.md §A, gouvernance des regles).🤖 Generated with Claude Code