Repository navigation
fix(coordination,Q67): merge_ready exige une approbation myia-ai-01 qui couvre le contenu de la tete - #18257
Conversation
…ui couvre le contenu de la tete L'organe ne merge plus sur le seul dossier tiers READY : la derniere voix de myia-ai-01 doit etre un APPROVED reel, pose sur la tete ou sur une tete dont celle-ci ne differe que par des rafraichissements de base prouves content-free (remontee du plancher DWELL, exposee par merge_dwell.last_authoritative_sha). Absente, perimee ou illisible : skip avant le gate. L'organe evite la peremption du dossier entre la lecture du coordinateur et le merge ; il ne remplace plus cette lecture. CLAUDE.md §A, README de l'organe, skill coordinate et doc agent cloud alignes. Co-Authored-By: Claude-Code <noreply@anthropic.com>
…(contrat #18257) merge_ready n'est plus une voie de merge sans lecteur : il exige une approbation myia-ai-01 qui couvre le contenu de la tete. Le skill et la doc de circulation cessent de presenter un READY comme un merge ; la liste nominative a ai-01 couvre desormais tous les READY, puisque c'est elle qui declenche sa lecture. Co-Authored-By: Claude-Code <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 |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
Lecture ai-01 a la tete f1e60aa (contrat Q67) : body, commentaires, diff lus. Un seul commit, contenu conforme a l arbitrage user Q67 (a), qui vaut sign-off du resserrement de CLAUDE.md §A. Dossier tiers READY du secretariat (c.5875145966), B.0 rc=0, 30 jambes latest-wins vertes, CLEAN.
…_ready convertit chaque READY (#18245) * docs(skills): secretaire -- attester en tiers a son initiative, merge_ready convertit chaque READY La doctrine Hub du 22/09 reservait les dossiers du secretaire aux dispatchs nominatifs et placait les DMs au coordinateur avant eux. Elle reposait sur un constat d'avant merge_ready (23/09). Depuis, un READY tiers sur une PR hors harnais et hors DEEP est merge en 20 minutes. - nouvelle section "Ce que ton dossier declenche" (criteres merge_ready, mesures du 28/09, crible de fond obligatoire) - role : attestation tierce sans tranche ni dispatch, re-stamp des dossiers morts, reruns dans le perimetre - cycle : inbox deep:true d'abord, lot annonce, budget au quota mesure (fin du plafond fixe de 40 appels) - item 13 : seul un dossier vivant (rc=0/3) d'une autre lane protege - garde-fou 4 : un re-stamp est un nouveau post, jamais un PATCH - references de ligne du gate remplacees par les noms de symboles - tricephale-circulation.md aligne Co-Authored-By: Claude-Code <noreply@anthropic.com> * docs(skills): secretaire -- le porteur d'une PR se lit dans le tag Grain, pas dans l'auteur GitHub Co-Authored-By: Claude-Code <noreply@anthropic.com> * docs(skills): secretaire -- un READY se double de la lecture d'ai-01 (contrat #18257) merge_ready n'est plus une voie de merge sans lecteur : il exige une approbation myia-ai-01 qui couvre le contenu de la tete. Le skill et la doc de circulation cessent de presenter un READY comme un merge ; la liste nominative a ai-01 couvre desormais tous les READY, puisque c'est elle qui declenche sa lecture. Co-Authored-By: Claude-Code <noreply@anthropic.com> --------- Co-authored-by: jsboige <jsboige@gmail.com> Co-authored-by: Claude-Code <noreply@anthropic.com>
Grain: MED/guard -- lane myia-ai-01:CoursIA -- prev: MED/docs #18245
Pourquoi
Depuis le 23/09,
scripts/coordination/merge_ready.pymergeait toute PR hors harnais et hors DEEP dès qu'une lane qui ne la porte pas y posait un dossier[ADJOINT PREFLIGHT]READY. La disposition de review était relevée au journal, sans rien bloquer. Mesure du journal de l'organe au 28/09 :APPROVEDdemyia-ai-01;myia-po-2025:CoursIA-2) ou le secrétaire (myia-po-2026:CoursIA-3), 65 par d'autres lanes du cluster (ensembleQUALIFYING_LANES, ouvert par harness(gate,#16906,#16928): la prevalidation Phase 4 accepte une lane tierce, et un dossier suivi de sa prose #16907) ;Arbitrage user du 2026-09-28 (registre Q67, option a) : l'organe ne doit servir qu'à éviter qu'un dossier se périme entre la lecture du coordinateur et le merge. Il ne doit pas remplacer cette lecture. L'arbitrage vaut sign-off pour le durcissement de §A.
Ce qui change
scripts/coordination/merge_ready.py— nouvelle étape 2ter, placée avant le gate : une PR non lue ne paie pas le gate.myia-ai-01doit être unAPPROVEDréel. Latest-wins sur ses seules voix, lues comme le canon : unCHANGES_REQUESTEDou unVERDICT: CONCERNSpostérieur retire l'approbation. UnCOMMENTEDsans verdict (une phrase de levée) ne la retire pas.DISMISSEDne compte jamais.update-branchsans conflit ne périme donc pas la lecture ; un commit de contenu ou une résolution de conflit la périme.no-coordinator-approval,coordinator-approval-stale,coordinator-approval-unverifiable(fail-closed, dont:no-base).head-moved) : l'approbation a été jugée sur la tête de la vue.review, toutes voix) reste informative, inchangée.scripts/ci/merge_dwell.py: la remontée first-parent de #16149 est factorisée (_walk_authoritative) et exposée parlast_authoritative_sha.last_authoritative_committed_atgarde exactement son comportement. La question « l'approbation couvre-t-elle encore cette tête ? » et celle du plancher DWELL passent ainsi par la même remontée.Harnais et docs :
coordinate/SKILL.mdPhase 4, nouveau point 7 : approuver ce qui est lu mais pas encore mergeable ;scripts/coordination/;docs/reference/agent-cloud-agnosticisme.md.Hors de cette PR
CoursIA\merge_readyest désactivée sur ai-01 depuis 2026-09-28 ~15:05Z, jusqu'au merge de cette PR. Elle se réactive après le merge : l'organe tourne depuis un worktree ramené surorigin/mainà chaque tour.Validation
python -m pytest scripts/tests/test_merge_ready.py scripts/tests/test_merge_dwell.py scripts/tests/test_dwell_rule_matches_organ.py scripts/tests/test_install_merge_ready_task.py -q: 137 passed. 12 tests nouveaux pour l'étape 2ter, dont les contrôles négatifs suivants :CHANGES_REQUESTEDpostérieur ;CONCERNSen corps ;DISMISSED;3 tests nouveaux pour
last_authoritative_sha.Dry-run de l'organe modifié sur le pool vivant (106 PRs, journal isolé) : rc=0, 0 would-merge. 8 PRs à dossier sont écartées pour
no-coordinator-approval; elles attendaient jusqu'ici leur merge sans lecture.python scripts/check_docs_links.py --check --base origin/main --quiet: rc=0.python scripts/notebook_tools/check_harness_coauthor.py --repo-root .: rc=0.B (Lean), C (ML), D (notebooks), G (QC) : non applicables.
PR de harnais (CLAUDE.md,
.claude/) : hors périmètre demerge_ready, mergée à la main par le coordinateur, sur dossier tiers.🤖 Generated with Claude Code