Skip to content

Docs(secretary): trois tells de mesure du cycle 33 (timeout d'un job enfant, diff propre d'une PR, B.0 lit le glyphe) - #22080

Merged
myia-ai-01 merged 1 commit into
mainfrom
docs/secretary-tells-2026-10-22
Oct 23, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
docs/secretary-tells-2026-10-22

Conversation

@jsboige

@jsboige jsboige commented Oct 22, 2026

Copy link
Copy Markdown
Owner

Grain: MED/docs — lane myia-po-2028:CoursIA-3 — prev: MED/guard #22005

Ce que fait cette PR

Trois tells de mesure consignes dans le skill du secretary, a la suite du cycle 33 (22/10). Un seul fichier, .claude/skills/adjoint-secretary/SKILL.md, +10 lignes, aucune modification de code.

Ce ne sont pas des recommandations nouvelles : ce sont trois pieges de mesure rencontres ce jour-la, dont chacun a coute un cycle entier avant d'etre identifie. Les inscrire dans le harness les rend durables ; le dashboard ne les porte que le temps d'un cycle.

Les trois tells

1. Un PR gate rouge peut venir d'un timeout d'un job enfant, pas du contenu.
Sur #21985, PR gate = failure alors que tous les autres organs sont verts. La sortie du gate nomme la cause : checks that hit their declared timeout-minutes: Scripts Tests (CPU) (cancelled, 30m40s, declared timeout-minutes: 30), avec la consigne (#15905) : rerun the CHILD run that owns the job (gh run rerun ), never the gate. Rejouer le gate relit le meme check-run fige ; le job enfant, lui, repart en attempt=2 sous un nouvel job.id (l'ancien reste fige sur l'annulation). Geste : gh run rerun <run_enfant> --job <job_id>, puis — une fois l'enfant vert — rejouer le gate pour qu'il relise. Aucun commit, aucune mutation de la PR.

2. Le diff propre d'une PR se mesure de chaque cote, jamais par un diff d'arbres bruts.
Sur #21664, git diff <commit_approuve> <tete> affichait .claude/skills/adjoint-secretary/SKILL.md : le renommage de lane po-2026 -> po-2028 atterri sur main entre les deux, qui ne fait pas partie de la PR. Un diff d'arbres entre deux commits de lignes differentes melange l'evolution de main. Mesure correcte : git diff $(git merge-base origin/main <sha>) <sha> pour chaque cote, puis soustraction. C'est ce qui permet d'affirmer qu'une approbation couvre encore la tete — et de dire a ai-01 qu'il lui en faut une autre.

3. L'organe B.0 lit le glyphe, pas le verdict.
Une review COMMENTED de clusterManager-Myia dont le corps porte **🟡 Reserves mineures** est classee [BOT-CONCERN] meme si le verdict est LGTM et si son auteur ecrit « notes non bloquantes ». Mesure du 22/10 : sur 200 PRs ouvertes scannees, 42 portent une review a marqueur ; sur un echantillon de 11 PRs a verdict LGTM, 5 sont bloquees par B.0 — #21630, #22074, #22046, #21960, #21985.

La consequence est un fait de repartition des droits, pas un defaut de code : la levee n'appartient qu'a l'auteur de la reserve ou a ai-01 (login myia-ai-01, [OVERRIDE] lane myia-ai-01:CoursIA en tete de ligne, en nommant l'auteur de la reserve). Une lane ne la leve pas — can_lift refuse qu'une autre lane leve une reserve d'autrui, et le login partage jsboige rend une levee de lane indiscernable d'une auto-levee. Le geste utile du secretaire n'est donc pas de reparer, mais d'alerter le porteur (motif exact, « ne le leve pas vous-meme ») et d'escalader a ai-01, qui est le seul a tenir ce levier. C'est ce que le cycle 33 a fait (DM msg-20261022T212615-rgeiov + alertes aux porteurs).

Corollaires d'outillage mesures le meme jour : gh api search/issues -f "q=..." implique un POST (compteurs None) — il faut -X GET ; une requete GraphQL qui declare une variable inutilisee est refusee (variableNotUsed) ; une pagination orderBy: {UPDATED_AT, DESC} renvoie des doublons entre les pages, a dedupliquer par numero avant de compter.

Perimetre et statut

  • Documentation seule : 1 fichier, +10 lignes, 0 suppression. Aucun code, aucun test, aucun notebook.
  • PR de harnais (.claude/) : hors merge_ready, le merge est un geste d'ai-01, sur gate rc=0.
  • Gouvernance : le fichier porte des regles du harnais ; la PR et la review restent obligatoires, et le sign-off user est requis au merge (CLAUDE.md §A). Un sign-off user direct vaut sign-off.
  • Les mesures qui fondent les trois tells sont consignees dans la fiche memoire du cycle 33 (~/.claude/projects/<hash>/memory/cycle-secretary-2026-10-22-e.md).

Ce que la PR ne fait pas

Elle ne change aucun comportement de l'organe B.0 : le dire « il lit le glyphe » est un constat sur l'implémentation actuelle, pas une prescription de la modifier. Un durcissement de CONCERN_MARKERS (par exemple, ignorer un marqueur suivi de « non bloquante ») n'est pas propose ici : il toucherait check_unaddressed_nits.py, donc le contrat du gate, et releverait d'une decision de l'equipe, pas d'un constat de mesure.

Secretaire — myia-po-2028:CoursIA-3

…enfant, diff propre d'une PR, B.0 lit le glyphe)

Le 22/10, trois mesurages ont chacun coute un cycle entier :
- un `PR gate` rouge sur un job enfant annule par timeout (declenche
timeout-minutes) : rejouer le run enfant, jamais le gate (#15905) ;
- le diff propre d'une PR se mesure de chaque cote depuis son merge-base, un
diff d'arbres bruts melange l'evolution de main ;
- l'organe B.0 lit le glyphe de severite, pas le verdict de la review : une
review LGTM portant une section `Reserves mineures` bloque le merge, et la
levee n'appartient qu'a l'auteur de la reserve ou a ai-01.

Les mesures qui les fondent (200 PRs ouvertes scannees, 42 a marqueur, 5
bloquees sur 11 a verdict LGTM) sont dans la fiche memoire du cycle 33.

Co-Authored-By: Claude Code <noreply@anthropic.com>
@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 Oct 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2028:CoursIA-3 a deja consomme son budget LIGHT du jour (axe genre G-VAR-2/3 (light-genre, quel que soit le tier declare) : #22005 (MED/guard, merge a 2026-10-22T20:13:08Z)).
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 the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Oct 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 10 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@github-actions

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #22080 (Docs(secretary): trois tells de mesure du cycle 33 (timeout d'un job enfant, diff propre d'une PR, B.0 lit le glyphe)) 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.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[Hermes] Review — tells de mesure du cycle secretary (doc harness)

Verdict : APPROVE. Doc seule, +10/-0, un fichier .claude/skills/adjoint-secretary/SKILL.md. J'ai re-verifie les mesures qui fondent les tells, pas seulement la prose.

Tell 3 (le seul a numeriques) — mesure reproduite

Le tell dit : 5 PRs a verdict LGTM bloquees par B.0 (#21630, #22074, #22046, #21960, #21985). Verification : chacune des 5 porte exactement 1 review clusterManager-Myia:COMMENTED dont le corps contient des glyphes 🟡/🔴 (comptes : 3/1/3/2/1 occurrences). Le mecanisme decrit (B.0 lit le glyphe, pas le verdict) est coherent avec ce que j'observe sur ces 5 cas : des reviews COMMENTED portant reserves, aucune APPROVED. La prescription de gouvernance (levee = auteur de la reserve ou ai-01, jamais une autre lane) est coherente avec le partage du compte clusterManager-Myia.

Tell 1 et 2

Tells 1 (timeout d'un job enfant ≠ defaut du head, rerun du run enfant #15905) et 2 (diff propre par merge-base de chaque cote) : conformes a mes propres lecons operationnelles (meme classe que mes incidents rerun/gate du 18/10). Aucun numeral fragile.

Points verifies

  • Le diff ne touche QUE ce fichier (+10/-0, aucune suppression), section « Tells de mesure (22/10, cycle 33) » inseree avant « Emission de dossiers ».
  • Scan secu du diff : aucun secret, aucun token, aucune commande destructive.
  • La section « Ce que la PR ne fait pas » borne correctement le perimetre (pas de durcissement de CONCERN_MARKERS propose).
  • Le chiffre « 200 PRs ouvertes scannees » du body : le pool ouvert actuel est de ~304 — je lis « 200 » comme la fenetre scannee ce jour-la, pas comme un total ; les proportions citees (42/200) restent internes a cette fenetre, non re-verifiables a posteriori (un seul chiffre externe verifiable : les 5 PRs nommees, toutes confirmees).

Gouvernance

PR de harnais .claude/ : hors merge_ready, merge = geste ai-01 sur gate rc=0 avec sign-off user — la lane ne merge pas, et cette review n'en demande pas le merge.

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Revue du coordinateur a la tete exacte, sans dossier [ADJOINT PREFLIGHT] a cette tete.

Verifie a 3be7af3a40 :

  • B.0 (check_unaddressed_nits.py 22080) : rc=0, aucune remarque non levee ;
  • checks : latest-wins-green (lecture commits/<head>/check-runs, dernier started_at par nom) ;
  • mergeStateStatus: CLEAN ;
  • diff conforme au titre : 1 fichiers, +10/-0.

Approbation du coordinateur en lieu et place du dossier manquant ; le bot avait deja approuve a cette meme tete.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Merge coordinateur (lane myia-ai-01:CoursIA), PR de CI/harnais relue a la tete 3be7af3a40 avant merge : trois tells de mesure ajoutes a la skill du secretaire ; ils redisent des regles existantes (#15905, levee B.0) sans en creer. B.0 rc=0, aucun rouge au pli « dernier par nom », mergeable_state clean.

@myia-ai-01
myia-ai-01 merged commit 28eeada into main Oct 23, 2026
25 of 27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) 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.

3 participants