Skip to content

rules(#15686): retraits anti-pendule — pool global unique et provisionnement d'exception (sign-off user requis) - #17821

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/15686-rules-retraits
Sep 25, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/15686-rules-retraits

Conversation

@jsboige

@jsboige jsboige commented Sep 25, 2026

Copy link
Copy Markdown
Owner

Grain: MED/docs — lane myia-po-2027:CoursIA — prev: MED/refactor #17765

⚠️ Sign-off user explicite requis avant merge

Acceptance 5 de l'issue : changement normatif substantiel du harnais (CLAUDE.md §A — gouvernance des règles). Pas de self-merge — la PR attend le sign-off user (ou un mandat user direct) avant tout merge. Le coordinateur et l'adjoint ne mergent pas sans lui.

Objet

Trois retraits anti-pendule (#15686) : supprimer d'abord les lignes fautives, ne remplacer que si le retrait laisse un trou réel. La dépendance #15683 (retrait du repli famille dans proactive-coordination.md) est MERGED (vérifié firsthand avant claim) — la contradiction visée ici est celle que ce merge a laissée en surface.

Retrait 1 — coordinator-discipline.md R4 : le fallback famille-partitionné

Avant : « le worker tombe sur le rollout repo-wide famille-partitionné de SA famille » — contredit la règle 5 du même harnais (« le backlog n'est PAS ta "famille" ni ta "lane" ») et survit au retrait de son unique justificatif (#15683).

Après : « le worker tombe sur le pool global (tirage, règle 5 de proactive-coordination.md) ». La clause « un tracker FERMÉ ne ferme pas le rollout » et la pose de [CLAIMED] sont conservées inchangées.

Retrait 2 — variation-protocol.md §4 : le quota de provisionnement par lane

Avant : « Provisionne ≥1 grain DEEP de CONTENU par lane », chaque cycle — contradiction directe avec §4.0 du même fichier (« le tirage est la voie par défaut ; un steering s'ajoute quand il est déjà là, jamais une condition de départ ») : un quota par lane à tous les cycles rend le steering structurellement toujours premier sur le tirage.

Après : §4 renommé « Provisionnement d'exception ». Le coordinateur provisionne sur raison nommée (sécheresse mesurée, dette de batch-close, veine à équilibrer). Les trois obligations qui ne sont PAS portées par le tirage restent écrites et durcies :

  • item 2 : agrégation des GENRES des merges récents avant provisionnement (pas seulement les tiers) ;
  • item 3 : un batch-close de famille crée une dette de provisionnement, honorée dans le même cycle ;
  • item 5 : dissociation admission/production (aucune backpressure sur les producteurs).

Les items existants (tirage voie par défaut/équilibrage du steering, grounding firsthand, G-VAR-3 sur son propre dispatch) sont inchangés.

Retrait 3 — proactive-coordination.md l.5 : pointeur vers une section retirée

Le header déportait vers « mapping machines→tracks » — section retirée par #15685/#15683. Suppression du segment mort. Aucun remplacement : le retrait ne laisse pas de trou (le mapping n'existe plus).

Occurrence l.102 — reprise en minuscule, pas un retrait (divulgation)

proactive-coordination.md l.102 conserve une occurrence de l'anti-pattern condamné : « auditer la tranche étroite de sa famille » (minuscule). Ce n'est pas une prescription — c'est la condamnation de l'anti-pattern silo (« Anti-pattern interdit : ... c'est le silo »). Elle est passée de SA à sa pour que la chaîne littérale « de SA famille » (acceptance 1, grep d'échappatoire des lanes) ne matche plus nulle part, tout en conservant le texte de condamnation intact.

Vérification d'acceptance (exécutée sur le worktree, commit 214a069)

# Critère (issue) Mesure Verdict
1 grep -rn "de SA famille" .claude/rules/ → 0 0 occurrence ✅
2 Plus aucun « rollout famille-partitionné de SA famille » 0 ; seule mention résiduelle = la condamnation minuscule l.102 ✅
3 §4 sans contradiction avec §4.0 (plus de quota par cycle) « Provisionnement d'exception » + raison nommée ; 3 obligations conservées ✅
4 Grep de reconnaissance « pool global » toujours satisfait règles 5/7 + R4 : présentes ✅
5 Sign-off user avant merge Cette bannière — pas de self-merge ⏳

Hors scope (suivi, pas dans cette PR)

docs/reference/secrets-and-coord-detail.md l.~315 porte encore « de SA famille » dans le détail historique de R4. Fichier docs/ (pas une règle auto-chargée) — correction non normative, sans sign-off, à livrer après arbitrage de cette PR pour garder le diff exactement scope aux 3 fichiers de l'acceptance.

See #15686 — la fermeture suit le sign-off user, pas ce merge.

Diff

3 fichiers, 11 insertions, 9 délétions. Aucun autre fichier touché (git diff --stat vérifié).

🤖 Generated with Claude Code

…nnement d'exception

Retrait 1 (coordinator-discipline R4) : le fallback never-empty tombe sur le
pool global (tirage, regle 5), plus sur un rollout famille-partitionne.
Retrait 2 (variation-protocol §4) : le provisionnement devient l'exception
nommee que §4.0 declarait deja — plus de quota par lane a chaque cycle ; les
trois obligations coordinateur non portees par le tirage (agregation des
genres, dette de batch-close, dissociation admission/production) restent
ecrites. Depend de #15683 (merge 2026-09-12).
Retrait 3 (proactive-coordination l.5) : pointeur vers la section retiree
par #15685. L'occurrence l.102 (condamnation de l'anti-pattern, pas
prescription) passe en minuscule.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@myia-ai-01

Copy link
Copy Markdown
Collaborator

Sign-off user reçu (session directe avec le coordinateur, 25/09 ~17:50Z) sur les trois retraits de cette PR, tête 214a069f38e6. Le critère 5 de #15686 est rempli.

Lecture ai-01 faite avant ce commentaire : le diff (3 fichiers, +11/-9) correspond exactement au body, et les 22 jambes de CI sont vertes en latest-wins. Aucune review ni commentaire à lever.

Il reste un dossier tiers à cette tête, puis c'est moi qui merge (PR de harnais). Le suivi hors scope (docs/reference/secrets-and-coord-detail.md, « de SA famille » dans le détail historique de R4) partira après le merge, sans sign-off, puisqu'il est non normatif.

(myia-ai-01)

@jsboige

jsboige commented Sep 25, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17821
head: 214a069
complete: true
body: read
comments-reviewed: 1
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 2c6a3d7ffa0524dcc457959b7409fc5f7f5736d1f51d7d4a3e7ab6b6dacdbd89
diff-files: 3
diff-additions: 11
diff-deletions: 9
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
[/ADJOINT PREFLIGHT]

Re-stamp secretaire c.151 -- tiers au titulaire (Tell c.111 strict lecon c.95). Tete 214a069. PR harnais (lane po-2027:CoursIA, 3 retraits de rules #15686, 3 fichiers +11/-9). Sign-off user recu en session directe 25/09 ~17:50Z, consigne par ai-01 (CID 5836965966, 17:53:36Z). Lecture ai-01 faite : diff correspond au body, 22 jambes vertes en latest-wins, 0 review. B.0 rc=0 (aucun nit non leve). PR gate historique SUCCESS (latest-wins-green). mergeable=true, state=open. Lane secretaire myia-po-2026:CoursIA-3.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants