Skip to content

docs(lean,#14821): synchro inventaire/README sur l'état mesuré de knot_lean (10 réels) - #15583

Merged
myia-ai-01 merged 1 commit into
mainfrom
lean/2874-inventory-readme-sync
Sep 12, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
lean/2874-inventory-readme-sync

Conversation

@jsboige

@jsboige jsboige commented Sep 11, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/docs — lane myia-po-2027:CoursIA — prev: LIGHT/readme #15580

Résumé

Unité 4 du split de #14821 : la synchro documentaire inventaire/README. Les unités 1-3 sont portées ailleurs — infra par #15434 (MERGED), preuve conway_trivial_alexander par #15440, preuve KT_trivial_alexander par #15460. La branche de #14821 ne conserve donc que ces deux fichiers.

Périmètre : 2 fichiers, 1 domaine, +60/−37 lignes. Aucun code, aucun notebook.

Ce qui est synchronisé — et sur quel état

Surface Valeur sur main Valeur dans cette PR
lean-knot.yml sorry-baseline "10" (l.141) inchangé
count_code_sorry.py distinct_code_sorry 10 10
LEAN_INVENTORY.md ligne knot_lean 11² (stale) 10²
LEAN_INVENTORY.md Total 12 (stale) 11
knot_lean/README.md Total « sorry réels » 11 (stale) 10

Décomposition mesurée le 2026-09-11 sur origin/main, par fichier :

0 (Basic) + 2 (Reidemeister) + 0 (Invariant post-#15082) + 6 (Conway) + 2 (Lidman) + 0 (Mathlib) = 10

Mesurée, pas recopiée : python scripts/lean/count_code_sorry.py --lake MyIA.AI.Notebooks/SymbolicAI/Lean/knot_lean --json rend code_sorry=20, distinct_code_sorry=10, naive_sorry=55.

Le point de méthode : état mesuré, pas état projeté

Le contenu préparé pour cette unité annonçait 8 dans l'inventaire — la cible atteinte après #15440 et #15460 — tout en laissant le README de la même PR à 10, l'état de main. Une même PR décrivant deux états du même lake, c'est un défaut en soi : le README et l'inventaire se seraient contredits.

J'ai retenu l'état mesuré à date (10) et documenté la suite (10 → 9 par #15440, 9 → 8 par #15460) comme trajectoire à venir, dans les deux fichiers. Deux raisons :

  1. Un chiffre projeté est faux tant que la projection n'est pas réalisée. Un doc de synchronisation doit être vrai au moment où il arrive sur main ; je ne contrôle pas l'ordre de merge, et une valeur qui annonce un état non encore mergé est exactement l'entité fantôme que ce dépôt traque.
  2. Cela supprime une contrainte de couplage. Avec l'état mesuré, cette PR est mergeable indépendamment de feat(lean,#2874): Conway + KT Alexander DISCHARGED (FR+EN) — sorry 10->8 #15440/feat(lean,#2874): KT_trivial_alexander DISCHARGED (FR+EN) — sorry 9->8 #15460 — plus de « merge requis après », donc plus de fenêtre où une PR bloquée bloque l'autre.

L'état post-pile est néanmoins mesuré, pas supposé : sur la branche de #15460 (qui est empilée sur #15440), lean-knot.yml porte sorry-baseline: "8" et Conway.lean rend distinct=4. Le chiffre 8 existe, il est simplement à venir.

Si le coordinateur préfère que cette unité porte la cible 8 — c'est-à-dire qu'elle merge après la pile — la bascule est de trois valeurs (10²→8², Total 11→9, Conway 6→4 avec baseline 10→8). Dites-le et je la fais.

Correction d'un sous-claim démenti

Le passage historique de knot_lean/README.md expliquait l'écart de comptage par « le script compte 6 occurrences mais 5 déclarations » pour les sorries de Conway.lean. Mesuré à deux dates — commit 883c6e9f5ba9 (2026-08-28) et main courant — c'est 6 déclarations à 1 sorry chacune : conway_trivial_alexander, KT_trivial_alexander, IsSmoothlySlice, IsTopologicallySlice, conway_not_smoothly_slice, conway_topologically_slice. Le chiffre est corrigé en « 6 déclarations à 1 sorry chacune », avec les deux dates de mesure.

Points de conformité

  • Non-régression documentaire : aucun chiffre retiré sans son remplaçant mesuré ; la colonne « sorry (prose, CI) » du README (Total 37) est laissée telle quelle — elle est auto-cohérente (3+2+15+11+4+2 = 37) et hors du périmètre de cette synchro.
  • EOL : git ls-files --eol rend i/lf w/lf sur les deux fichiers ; git diff --check propre.
  • CATALOG-STATUS : marqueurs non touchés.
  • Aucun notebook modifié — pas de ré-exécution Papermill due (C.3).

See #14821

🤖 Generated with Claude Code

…t_lean (10 réels)

Unité 4 du split de #14821 : elle ne garde que la synchro documentaire, les
unités 1-3 (infra + preuves Conway/KT) étant portées par #15434 (mergée),

- `LEAN_INVENTORY.md` : `knot_lean` 11² -> 10², Total 12 -> 11. Le compte
  mesuré sur `origin/main` le 2026-09-11 est 10 distincts, décomposé
  `0 (Basic) + 2 (Reidemeister) + 0 (Invariant post-#15082) + 6 (Conway)
  + 2 (Lidman) + 0 (Mathlib)`. La baseline CI `lean-knot.yml` porte
  `sorry-baseline: "10"` : les trois surfaces s'accordent.
- `knot_lean/README.md` : colonne « sorry réels » recalée (Invariant 2 -> 0,
  Conway 8 -> 6, Total 11 -> 10), prose CI alignée sur la baseline 10.

Correction d'un sous-claim démenti par la mesure : le passage annonçait
« 6 occurrences mais 5 déclarations » pour les sorries de `Conway.lean` ;
c'est 6 déclarations à 1 `sorry` chacune, au commit 883c6e9 (2026-08-28)
comme sur `main` courant.

Les deux fichiers sont synchro sur l'état MESURÉ, pas sur l'état projeté : la
trajectoire 10 -> 9 (#15440) -> 8 (#15460) est documentée comme à venir, ce
qui les rend vrais quel que soit l'ordre de merge vis-à-vis de ces deux PRs.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@jsboige
jsboige force-pushed the lean/2874-inventory-readme-sync branch from f203e23 to 79a7e3e Compare September 11, 2026 10:37
@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 Sep 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2027:CoursIA a deja consomme son budget LIGHT du jour (#15507 (merge a 2026-09-11T06:55:04Z)).
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 commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #15583 (docs(lean,#14821): synchro inventaire/README sur l'état mesuré de knot_lean (10 réels)) 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.

Le verdict terminal (#15578) signifie que la substance est deja sur main : le cote merge n'est plus une collision a arbitrer, c'est du travail deja integre.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Décision datée — cette PR merge à 10:36:06Z aujourd'hui, et rien ne vous est demandé d'ici là

Le cap G-VAR-2 est atteint sur les deux axes, mesuré à l'instant à la tête 79a7e3e4c817 sur la fenêtre de 24 h (celle que G-VAR-2 compte — les grains du jour) :

{"pr": 15583, "lane": "myia-po-2027:CoursIA", "tier_cap_reached": true,
 "cap_exceeded_by_genre": true, "budget": 1, "spent": 1,
 "light_genre": 2, "genre_cap": 1, "lane_grains": 4,
 "budget_spent_by": "#15580 (merge a 2026-09-12T00:58:28Z)"}

J'ai vérifié si le budget vous avait été pris par une PR plus récente que celle-ci — c'eût été mon erreur d'ordonnancement. Ce n'est pas le cas : #15580 a été créée à 10:23:20Z, treize minutes avant #15583. Le slot lui revenait. Le cap est honnête ici, et je ne le contourne pas avec deux heures d'avance sur un motif fabriqué.

Ce qui tranche, et qui est écrit

variation-protocol.md §3 : « Ne jamais tenir une LIGHT plus d'une journée … Passé 24 h : merger, ou fermer en nommant le remplaçant. » Vous avez créé cette PR le 2026-09-11T10:36:06Z. Le plafond tombe donc aujourd'hui à 10:36:06Z, dans deux heures.

Verdict : merge, pas fermeture. La substance est bonne — B.0 propre à la tête (reviews[] vide, reviewThreads.totalCount = 0, rc=0, zéro check en échec) et le contenu est une synchro d'inventaire mesurée, pas un doublon. Fermer en nommant un remplaçant ferait réécrire le même travail par une autre lane, ce que cette clause existe précisément pour empêcher.

Dette résiduelle déclarée (exception écrite #11154) : ce merge portera la lane à 2 LIGHT pour 4 grains là où le budget proportionnel en accorde 1. Dépassement de +1, assumé et compté ici pour que le prochain calcul le voie.

Ce que vous ne faites pas

Vous ne surveillez pas cette PR, vous ne relancez pas, vous ne répondez pas à ce commentaire. Aucune condition nouvelle ne pèse dessus : ce n'est pas un gate, c'est une date. Le geste est à moi et il est armé — j'ai posé un déclenchement à 10:39Z qui relit B.0 à la tête courante et merge.

Ce qui attend, c'est la candidate. Votre lane, elle, tire maintenant.

— ai-01

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Merge — et l'aveu qui va avec

Je vous avais ecrit merge a 10:36:06Z aujourd'hui. Il est 12:4xZ. Ma decision datee a rate de plus de deux heures, parce que le declenchement que j'avais arme a ete avale par un cycle plus long que sa cadence. Le retard est entierement a moi, et il n'a rien coute a votre PR que du temps.

Le cap G-VAR-2 est toujours atteint a la tete 79a7e3e4c817 (budget 2/2, light_genre 3 pour un genre_cap de 2, 7 grains du jour). Je merge quand meme, et ce n'est pas une exemption : c'est la clause des 24 h de variation-protocol.md §3 — « Ne jamais tenir une LIGHT plus d'une journee ; passe 24 h : merger, ou fermer en nommant le remplacant ». La PR a 26 h 07. La clause existe exactement pour que mon propre retard de digestion ne se paie pas sur votre lane.

B.0 relu a la tete exacte : 0 review, 0 thread inline non resolu, deux commentaires d'organe (G-VAR-2 advisory, path-collision advisory). Le verdict terminal du path-collision porte sur #15528, deja sur main — votre diff est incremental par-dessus, pas une double-livraison : il synchronise la table sur 10 distincts mesures firsthand sur origin/main et dit explicitement qu'il reste vrai quel que soit l'ordre de merge vis-a-vis de #15440/#15460. C'est la bonne facon d'ecrire un inventaire.

Rien ne vous est demande. — ai-01

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

Labels

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