[CLOSURE PREFLIGHT]
schema: 1
lane: <machine:workspace>
issue: <N>
verdict: CLOSE | KEEP
acceptance:
- <critère> -> <PR#/commit/fichier:ligne> (un item par critère du body)
residue: none | followup #<M> | waiver: <motif daté et falsifiable>
open-prs: 0
comments-reviewed: <n>
Constat (mesuré le 2026-09-26 par ai-01)
Le pool d'issues grossit alors que les PRs arrivent en masse. Le goulot n'est pas la production : c'est la fermeture. Elle exige une lecture firsthand (G.9), et seul ai-01 ferme.
candidate-delivered(organescripts/candidate_delivered.py, balayage planifié).scripts/verifier_cleanup.py --limit 0sur ces 136 rend 29 READY / 107 AMBIGUOUS.[Audit #17073] Série … — partition Hermes, 7 sur 7 : une PR mergée ne corrige qu'une tranche de 27 à 82 notebooks) ;[INFO] candidate-deliveredavec une vérification firsthand (par exemple sur session_hygiene : un organe planifié dont le siège est purgé meurt en silence (merge_ready muet 2 h 20) #17748, NLP-05 : HMM et Viterbi pour l'étiquetage morphosyntaxique #17695, SymbolicAI/Geometry : notebook Wu's Method from scratch + validation Groebner (piste Wu/AlphaGeometry de #14468) #17504, [Argument_Analysis] AIF Ontology notebook : visualiser la mindmap + faire parler les chiffres #17557, Les chemins sensibles ne sont couverts que par un exclude LOCAL — .secrets/ à découvert sur tout autre clone #17441, toutes fermées aujourd'hui sur leur base). C'est exactement l'état des PRs avant le gate de prévalidation.issue-debta été colonisé par les PRs. Après le retrait du ledgerpr-actions(fix(coordination,#16571): phase B reduite au transport partage — reprise de #16575 sans le ledger pr-actions #17555, arbitrage ai-01 du 23/09), l'adjoint a continué d'y journaliser ses états de PR, avec le numéro de PR dansentity.issue. Les dernières[OBS]portent sur docs(skills): coordinate skill names both neutral identities of the gate #17921, feat(coordination): report pending ledger spool envelopes #17939, fix(arxiv,#17622): registre — cell_index 17 -> 18 du renvoi References (décalage causé par #17807) #17835, fix(coordination,#17927): append écrit dans le spool par défaut après init, refuse un state-dir neuf #17940, toutes des PRs. Le tri de nuit (20 agents) a touché environ 29 issues.Ce qu'il faut : faire aux issues ce que le gate fait aux PRs
Réutiliser les organes existants (régime de consolidation) : pas de nouveau ledger.
candidate_delivered.pypuisverifier_cleanup.py. Ajouter un verdictCONTAINERpour les issues-conteneurs (préfixe[Audit #…]+ « partition », ou une issue qui énumère plusieurs cibles), jamais READY.[INFO] candidate-deliveredinformel. Contrat minimal, lisible par machine :check_closure_dossier.py <issue>, avec les mêmes codes que le gate PR : 0 = CLOSE intègre, 3 = KEEP intègre, 1 = dossier absent/périmé/auto-attesté, 2 = injoignable. Il vérifie que la lane est tierce (≠ lane du[DELIVERED]ou duGrain:de la PR livrante), que le dossier est postérieur au dernier commentaire non neutre, que les PRs citées sont MERGED, qu'aucune PR ouverte ne référence l'issue, et que la fille citée existe et est ouverte./coordinate, après la passe de merge. Gate oldest-first, lecture G.9 minimale (le dossier, le delta, la preuve décisive), fermeture en lot. La fermeture reste un geste ai-01, pas d'auto-close.coordinate-adjoint,adjoint-secretary), en commençant par les READY du crible, puis les AMBIGUOUS du plus ancien au plus récent.debt_ledger.pyrefuse une[OBS]dont l'entité est une PR (l'état des PRs vit dans leurs dossiers exact-head). Le ledger garde la dette des Epics (PRs atomiques restantes, EAT), plus lacloseabilityalimentée par les dossiers de fermeture.Acceptance
verifier_cleanup.pyrendCONTAINERsur les 7 issues[Audit #17073] … partition Hermesdu crible du 26/09 (contrôle positif), et ne dégrade aucun des 8 READY fermés ce jour (contrôle négatif, rejoué sur leur état avant fermeture).check_closure_dossier.pyet ses tests : un dossier auto-attesté donne 1, un dossier antérieur au dernier commentaire donne 1, une PR ouverte référençant l'issue donne 1, un dossier CLOSE intègre donne 0.debt_ledger.pyrefuse une[OBS]sur un numéro de PR, avec un test./coordinateporte la passe issues (PR de harnais, ai-01).Découpage
--template), 3 et 6. Lane outillage, une PR par organe si le diff l'exige.Mandat user du 2026-09-26.