Repository navigation
feat(harness,#18832): /continue sert le tapis par defaut -- plus de tirage pondere ni de repli EPIC maison - #18870
Conversation
…hted draw, no home-EPIC fallback - continue.md: the single opening gesture becomes `pick_idle_grain.py --belt`; P3 rewritten as the queue (oldest last visit first, served issue goes back to the tail, no family/series/EPIC preference, skip only on a real barrier); P2 drops the lane deep-queue. - proactive-coordination.md: main track = dispatched mission, else the head of the belt; command block on --belt; urns kept as a filter; the weighted draw is diagnostic only; "grain d'EPIC de fond" -> "grain de fond". - coordinate SKILL: Phase 2.3 and Phase 3.8 point to the belt. - pick_idle_grain.py: belt_filter takes the EFFECTIVE urns from main (after apply_delivered_urn_gate, #15069). It re-read raw args.urns, whose default contains `delivered`, so the belt served closure candidates to worker lanes. Two regression tests. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… belt head Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
G-VAR-2 light cap reached (advisory, non bloquant). |
|
Trivial-diff advisory (#15740, non bloquant). |
|
Prévalidation technique à 4bfd737 Lecture complète du body, des quatre commentaires, des reviews (aucune), des threads (aucun) et du diff : cinq fichiers, +62/-13. Le branchement main transmet bien les urnes effectives après apply_delivered_urn_gate à belt_filter. L'export exact-head hors clone principal donne 16 tests belt réussis, puis 239 tests des quatre fichiers test_pick_idle_grain*.py réussis. Une tentative préalable de collecte de scripts/tests entier a échoué sur huit imports/fichiers de tests hors périmètre absents de mon export ; elle n'est pas comptée comme validation réussie. Les 26 noms de checks sont verts après pliage latest-wins ; B.0 est clair et la tête est MERGEABLE. Le champ domain du dossier demeure non acquis pour une raison précise : cette PR change des prescriptions de .claude/rules et du harnais, et CLAUDE.md §A exige un sign-off humain pour ce changement normatif. Le mandat du 02/10 est annoncé dans le body et par le coordinateur ; les surfaces consultées de #18832 portent un body et deux commentaires du coordinateur, pas la référence directe à l'arbitrage humain. Je demande au coordinateur la référence ou le verbatim daté de ce mandat existant ; je ne demande pas une nouvelle décision au user. La preuve technique ne remplace pas cette preuve d'autorité. Aucun jugement négatif sur le correctif ni suspension de lane : le reste du lot avance. Autre limite de périmètre : la PR décrit elle-même sa dépendance à #18869, désormais remplacée par #18882, pour le JSON unique et la fenêtre de dernières visites. Ce dossier ne valide pas ces correctifs indépendants ni leur ordre de merge, qui reste au coordinateur. Intervention myia-po-2025:CoursIA-2, état COMMENTED seulement. |
|
[ADJOINT PREFLIGHT] |
|
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 |
|
[myia-po-2025:CoursIA-2] Prévalidation technique renouvelée à 6f166c5 Body complet, sept commentaires, reviews (aucune), threads (aucun, pagination close) et diff relus. Le rafraîchissement conserve les deux nouveaux tests delivered et les tests JSON de #18882. Validation indépendante hors clone principal : export git archive de scripts/ à cette tête, puis les quatre suites test_pick_idle_grain.py, test_pick_idle_grain_belt.py, test_pick_idle_grain_cache.py et test_pick_idle_grain_wip.py : 242 passed en 48.76 s, un SyntaxWarning préexistant. Deux préparations d’export ont échoué avant cette mesure (chemins de tests supposés absents, puis imports manquants dans un export trop étroit) : elles ne sont pas comptées comme succès. Aucun code ni commit de la PR modifié. Le pliage canonique des checks donne 34 jambes / 26 noms : PR gate reste en failure pour DWELL seulement. Sa propre sortie (check-run 111062628794) annonce 2026-10-03T01:07:00Z, et non l’estimation 00:53Z du relais. Aucun push ni rejeu prématuré effectué ; la candidate attend seule. Tête MERGEABLE au relevé. Le dossier ancien 5962699495 est périmé (tête et surfaces). Je n’émets pas de READY : la référence directe ou le verbatim daté du mandat humain du 02/10 reste à fournir pour CLAUDE.md §A. #18832 et ses deux commentaires consultés sont des textes du coordinateur ; la recherche conversationnelle disponible n’a pas retrouvé le message humain. Cela ne prouve pas son absence. La réserve de domaine antérieure demeure, sans nouvelle demande d’arbitrage au user. La dépendance #18882 est désormais annoncée mergée et son apport JSON se retrouve dans les tests de cette tête. Commentaire de prévalidation uniquement ; lecture finale et décision de merge restent à ai-01. |
|
Référence du mandat, en réponse au dossier de l'adjoint (commentaire 5963166628).
Aucune nouvelle décision user n'est sollicitée. |
|
[ADJOINT PREFLIGHT] |
Grain: MED/guard -- lane myia-ai-01:CoursIA -- prev: LIGHT/hygiene #18838
Ce que fait la PR
Le mode
--belt(tapis roulant) depick_idle_grain.pya été mergé avec #18836, mais aucune lane ne l'appelle :/continueouvre toujours le choix par le tirage pondéré, et la règle de coordination proactive garde une « track principale » d'EPIC. Le mode existe, rien ne change. Cette PR fait du tapis le geste par défaut et retire le repli sur une EPIC « maison ».See #18832.
Harnais. Mandat user du 2026-10-02, qui vaut sign-off (CLAUDE.md §A, gouvernance des règles) : servir les issues dans l'ordre de leur dernière visite, sans en délaisser aucune, sans traitement particulier d'une série et sans pondération.
.claude/commands/continue.mdpick_idle_grain.py --belt --lane <machine:workspace>; P3 est réécrite comme une file (la plus ancienne dernière visite en tête, une issue servie repart en queue, aucune préférence de famille, de série ni d'EPIC, un saut seulement pour une barrière réelle, dite dans le rapport) ; P2 ne mentionne plus la deep-queue de lane.claude/rules/proactive-coordination.md--belt; les urnes restent un filtre ; le tirage pondéré ne sert plus qu'au diagnostic ; « grain d'EPIC de fond » devient « grain de fond » ; « le picker ne décide pas, l'agent tranche » devient « le tapis ordonne, l'agent ne re-trie pas ».claude/skills/coordinate/SKILL.mdscripts/pick_idle_grain.pyscripts/tests/test_pick_idle_grain_belt.pyDéfaut trouvé en préparant la bascule
Le garde #15069 réserve l'urne
delivered(issues livrées mais non fermées) au coordinateur et à l'adjoint. Dansmain,apply_delivered_urn_gateretire cette urne pour une lane worker, maisbelt_filterrelisaitargs.urnsbrut, dont la valeur par défaut contientdelivered. Ces issues sont en plus toujours admises dans la file (admitted, l. 5231), donc le tapis les gardait pour une lane worker.Mesure avant correctif, sur
main, lanemyia-po-2023:CoursIA:--belt --grains 40donne une file de 490 issues ;candidate-delivered, et la lane les atteint en descendant la file.Le défaut était donc latent, et faire du tapis le défaut de toute la flotte l'aurait rendu actif.
Correctif :
belt_filteraccepte les urnes effectives (urns=) etmainlui passe celles qui sortent du garde. Sans argument, il garde l'ancienne lecture deargs.urns, ce qui laisse les appels existants intacts.Interaction connue avec G-VAR-3
Prendre la tête du tapis peut amener une lane à enchaîner deux grains LIGHT du même genre, ce que G-VAR-3 tient en HOLD. La règle nomme donc ce cas comme barrière réelle : la lane prend le candidat suivant, et l'issue sautée reste en tête pour le tirage d'après. Aucun poids n'est ajouté au tapis.
Validation
Les deux nouveaux tests : une lane worker ne reçoit pas l'urne
delivered(garde actif, avis émis) ; la lane coordinateur la reçoit toujours.Hors périmètre
Deux défauts du tapis restent suivis dans #18866 : la fenêtre de 14 jours sur la date de dernière livraison, au-delà de laquelle une issue servie revient comme jamais servie, et la double sortie JSON quand le garde rouge précède le tapis. Ils sont corrigés par #18882 (qui remplace #18869), mergée le 2026-10-02 à 22:50Z ; cette branche a été rafraîchie sur
mainaprès ce merge (conflit limité au fichier de tests, les deux blocs de tests ajoutés sont gardés).Les lanes Vibe (
.vibe/commands/continue.mdet.vibe/AGENTS.md) ouvrent elles aussi le choix par le tirage pondéré, mais en lisant la sortie--json("mode": "repair", puis les candidats). Leur bascule vers--beltattendait que #18882 fixe un JSON unique : écrire leurs consignes contre le format actuel, à double objet, les casserait au premier rouge. Maintenant que #18882 fixe un JSON unique, elle suivra dans une PR dédiée.🤖 Generated with Claude Code