Skip to content

docs(harness,#15204): tranche git-workflow -- recits DWELL et boucle prevalidation deportes - #21808

Merged
myia-ai-01 merged 1 commit into
mainfrom
docs/15204-harness-git-workflow-slim
Oct 24, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
docs/15204-harness-git-workflow-slim

Conversation

@jsboige

@jsboige jsboige commented Oct 21, 2026

Copy link
Copy Markdown
Owner

Grain: MED/docs — lane myia-po-2028:CoursIA — prev: DEEP/notebook-python #21803

Part of #15204 — Levier B, première tranche (git-workflow.md).

Ce que fait cette PR

.claude/rules/git-workflow.md portait deux récits longs que leurs fichiers de détail portaient déjà (vérifié avant retrait, pas supposé) :

Bloc de la règle Où le récit vivait déjà
Mécanique du plancher DWELL — last_authoritative_committed_at, prédicat conjonctif des trois conditions, cadence réelle du balayage, rejeu de jambe gratuit docs/reference/git-workflow-detail.md §4
Boucle du dossier de prévalidation — mesure 17/17, mécanisme vérifié à la source, où la boucle se referme docs/reference/prevalidation-dossier-order-detail.md §1-§3

La règle conserve tout ce qui prescrit : table de périmètre du force-push, liste « ce que chaque geste fait au plancher », ordre en 4 temps qui sort de la boucle, gel de la branche entre 3 et 4, --force-with-lease, caveat allow_force_pushes 404, et la clause DWELL de l'item 2 de l'ordre. Elle renvoie au détail pour la mesure et le récit.

Aucune règle supprimée. Chaque bloc retiré est retrouvable dans docs/ par git grep d'une phrase-témoin :

Phrase-témoin règle detail preval
last_authoritative_committed_at 1 2 1
merge-tree --write-tree 0 1 0
17 candidates sur 17 0 0 2
surfaces-sha256 1 0 1
head is stale 1 0 3
balayage 1 2 0
178 1 0 0

Une seule retouche de fond dans le détail : le terme surfaces-sha256 vivait dans la règle et pas dans prevalidation-dossier-order-detail.md §2. Il a été ajouté au détail avant le retrait, pour qu'aucun témoin ne disparaisse de l'arbre (critère d'acceptation 3 de l'issue).

Mesure — et son honnêteté

Avant Après Delta
.claude/rules/git-workflow.md 14 319 o 12 788 o −1 531 o
Harnais auto-chargé (measure_autoloaded_harness.py --with-machine) 226 621 o ~225 090 o −1 531 o

Cette tranche ne ferme pas l'objectif de l'issue (cible < 157 500 o ; il reste ~67 600 o à déporter). Elle est livrée comme première tranche d'un fichier, pas comme la solution. Le delta est mesuré, pas estimé — l'estimation de travail était ~4 000 o, la mesure dit 1 531 o : les deux blocs étaient moins longs que leur lecture ne le suggérait.

Deux réserves de mesure, pour le lecteur suivant :

  • measure_autoloaded_harness.py rapporte MEMORY.md MANQUANTE : il cherche le dossier projet c--CoursIA alors que la mémoire auto de cette machine vit dans c--dev-CoursIA. Le total 226 621 o sous-compte donc, et le dit (« non comptée — et PAS comptée zéro »). Ce n'est pas corrigé ici (hors périmètre de la tranche).
  • scripts/ci/measure_harness_weight.py (l'organe nommé dans l'issue) n'existe pas dans l'arbre : il vit dans la PR Add(#15204): organe de mesure du harnais auto-charge (237,7k o, OVER) + path-gate bibliography-hygiene #21243, non mergée. La mesure ci-dessus vient de l'organe existant.

Validation

  • python scripts/audit/measure_autoloaded_harness.py --with-machine avant/après (chiffres ci-dessus).
  • git grep des sept phrases-témoins avant et après retrait (table ci-dessus).
  • Diff : 2 fichiers, +4/−4 lignes — périmètre strictement celui annoncé, markdown seul, aucun notebook touché (C.2/C.3 non applicables).
  • Pre-commit vert (gitleaks inclus).

Suite naturelle (non incluse ici)

Prochaine tranche du même fichier : la section « Worktree cleanup en fin de cycle » (~2 300 o, critères de retrait, table de mesure 2026-09-03, commandes install_prune_task.py) n'a pas de fichier de détail — elle demande la création de docs/reference/worktree-prune-detail.md, donc un sujet distinct. Le fichier restant (12 788 o) contient encore des blocs candidats, mais la règle « un sujet par PR » prime.

🤖 Generated with Claude Code

…prevalidation deportes

Les deux recits longs que la regle portait etaient deja couverts par leurs
fichiers de detail (git-workflow-detail.md sec.4 pour le predicat DWELL,
prevalidation-dossier-order-detail.md sec.1-3 pour la boucle du dossier).
La regle garde les obligations et les gestes (perimetre du force-push, effet
de chaque geste sur le plancher, ordre de sortie de boucle, gel de branche)
et renvoie au detail pour la mesure.

Mesure : 14 319 -> 12 788 o (-1 531). Chaque bloc retire reste retrouvable
par une phrase-temoin dans docs/ (table de temoins dans le body de la PR).
Le terme surfaces-sha256, present dans la regle mais absent du detail, a ete
ajoute au detail avant retrait -- aucun temoin ne disparait.

See #15204

Co-Authored-By: Claude Code <noreply@anthropic.com>
@github-actions github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Oct 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2028:CoursIA a deja consomme son budget LIGHT du jour (axe genre G-VAR-2/3 (light-genre, quel que soit le tier declare) : #21695 (MED/test, merge a 2026-10-21T00:45:05Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Oct 21, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre docs dans la famille META (docs/guard/ledger/readme/test) + diff de 8 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@jsboige

jsboige commented Oct 23, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 21808
head: 0990da5
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 1f993aa886d9fc2fde98138154593c17c114406225e136ce603d4ad4b84653bf
diff-files: 2
diff-additions: 4
diff-deletions: 4
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 21808
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revue du coordinateur (myia-ai-01:CoursIA) a la tete 0990da5709, diff lu en entier, sur le preflight de l'adjoint a cette tete (check_adjoint_prevalidation.py --queue : REVIEW_READY).

Deplacement fidele du detail vers docs/, sans changement de prescription : la liste « ce que chaque geste fait au plancher », l'ordre en 4 temps et le gel de branche restent dans la regle. Les liens visent des sections presentes sur main (git-workflow-detail.md §4, l.38, qui porte merge-tree --write-tree). Le seul ajout au detail, surfaces-sha256, est pose avant le retrait. Aucun sign-off supplementaire n'est requis (CLAUDE.md §A, slimming fidele). B.0 rc=0.

@myia-ai-01
myia-ai-01 merged commit f2833de into main Oct 24, 2026
30 of 31 checks passed
jsboige added a commit that referenced this pull request Oct 24, 2026
…rte par #21808

Le test frere de l'epingle DWELL citait encore la mesure dans la puce de la
regle. #21808 (f2833de) a deporte le recit vers
docs/reference/prevalidation-dossier-order-detail.md : la puce porte le lien,
la mesure vit dans le doc.

L'epingle exige desormais la mesure sur place OU dans le detail CITE par la
puce, avec controle negatif (mesure presente mais lien absent = rouge) : le
contenu reste atteignable depuis la regle, sans redite.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Oct 24, 2026
…Scripts Tests) (#22350)

* Fix(ci,#22279): l'epingle DWELL suit le recit dans le doc de detail + cablage CI

Le recit DWELL (conditions conjonctives, historique #15859/#16149) a ete
deporte de la regle vers docs/reference/git-workflow-detail.md §4 par
#21808 (f2833de) -- le test lisait encore l'ancien emplacement (2
failed / 8 passed sur main e81111a) et aucun workflow ne l'appelait.

1. Les assertions de recit lisent le doc de detail §4 ; les assertions de
   la regle (matrice des gestes, predicat nomme, claims perimees,
   balayage non-horaire) y restent.
2. Cablage CI : garde natif dwell-narrative-pin (TRANCHE28, voie rapide)
   declenche par la regle, le doc de detail, le test et le moteur ;
   pytest ajoute aux dependances du job always-on.
3. Temoins : #15859 retire du §4 fait echouer test_15859_kept_as_corrected
   history ; sur main 10 passed.

Voir aussi #16962 (l'epingle) et #21808 (le deport). La PR #22244 (meme
lane) touche les memes fichiers du registre/moteur : rebase de l'une sur
l'autre selon l'ordre de merge.

Closes #22279

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* Fix(tests,#22315): calibration 20120 epingle le silence Orleans post-#21658

test_20120_corpus_calibration_lines_at_fixed_cells pinnaient encore les
cinq cellules MACHINE_PATH (12, 16, 19, 21, 23) du carnet Orleans 02 :
f2c91b1 (#21658) a rendu le content-root relatif
(`Content root path: OrleansAspireLab`), le scan rend desormais [] sur
les deux classes -- mesure : MACHINE_PATH [], PROGRAM_LITERAL []. Le pin
des cinq indices devient un pin de silence, qui veille au retour d'aucune
fuite de chemin machine dans ce carnet ; les deux controles positifs du
corpus restent portes par les carnets Aspire (PROGRAM_LITERAL [3] / [2]).

Rouge reproduit sur main avant le fix (1 failed, 61 passed, meme
assertion que le body de l'issue) ; suite entiere verte apres (62
passed). Le rouge n'etait visible qu'en workflow_dispatch (ratchet
absorbe par la voie rapide, #12567) -- ce fix rend la suite pytest
rejouable en vert sur main.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* Fix(ci,#22279): l'epingle de la mesure fondatrice suit le detail deporte par #21808

Le test frere de l'epingle DWELL citait encore la mesure dans la puce de la
regle. #21808 (f2833de) a deporte le recit vers
docs/reference/prevalidation-dossier-order-detail.md : la puce porte le lien,
la mesure vit dans le doc.

L'epingle exige desormais la mesure sur place OU dans le detail CITE par la
puce, avec controle negatif (mesure presente mais lien absent = rouge) : le
contenu reste atteignable depuis la regle, sans redite.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* Fix(twin-registry,#22334): 5 collisions d'ordinal levees, 6 attestations vides retirees

Le journal twin_pairs.d rougissait deux tests sur main (2 failed, 45 passed),
donc toute PR touchant le registre.

- 5 collisions d'index NNNN levees par renumerotation chronologique (7 git mv,
  dont une cascade de 3 sur search-02-uninformed) ; probas-14-sequences
  departage par l'ordre d'ajout a main, mesure par git log -1 --format=%cI.
- 6 attestations retirees (gametheory-8 0019/0020, search-03 0026 a 0029) :
  leurs sha git ne sont blob d'aucune revision de leur carnet et leurs hash de
  contenu n'egalent aucun commit du path -- aucun etat de main n'est perdu.
  Re-baseliner par --update aurait fait basculer les paires de DRIFT a OK,
  contraire au critere d'acceptation.

Apres : 47 passed ; check_twin_parity --check reste OK=143 DRIFT=15.

Refs #22334

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* Fix(ci,#22339): test_prevalidation_order_rule -- la mesure fondatrice se lit dans le detail

#21808 (f2833de) a deporte le recit de la boucle de prevalidation hors de
la regle : « 17 candidates sur 17 » vit desormais dans
docs/reference/prevalidation-dossier-order-detail.md (2 occurrences) et la
regle n'en porte plus aucune. Le test lisait encore la regle -> rouge
base-inherited sur main, qui rougit toutes les PRs via Scripts Tests (CPU).

Le test garde deux temoins : la mesure dans DETAIL, et le lien vers ce detail
dans la section de la regle (sans lui la regle ne renvoie plus a sa preuve).
Aucune modification de .claude/rules/** : le deport et le slim sont voulus.

Closes #22339

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

---------

Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants