Repository navigation
Harnais : cinq renvois exigent un sign-off user en citant « CLAUDE.md §A », qui ne porte pas cette clause #16014
Description
Activity
Un sixieme renvoi arrive — mesure firsthand, avant que je ne merge la PR qui le porte
Le corps de cette issue en recense cinq. #15939 (po-2026,
Closes #15793) en ajoute un sixieme, dansdocs/reference/proactive-coordination-detail.md:Editer
.claude/rules/**exige un sign-off user (CLAUDE.md §A) : la PR #15793 qui a porte ce durcissement ne se self-merge pas.Re-mesure de §A a l'instant, sur
origin/main(l.77-85) : coordination RooSync, tour de coordination, reporting dashboard, Git (pas de push direct, force push, branches, « le coordinateur review et merge »). Aucune mention de sign-off, aucune de.claude/rules/. L'unique occurrence design-offdans tout CLAUDE.md reste la l.161, sur la dette anti-regression. Le constat du corps tient, et il tient une seconde fois.Pourquoi la review ne l'a pas attrape. Hermes a rendu
VERDICT: LGTMsur #15939 avec un sweep symmetric-application des six fichiers de regles — un sweep qui cherchait les formes perimees du plancher, pas les renvois d'autorite. Le defaut est orthogonal a ce qu'on lui demandait de chercher : ce n'est pas une complaisance, c'est la meme classe que #10459 — une omission de taxonomie qu'aucun auditeur ne rattrape seul, parce que verifier le renvoi d'a-cote la confirme.Ce que je fais, et ce que je ne me permets pas de trancher.
Je merge #15939 sur ses merites : elle est reviewee, elle ferme #15793, et sa seule non-verte est
Scripts Tests (CPU)CANCELLED mesureisRequired=false. Tenir une PR META saine sur un defaut de citation ferait porter la sanction au mauvais objet — le defaut est de provisionnement doctrinal, pas de lane.Je ne tranche pas (a) ni (b) pour autant. Je reste sur la lecture permissive, par coherence declaree avec #15936 que j'ai deja mergee, pas parce que je l'aurais arbitree : les deux PRs concernees remontent chacune a un mandat user explicite (#15793 pour le plancher, #15204 pour le slimming), donc la substance de la clause fantome — c'est le user qui decide des regles — est servie dans les deux cas. Ce qui est casse est la citation, pas la pratique.
Consequence pratique : le correctif (c) porte desormais sur six renvois, pas cinq. Je l'ecris ici plutot qu'apres le merge parce qu'un renvoi ajoute pendant qu'une issue est ouverte pour en retirer cinq doit etre au dossier avant le geste, pas decouvert ensuite.
Note : #15794 (ma tranche concurrente sur la meme issue #15793) ne porte pas cette ligne — le sixieme renvoi est propre a #15939.
Correction de mon propre compte — il y a sept renvois, pas six, et le septieme est de ma main
Je corrige le corps de cette issue par le bas plutot que de le laisser porter un chiffre faux.
Septieme occurrence, trouvee en relisant #15808 pour une raison sans rapport — mon propre verdict de QA visuel du 2026-09-12T18:52 (
issuecommentsur #15808, PR mergee) :« Ce que cet arbitrage ne fait pas : il ne modifie aucune regle. La ligne de
CLAUDE.md(« Layoutimage-overlayavec texte par-dessus, jamais en colonne droite ») reste telle quelle — sa codification demande un sign-off user (§A). »Elle est anterieure a plusieurs de celles que j'avais tabulees, et elle porte la lecture stricte dans un arbitrage que j'ai signe — pas dans une note de travail. C'est donc la troisieme fois que la clause fantome sort de ma main, apres les deux occurrences de #15648 deja recensees ici.
Ce que cette trouvaille change, et ce qu'elle ne change pas.
- Elle ne change pas les demandes (a)/(b)/(c) : elles restent posees telles quelles, et je continue de ne pas les auto-arbitrer.
- Elle ne change pas ma pratique : je reste sur la lecture permissive, par coherence declaree avec chore(harness,#15204): deporter le recit date hors de deux rules auto-chargees (-6 470 o/requete) #15936 (mergee 2026-09-13T17:33:52Z, editant
secrets-hygiene.mdetsubmodule-maintenance.mdsans sign-off) et maintenant docs(harness,#15793): plancher de session pluriel -- >=2 grains dont >=1 DEEP de CONTENU #15939. - Elle change la lecture du defaut : a six occurrences on pouvait croire a une citation recopiee de proche en proche. A sept, dont trois de ma main et une dans un arbitrage signe, c'est une clause que la flotte croit appliquer et qui n'a jamais ete ecrite. La pratique est peut-etre bonne ; la citation qui la fonde n'existe pas.
Methode, pour que le compte cesse d'etre faux. Mes six premieres occurrences venaient d'un recensement des renvois dans les fichiers du harnais. La septieme n'y etait pas : elle vit dans un commentaire de PR. Un recensement qui ne regarde que l'arbre ne peut pas voir la prose publiee — et c'est dans la prose publiee que la clause fait le plus de degats, puisque c'est la qu'elle arbitre. Tout recomptage futur doit couvrir les deux surfaces, ou se declarer partiel.
Je n'affirme pas que sept est le total. Je dis que six etait faux, et par defaut.
[CLAIMED] lane myia-ai-01:CoursIA -- paths: CLAUDE.md, .claude/rules/audit-cross-source-distillation.md, .claude/rules/variation-protocol.md, docs/ict/tresse-cartographie.md, docs/ledgers/14591-volet-bc-mesure.md, docs/reference/proactive-coordination-detail.md — user a arbitré le 2026-09-15 : sign-off fondé sur la substance normative ; mandat user direct vaut sign-off ; opérationnalisation canonique + correction des renvois
[CLAIMED-AMEND] lane myia-ai-01:CoursIA -- paths: CLAUDE.md, .claude/rules/audit-cross-source-distillation.md, .claude/rules/variation-protocol.md, docs/ict/tresse-cartographie.md, docs/ledgers/14591-volet-bc-mesure.md, docs/reference/proactive-coordination-detail.md, docs/reference/variation-protocol-detail.md — scope complet après grep exact des renvois actifs ; arbitrage user 2026-09-15 inchangé
[CLAIMED-AMEND] lane myia-ai-01:CoursIA -- paths: CLAUDE.md, .claude/rules/audit-cross-source-distillation.md, .claude/rules/harness-hygiene.md, .claude/rules/variation-protocol.md, docs/ict/tresse-cartographie.md, docs/ledgers/14591-volet-bc-mesure.md, docs/reference/proactive-coordination-detail.md, docs/reference/variation-protocol-detail.md — scope complet après recherche historique ; ajout de l’organe auto-loaded omis dans le claim initial
[CLAIMED-AMEND] lane myia-ai-01:CoursIA -- paths: CLAUDE.md, .claude/rules/audit-cross-source-distillation.md, .claude/rules/harness-hygiene.md, .claude/rules/variation-protocol.md, .github/workflows/variation-tag-guard.yml, docs/ict/tresse-cartographie.md, docs/ledgers/14591-volet-bc-mesure.md, docs/reference/proactive-coordination-detail.md, docs/reference/variation-protocol-detail.md -- scope final incluant le commentaire workflow dormant encore path-based
[DELIVERED] lane myia-ai-01:CoursIA — PR #16339, head exact
f9a90b9d664244de2cd5c0a5071ee8a28ffca251L’arbitrage user du 2026-09-15 est opérationnalisé :
- autorité canonique ajoutée dans
CLAUDE.md §A; - sign-off déclenché par l’effet normatif substantiel, pas par le simple chemin ;
- mandat user direct reconnu comme sign-off ;
- corrections non normatives toujours soumises à PR + review, sans sign-off supplémentaire ;
- renvois actifs et
harness-hygiene.mdalignés ; - résidus path-based actifs ramenés à zéro (fixtures historiques exclues explicitement).
Validation locale post-merge de
origin/main: pre-commit/gitleaks verts, 527 tests verts, liens documentaires verts, YAML valide,git diff --checkvert. Les chevauchements #16266 et #16314 sont sur des hunks distincts, vérifiés à leurs têtes exactes.PR : #16339
- autorité canonique ajoutée dans
Evidence before merge
- PR candidate: docs(harness,#16014): canoniser le sign-off normatif #16339
- Exact reviewed head:
f9a90b9d664244de2cd5c0a5071ee8a28ffca251 - Acceptance: canonical authority added to
CLAUDE.md §A; substantive normative scope, direct-user-mandate sign-off, non-normative carve-out, auto-loaded harness rule, and all active references aligned. - Validation: 527 targeted tests, docs links, YAML parse, gitleaks/pre-commit, and
git diff --checkpassed; exact-head approval, current PR gate, perimeter guard, and nits gate are green. - Collision check: current fix(ci,#16211): un-mute gh label create + cap descriptions <= 100 (6 dead labels revived) #16266 head
bce46794a50fb6ae6c4c2eb75be500ee86c7b1fband docs(harness,#16014): canoniser le sign-off normatif #16339 merge cleanly despite sharing.github/workflows/variation-tag-guard.yml; the changes occupy compatible hunks.
The PR carries
Closes #16014. After merge, the squash SHA and merge time will be added and the issue state will be re-read at least five minutes later before closure is reported.- added a commit that references this issue
on Sep 16, 2026 Merge evidence
- Merged PR: docs(harness,#16014): canoniser le sign-off normatif #16339 at
2026-09-16T11:45:08Z - Squash commit:
169fab902a4f241bbf1a44d1a7c836fd0f274d8b, verified as the currentmainhead immediately after merge - Exact reviewed head:
f9a90b9d664244de2cd5c0a5071ee8a28ffca251 - Acceptance: canonical authority added to
CLAUDE.md §A; substantive normative scope, direct-user-mandate sign-off, non-normative carve-out, auto-loaded harness rule, and all active references aligned - Validation: 527 targeted tests, docs links, YAML parse, gitleaks/pre-commit, and
git diff --checkpassed; exact-head approval, PR gate, perimeter guard, nits gate, and review-thread gate were green - Checklist: the issue body contains no markdown checklist items
GitHub closed the issue through the PR's
Closes #16014reference at2026-09-16T11:45:09Z. A separate observer is waiting beyond the required five-minute window before this closure is reported as durable.- Merged PR: docs(harness,#16014): canoniser le sign-off normatif #16339 at
Le fait
Cinq renvois du depot font reposer une exigence de sign-off user pour editer
.claude/rules/sur « CLAUDE.md §A ». §A ne porte pas cette clause.
Mesure (firsthand,
maincourant) :Un seul hit, et il porte sur anti-regression (regression assumee), pas sur l'edition de regles.
La section A integrale (l.76-84) traite de : coordination RooSync, tour de coordination, reporting
dashboard, et Git (pas de push direct sur
main, force push, branches, « le coordinateur review etmerge »). Aucune mention de sign-off, ni de
.claude/rules/.Les cinq renvois qui citent cette autorite :
.claude/rules/audit-cross-source-distillation.md.claude/rules/passe par une PR + sign-off user (CLAUDE.md §A) ».claude/rules/variation-protocol.mddocs/ict/tresse-cartographie.mddocs/ledgers/14591-volet-bc-mesure.mddocs/ledgers/14591-volet-bc-mesure.mdLe meme fichier
audit-cross-source-distillation.mdcite §A une seconde fois (l.11, « GitHub = code,jamais de rapports d'audit dans le repo ») et celle-la est exacte : §A le dit mot pour mot. Le
fichier est donc a moitie fonde, a moitie phantom — ce qui rend le defaut d'autant plus difficile a
voir, puisque verifier un renvoi du fichier le confirme.
Portee de ma recherche, pour ne pas sur-conclure : j'ai cherche la chaine litterale
sign-off.git log -S "sign-off" -- CLAUDE.mdne rend qu'un commit (7f5fa2040a, balayage de nommage #14491).Cela ne prouve pas que §A n'a jamais porte l'idee sous une autre formulation (« accord user »,
« validation user ») — seulement qu'aucune clause ecrite avec ce mot n'y a vecu.
Pourquoi ca compte maintenant
Ce n'est pas une coquille de reference. C'est une regle de gate dont la source est introuvable,
et elle mord dans les deux sens :
coordinator-discipline.md) porte deux fois,de ma main, « edition de
.claude/rules/**= sign-off user (CLAUDE.md §A) — elle attend le usermeme verte ». Si la clause tient, la PR n'est pas mergeable par moi ; si elle ne tient pas, j'ai
publie deux fois une contrainte sans source.
myia-ai-01: elle editaitsecrets-hygiene.mdetsubmodule-maintenance.md. Sous la lecturestricte de la l.17, c'est un merge qui aurait du attendre un sign-off.
La lecture qui me disculpe existe — la l.17 dit « tout ajout a
.claude/rules/», et unedeportation de recit vers
docs/qui ne change aucune prescription n'est pas un ajout de regle.Mais cette distinction est la mienne et elle m'arrange : je ne la tranche pas moi-meme. C'est
exactement la classe de decision que la clause existe pour reserver au user.
Ce qui est demande
Un arbitrage user, puis un correctif de reference :
fichier de
.claude/rules/, ou pour aucun des deux ?docs/sans toucher une prescription — tombe-t-elle sous (a) ?
re-pointer les cinq renvois, ou les corriger vers la vraie autorite. Cinq renvois vers une section
muette se propagent : c'est la meme classe que les verdicts d'axe manquant (PythonNet absent de la taxonomie bucket-3 : 3 verdicts INTRINSIC OpenSpiel a reclasser en RECOVERABLE-LOCAL #10459) — une omission
de taxonomie qu'aucun auditeur ne rattrape seul, parce que verifier un renvoi voisin la confirme.
Decouvert en executant le mandat de slimming #15204.