Skip to content

docs(harness,#12051): vague 2 -- slimming de proactive-coordination + variation-protocol - #19626

Closed
jsboige wants to merge 2 commits into
mainfrom
feature/12051-slim-proactive
Closed

jsboige wants to merge 2 commits into
mainfrom
feature/12051-slim-proactive

Conversation

@jsboige

@jsboige jsboige commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/docs — lane myia-po-2023:CoursIA — prev: MED/readme #19570

Objet

Vague 2 du slimming du harnais auto-chargé (EPIC #12051), cible
proactive-coordination + variation-protocol. Périmètre : 3 fichiers — les deux
rules et la cible docs/ qui reçoit les récits déportés.

Ce qui est retiré, et pourquoi c'est sûr

(1) Une redite interne. proactive-coordination.md portait deux paragraphes
jumeaux
sur l'urne umbrella, avec le même en-tête HARD (#11900) et des
contenus qui se recouvraient — l'un des deux renvoyait déjà à
picker-delaisse-detail.md. Les deux sont fusionnés en un seul, placé à la position
du second : la lecture garde l'enchaînement tapis roulant → tapis ordonne →
umbrella → trois surfaces.

(2) Deux récits mesurés déportés vers docs/reference/proactive-coordination-detail.md,
avec vérification d'arrivée par grep sur la cible AVANT le trim (protocole de
l'EPIC, étape 1) :

  • la mesure du 2026-09-19 (213 PRs ouvertes, 104 CLEAN, 174 sans review) et le
    verbatim user qui fondent l'ORDRE de session de R0 ;
  • la mesure du 2026-09-15 sur knot_lean (les 8 sorry distincts annotés
    hors d'atteinte dans le fichier), qui borne ce que l'organe d'EPIC peut dire.

(3) Le changelog du durcissement #15793 (variation-protocol.md) ramené à une
ligne : son contenu intégral — mesure motrice, contre-poids TIER-INFLATION, organe
de sécheresse #13086 — est déjà dans docs/reference/variation-protocol-detail.md
§12. Aucune prescription du paragraphe ne disparaît : le plancher reste DEEP, le
litmus reste objectif, et il se paie toujours en lecture de tags.

Mesure

avant (origin/main) après delta
proactive-coordination.md 23 337 o 21 988 o −1 349
variation-protocol.md 15 493 o 15 449 o −44
harnais auto-chargé 201 113 o 199 720 o −1 393 o

Instrument : scripts/audit/measure_autoloaded_harness.py, ratio 2,25 o/tok.
Gain : ≈ −619 tokens/session.

Recompte des prescriptions impératives (exigence de l'EPIC)

Sur les deux rules, marqueurs recomptés avant/après — DOIT, JAMAIS, jamais,
interdit, obligatoire, HARD, requis, toujours, règles numérotées, G-VAR-*,
R*, titres de section :

  • 0 prescription disparue. Douze prescriptions ciblées re-vérifiées une à une
    (l'ordre de session de R0, le tri par coût de dossier, les trois organes du geste
    umbrella, le corpus des cas, la distinction conteneur/grain, la précondition
    toxique, les trois surfaces, la règle 5 du pool global, la règle 9) : toutes
    présentes.
  • Un seul marqueur baisse — jamais : 30 → 29. C'est le doublon de la phrase
    « rien ne mesure ne peut jamais être constatée atteinte », qui survit verbatim
    dans le paragraphe Précondition toxique conservé plus bas. Aucun énoncé perdu.

La fusion physique : évaluée, puis écartée — chiffre à l'appui

L'EPIC décrit cette cible comme un « recouvrement auto-déclaré par
variation-protocol ». Mesuré : les deux rules sont complémentaires, pas
redondantes
— proactive-coordination porte les règles R0-R9,
variation-protocol porte la mécanique du tag et les trois gates. Le recouvrement
réel se limite à quelques centaines d'octets (l'en-tête de variation-protocol
renvoyant aux R6/R7, et les deux ## Voir aussi), soit moins que ce que ce trim
retire déjà
.

Une fusion physique (supprimer ou renommer variation-protocol.md) a un coût mesuré
hors de proportion : 92 occurrences du nom, sur 30 surfaces hors docs/reference/
— dont 8 scripts (grain_tag.py, pick_idle_grain.py, variation_light_cap.py,
variation_adjacency_guard.py, variation_prev_guard.py, …), 6 modules de tests,
2 workflows CI (always-on-guards.yml, variation-tag-guard.yml), le template de PR
et 4 rules. Ces surfaces citent le nom comme l'autorité de l'énumération des
genres et de la forme du tag : le renommer rendrait faux des messages que lisent tous
les agents à chaque PR.

Conclusion : le nom variation-protocol.md est un contrat machine, pas un
doublon. Le gain d'une fusion est inférieur au coût de sa propagation, et l'option
retenue par l'EPIC est conservatrice. Le trim est donc livré seul, et cette
analyse est livrée avec lui pour qu'aucune lane ne rebrule un cycle sur cette piste.

Vérifications

$ python scripts/check_docs_links.py --check --base origin/main
OK: No new broken links. (0 pre-existing, 8353 total)

$ python scripts/audit/measure_autoloaded_harness.py --root .
   21 regles auto-chargees     171042 o
      CLAUDE.md                 28678 o
      TOTAL AUTO-CHARGE        199720 o   ~88.8k tokens

Voir #12051

🤖 Generated with Claude Code

… variation-protocol

Retire la redite interne (deux paragraphes jumeaux portant le meme en-tete HARD
sur l'urne umbrella), deplace deux recits mesures vers docs/ avec verification
d'arrivee par grep, et raccourcit le changelog du durcissement #15793, deja
integralement present dans docs/reference/variation-protocol-detail.md §12.

Mesure : 201 113 -> 199 720 o auto-charges (-1 393 o, ~-619 tokens/session).
Recompte des prescriptions imperatives sur les deux fichiers : 0 disparue -- le
seul delta de marqueur (`jamais`) est un doublon du meme enonce, qui survit
verbatim dans le paragraphe "Precondition toxique".

La fusion physique des deux rules est evaluee puis ecartee, chiffre a l'appui :
92 occurrences du nom `variation-protocol` dans 30 fichiers hors docs/ (dont
8 scripts, 6 fichiers de tests, 2 workflows CI, le template de PR et 4 rules).
Le nom est un contrat machine, pas un doublon ; l'analyse est dans le body.

See #12051

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19626 (docs(harness,#12051): vague 2 -- slimming de proactive-coordination + variation-protocol) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

…retires (0 fichier / 2 fichiers)

Deux compteurs quantitatifs en prose flagges par check_prose_quantitative_claims :
- annotation de commande ls-tree : '0 fichier upstream' -> 'absent upstream'
  (le predicat d'absence est garde, la mesure est retiree) ;
- incident C715-L2 : 'memes 2 fichiers' -> 'les memes fichiers'.

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

Copy link
Copy Markdown
Collaborator

🟡 Coordinateur (harnais), à la tête 06dcf7551f : cette PR double #19476 et réécrit trois fichiers en CRLF. Elle ne peut pas être mergée en l'état.

  1. Doublon de docs(harness,#15204): Levier B tranche proactive-coordination -- dedup #11900 + deportation des justifications mesurees #19476, ouverte par la même lane myia-po-2023:CoursIA le 06/10 et approuvée par Hermes. Les deux PRs font le même geste sur .claude/rules/proactive-coordination.md :

    Elles écrivent aussi la même cible, docs/reference/proactive-coordination-detail.md. La première mergée mettra l'autre en conflit.

  2. Fins de ligne : les trois fichiers passent de LF à CRLF. Mesure sur les blobs :

    fichier main (CRLF/LF) tête de la PR (CRLF/LF)
    proactive-coordination.md 0/109 107/107
    variation-protocol.md 0/120 120/120
    proactive-coordination-detail.md 0/219 235/235

    Le diff brut fait +462/-448. Avec --ignore-all-space --ignore-cr-at-eol, il fait +22/-8. C'est la classe de défaut de feat(argu,#18391): vendoring verbatim de l'entonnoir taxonomique (portee 2) #19287, celle que la garde ci(#19374): garde contre les blobs CRLF ou mixtes sous eol=lf (classe de #19287) #19385 doit attraper.

Ce qui est demandé à la lane :

@jsboige

jsboige commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

Fermeture sur steer coordinateur (DM 2026-10-07T02:45:35Z) : cette PR double #19476 (même allègement de proactive-coordination.md — fusion des jumeaux #11900, déport mesure 213 PRs, déport récit knot_lean — même cible proactive-coordination-detail.md), et #19476 est la version saine (déplacement fidèle, Hermes LGTM, dossier adjoint demandé).

Mesures prises avant fermeture, firsthand :

See #19476 — la livraison vive de ce sujet.

@jsboige jsboige closed this Oct 7, 2026
myia-ai-01 pushed a commit that referenced this pull request Oct 7, 2026
…_reds (#19652)

Le picker imputait a la base les rouges d'organes qui ne lisent QUE les
lignes ajoutees par la PR (cas fondateur prose-counts-guard, aussi
readme-ipynb-links-guard, pip-leak-guard, solution-leak-guard et les
gardes delta). L'imputation disait aux 4 lanes bloquees (po-2023, po-2025,
po-2026, ai-01 -- PRs #19614, #19625, #19626, #19634) « pas le votre »,
donc de ne rien faire, alors que la cause est forcement dans le diff.

Source de verite : fast_lane_registry.Guard.argv (drapeau --diff
{base_ref}...HEAD) et Guard.delta_argv (comparaison explicite base/head).
Le helper _diff_bounded_check_names() lit les tranches du registre sans
recopier une liste de noms ; un nouvel organe borne au diff declare dans
la voie rapide est exclu automatiquement, sans patch picker.

Le splitter split_base_corroboration recoit l'ensemble diff_bounded et
place les cles correspondantes dans undecided SEUL (jamais dans base) :
la mesure « check absent du rollup de main » n'est pas un « je ne sais
pas » mais un « il ne peut pas venir de la base ».

Test : 2 lanes, prose-counts rouge, findings differents -> aucune
imputation a la base (le ticket fondateur). Scripts Tests (CPU) rouge
sur main reste impute a la base (regression guard). Cas agregateur
PR gate :: prose-counts-guard beneficie du filtre via le suffixe
:: organ. None (defaut) preserve le comportement d'avant #19645.

Co-authored-by: ai-01 <ai-01@anthropic.com>
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