Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .claude/skills/coordinate/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,9 @@ Les phases ci-dessous s'executent sous le budget defini par la section `## Budge

**Pourquoi** : exiger READY pour `exit 0` faisait dependre le **droit de lire** de l'**etat de mergeabilite**, donc ai-01 ne pouvait ouvrir que les PRs qui allaient deja bien — jamais les plus vieilles, qui sont vieilles *parce que* bloquees. Ca poussait aussi l'adjoint a ecrire READY pour seulement rendre son travail visible, ce qui a produit un faux `b0: clear` **mesure** sur une PR portant 3 findings HIGH ouverts (#16160).

**Une seule identite est neutre** : `myia-ai-01`, et uniquement pour les surfaces qu'elle ecrit **apres** le dossier. Sans ca, le geste que le gate autorise — lire la PR, puis lever sa propre reserve — perime le dossier que le gate exige, et une PR bloquee par la seule reserve du coordinateur ne peut jamais se merger sans un aller-retour complet. Une surface de **tout autre auteur**, ou une surface `myia-ai-01` **anterieure** au dossier, perime toujours.
**Deux identites sont neutres** apres le dossier, et seulement apres : `myia-ai-01` et le login partage `jsboige` (#16883, `_is_own_later_act` dans `scripts/check_adjoint_prevalidation.py`). Un **commentaire** de l'une ou l'autre, poste apres le dossier, ne le perime pas. Une **review** ne le laisse intact que si elle ne pose aucune reserve (#17039). Sans ca, le geste que le gate autorise — lire la PR, puis lever sa propre reserve — perimerait le dossier que le gate exige. Une surface de **tout autre auteur**, ou une surface **anterieure** au dossier, perime toujours.

**Consequence** : `jsboige` est aussi le login de toutes les lanes et du user. Le gate ne voit donc pas un commentaire `jsboige` poste apres le dossier, pas meme un nit user. C'est B.0 (`check_unaddressed_nits.py`) qui l'attrape : son `rc=0` reste exige avant tout merge, dossier READY ou pas.

Le bloc `[ADJOINT PREFLIGHT]` est genere par `python scripts/check_adjoint_prevalidation.py <PR> --template [--lane <machine:workspace>]`, puis complete par la lane emettrice -- **qui rend son PROPRE nom** : un dossier sous un nom d'emprunt defait le refus d'auto-attestation. Le compte des commentaires exclut le commentaire-dossier lui-meme. **Interdit de contourner le gate par un sous-agent, une lecture API directe ou un ancien dossier d'inbox.**
2. **Exploiter les verdicts deja poses** : `[Hermes] COMMENT_WITH_CONCERNS` (prefixe de `reviews[].body`), `EXEC_PROVED` / `STRUCTURAL_ONLY` / `SUSPECT_REGRESSION` (body). Tout finding NanoClaw suit [audit-reassessment.md](../../rules/audit-reassessment.md) avant fix (~60 % de FP).
Expand Down
Loading