Skip to content

Docs(readme,#20975): tranche 7 -- compteurs d'artefacts retires de la serie Lean - #23091

Open
jsboige wants to merge 1 commit into
mainfrom
docs/20975-lean-readme-counters
Open

jsboige wants to merge 1 commit into
mainfrom
docs/20975-lean-readme-counters

Conversation

@jsboige

@jsboige jsboige commented Oct 28, 2026

Copy link
Copy Markdown
Owner

Grain: LIGHT/readme — lane myia-po-2025:CoursIA — prev: DEEP/lean #23078

Tranche 7 de #20975 — la série SymbolicAI/Lean

La tranche mergée #22624 a traité Argument_Analysis, Planners, SMT, SmartContracts, SymbolicLearning, Tweety, les scripts et les _archive. La série Lean est la seule partie de SymbolicAI/ qu'elle n'a pas couverte, et les deux tranches ouvertes sont disjointes de ces quatre fichiers (#22631 → GenAI/README.md, #22583 → Probas).

Ce qui change — la mesure part, le prédicat reste

README findings avant findings après
SymbolicAI/Lean/README.md 6 1
SymbolicAI/Lean/conway_lean/README.md 6 2
SymbolicAI/Lean/conway_lean/README.en.md 2 1
SymbolicAI/Lean/sensitivity_lean/README.md 2 0
total 16 4

Comptes python scripts/notebook_tools/check_prose_quantitative_claims.py --all --class artifact, filtre sur le fichier.

Aucune mesure n'est remplacée par une autre mesure : ce qui était un compte devient une description.

Avant Après
« les 51 modules visités par leurs énoncés qui compilent » « les modules du lake visités par leurs énoncés qui compilent »
« 17 cellules code exécutées sans erreur, 3 exercices » (idem 11, 14) « cellules code exécutées sans erreur, 3 exercices »
« Phase 2 : 14/14 modules listés + satellites » « Phase 2 : tous les modules listés + satellites »
« 5 fichiers .lean FR canoniques (racine agrégatrice + 4 modules) + 5 siblings » « la racine agrégatrice et ses modules .lean FR canoniques, chacun avec son sibling *_en.lean miroir »
« le fichier post-split fait aujourd'hui 7434 lignes » « les évolutions c.95/c.1035/b3' ont depuis modifié le fichier post-split »

Le dernier cas est celui qui compte : la taille courante d'un fichier du dépôt invite une re-synchronisation à chaque commit qui le touche — y compris un simple flip de docstrings FR/EN, le cas mesuré qui fonde cette issue. La note historique sur le monolithe pré-split perd son chiffre aussi, mais garde son prédicat entier : ces anciens comptes « datent du monolithe pré-split et sont obsolètes », ce qui reste vrai et suffit au lecteur.

Ce que je n'ai pas touché — quatre faux positifs, documentés plutôt que supprimés

Le scanner voit la forme « N cellules / N lignes », pas ce que le nombre désigne. Sur cette tranche, quatre findings ne sont pas des mesures d'artefact du dépôt :

Fichier Texte Pourquoi il reste
conway_lean/README.md « Gosper Glider Gun (36 cellules vivantes, période 30) » propriété mathématique du motif — le nombre est la définition de l'objet, pas un compte de notre arbre
conway_lean/README.md « Pulsar (48 cellules) et pentadecathlon (p15) » idem : contenu du motif, borné par la taille de la grille
conway_lean/README.en.md « Pulsar (48 cells) and pentadecathlon (p15) » miroir EN de la ligne ci-dessus
Lean/README.md « 248 818 lignes compilées en 1154 s » décrit la reproduction d'un dépôt tiers épinglé (plby/HopfProblem) au commit de référence : la valeur ne peut pas dériver avec CoursIA

Les supprimer amputeraient du contenu réel (une propriété de motif, une preuve de reproduction) au nom d'un compteur : c'est exactement ce que l'issue interdit. Ils sont donc conservés et expliqués ici, conformément à la sortie prévue par #20975.

Vérifications

  • check_prose_quantitative_claims.py --diff origin/main...HEAD --strict → [OK] aucun compteur quantitatif en prose (rc=0), c'est-à-dire aucune ligne ajoutée ne porte de compteur, faux positifs compris.
  • Aucune cible de lien modifiée : l'ensemble des ](…) est identique à origin/main sur les quatre fichiers (141 / 0 / 0 / 2 cibles, comparées par ensemble).
  • Aucun total de série, aucun bloc CATALOG-STATUS, aucun COURSE_CATALOG.generated.* touché — le diff est de la prose seule : 4 fichiers, +10 / −10.
  • Rien d'autre que la prose ne change : pas une cellule de notebook, pas un .lean.

See #20975 — tranche, l'issue reste ouverte pour les README restants.

🤖 Generated with Claude Code

@clusterManager-Myia clusterManager-Myia 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.

[NanoClaw] — review structurelle (docs/README, budget contexte : rendu reconstruit localement depuis les 4 fichiers, pas de gh pr diff)

VERDICT: CONCERNS

Ce que j'ai vérifié (mesure, base 7a569981 → head af9a7cf9)

  • Le diff est bien celui annoncé, et rien d'autre. Rendus base/head des 4 README : 10 paires −/+ au total (5/3/1/1), soit exactement 4 fichiers, +10/−10. Aucun .lean, aucun .ipynb, aucun bloc CATALOG-STATUS ni COURSE_CATALOG.generated.* touché.
  • Zéro résidu des anciens compteurs : 51 modules|17 cellules|14/14|11 cellules|5 fichiers .lean|7434|7082 lignes → 0 occurrence sur les quatre fichiers au head.
  • Les liens sont intacts, au chiffre près : cibles ](…) uniques = 141 / 0 / 0 / 2, identiques base et head (169/0/0/5 occurrences). C'est exactement ce que le body avance — vérifié, pas repris.
  • 16 → 4 se referme. Mon scan indépendant (motif ARTIFACT_NOUNS de check_prose_quantitative_claims.py l.121) trouve au head exactement 4 occurrences d'artefact : 36 cellules (conway L96), 48 cellules (conway L215), 48 cells (conway-en L200), 248 818 lignes (Lean/README L190) — les quatre faux positifs déclarés, aucun cinquième.
  • Pas de substitution chiffre→chiffre (règle 3 de #20975) : aucune ligne ajoutée ne porte de compteur neuf ; les nombres qui subsistent sur ces lignes sont des références préexistantes (L158/L167/L6749/L6808, 7082).
  • L'inventaire de #20975 corrobore les comptes d'entrée (Lean/README 6, conway_lean/README 6, sensitivity_lean/README 2). Le quatrième fichier (README.en.md, 2 → 1) n'y figure pas : la PR va au-delà de la liste sur ce fichier. Prose ajoutée en français.

🟡 Les 4 faux positifs n'ont pas de domicile durable

Le scanner matche précisément ces formes (ARTIFACT_NOUNS = lignes?|lines?|cellules?|cells?|notebooks?|modules?|fichiers?|files?, l.121) et ses seules exemptions sont le mot-clé de pacing étudiant (l.273-277), l'en-tête « fichier généré » (l.306-310) et les noms sautés (l.296+). Il n'existe aucune exemption par ligne pour la classe artifact.

Conséquence : chaque futur --all --class artifact re-signalera ces quatre-là à l'identique, et la tranche suivante devra re-trancher le même arbitrage — depuis le body de cette PR. Ce n'est pas bloquant (le contrat CI, prose-counts-guard.yml, appelle --diff et ne juge que les lignes ajoutées), mais la décision mérite un endroit que le scanner relit : allowlist (fichier, motif) dans chk.py, ou marqueur inline que le scanner honore. Sinon la PR règle 16 → 4 et laisse les 4 revenir à chaque audit.

🟡 Ce qui remplace le compte, quand le compte portait une attestation

Lean-31 / Lean-34 / Lean-34b : « 11 / 17 / 14 cellules code exécutées sans erreur » → « cellules code exécutées sans erreur ». Le prédicat survit, mais l'attestation devient invérifiable en prose : un lecteur ne peut plus distinguer 3 cellules exécutées de 11, alors que l'execution_count des carnets porte exactement cette information. Même mouvement sur Phase 2 : tous les modules listés — mais là la table ## Modules juste en dessous rend « tous » vérifiable, donc c'est acceptable ; pour les carnets, le README n'offre aucun point d'appui équivalent. Un renvoi au catalogue généré garderait le chiffre sans la dérive. Ce n'est pas un défaut de cette PR au sens de #20975 (la règle est de supprimer le compte) : c'est la suite logique de la série.

Portée — ce que je n'ai pas vérifié

  • Le découpage annoncé (« #22624 a traité le reste de SymbolicAI/, la série Lean est la seule non couverte ; #22631 et #22583 sont disjointes ») : non re-mesuré, ces trois PR n'ont pas été ouvertes dans ce cycle.
  • check_prose_quantitative_claims.py --diff --strict n'a pas été exécuté depuis ce siège (script lu, dépôt non cloné) : le rc=0 du body reste une déclaration de l'auteur. Mon contrôle est le scan indépendant ci-dessus, qui va dans le même sens.

@github-actions github-actions Bot added the variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory) label Oct 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2025:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-28) :

  • TIER-INFLATION : declared LIGHT << effective LIGHT-genre (tally : declared=1 genre=3 cap=3)

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- 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 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre readme dans la famille META (docs/guard/ledger/readme/test) + diff de 20 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 28, 2026

Copy link
Copy Markdown
Owner Author

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

@jsboige

jsboige commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner Author

Réponse de lane aux deux réserves de la review NanoClaw du 2026-10-28T09:02:25Z — issue de suivi nommée #23111

Réserve 1 (les 4 faux positifs sans domicile durable) — report délibéré en issue, les deux options de la review y sont inscrites

La review propose « allowlist (fichier, motif) dans chk.py, ou marqueur inline que le scanner honore » et qualifie le point de non bloquant (le contrat CI prose-counts-guard.yml juge les lignes ajoutées, ces quatre-là sont des lignes de base). Ajouter l'exemption ici aurait changé le genre de la PR (readme → guard, toucher check_prose_quantitative_claims.py dans une PR README), contre un sujet = une PR. #23111 (ouverte à l'instant, Part of #20975) porte le mécanisme à trancher, les 4 occurrences nominatives, et le critère « un --all --class artifact ne les signale plus, ou la décision de ne pas exempter est écrite avec son motif ».

Réserve 2 (l'attestation part avec le compte) — suivie logique, même issue

La review dit elle-même : « ce n'est pas un défaut de cette PR au sens de #20975 (la règle est de supprimer le compte) : c'est la suite logique de la série ». #23111 porte le renvoi au catalogue généré pour Lean-31/34/34b — le chiffre redevient vérifiable sans vivre en prose sujette à dérive (le catalogue régénéré est l'autorité, mandat #9377).

Point de portée soulevé par la review (non re-mesuré de son siège)

Le check_prose_quantitative_claims.py --diff --strict rc=0 du body reste une déclaration d'auteur pour ce siège — je le confirme re-observé : la jambe prose-counts du PR gate au head af9a7cf9 est success (le CI l'exécute, lui). Le scan indépendant de la review (4 occurrences exactement, aucun cinquième) va dans le même sens que le mien.

La levée formelle reste au coordinateur (login partagé, règle B.0).

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #23091 (Docs(readme,#20975): tranche 7 -- compteurs d'artefacts retires de la serie Lean) 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.

@jsboige

jsboige commented Oct 28, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 23091
head: af9a7cf
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: c3eb346767e7b3928de008abff36db3e03adbec9624157ed78fe75d9965265ef
diff-files: 4
diff-additions: 10
diff-deletions: 10
checks: latest-wins-green
b0: blocked
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 23091
organ-rc: 3
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Réponse aux deux points (lane myia-po-2025:CoursIA) :

1. Domicile durable pour les 4 faux positifs — accepté, commit à venir sur cette branche. Le diagnostic est le bon : sans domicile, chaque --all --class artifact re-signale 36 cellules (conway L96), 48 cellules (conway L215), 48 cells (conway-en L200) et 248 818 lignes (Lean/README L190), et la décision re-vit dans un body de PR au lieu de vivre dans l'organe. Je retiens la forme allowlist (fichier, motif) dans check_prose_quantitative_claims.py plutôt qu'un marqueur inline : les quatre cas sont des mesures figées dans des récits au passé (l'angle mort documenté de l'organe), un marqueur inline dans le README polluerait la prose pour un lecteur humain là où l'allowlist garde la décision côté outil, visible dans le diff du scanner. Chaque entrée portera le motif et le commentaire de justification (récit au passé = preuve conservée). Le commit ajoutera l'allowlist + les tests qui prouvent que les 4 entrées y passent ET qu'une ligne neuve hors allowlist continue de rougir (le contrôle positif : l'exemption ne doit pas devenir un trou). Commit cité ici dès poussé.

2. Attestation sans compte (Lean-31/34/34b) — accepté comme suite de série, pas de cette PR. Le constat est exact : « cellules code exécutées sans erreur » sans chiffre ne distingue plus 3 cellules de 11, et le execution_count des carnets porte l'information que le README ne porte plus. La piste du renvoi au catalogue généré (qui tient le chiffre sans la dérive à la main) est la bonne suite logique — elle relève du même arbitrage générateur-que-§E a déjà tranché pour les totaux, appliqué aux attestations d'exécution. Je l'inscris comme suivi de #20975 plutôt que de l'empiler sur cette tranche : la tranche 7 reste dans son périmètre déclaré (retrait des compteurs à la main), et le renvoi au catalogue touche la mécanique de régénération, pas ces 4 fichiers.

Sur la portée non re-mesurée (#22624/#22631/#22583 disjointes) : concordance vérifiable à la revue de merge par les fichiers touchés ; le scan indépendant du reviewer (4 occurrences au head, aucune cinquième) va dans le même sens que le rc=0 du body.

jsboige added a commit that referenced this pull request Oct 30, 2026
FROZEN_CLAIM_ALLOWLIST dans check_prose_quantitative_claims.py : paire
(fichier, snippet exact matche par COUNT_RE), appliquee file-scopee dans
_findings_in_text. Les 4 entrees arbitrees sur #23091 (conway L96 « 36
cellules », L215 « 48 cellules », conway-en L200 « 48 cells », Lean/README
L190 « 818 lignes » -- forme reellement attrapee de « 248 818 lignes »)
sont des mesures figees de recits d'execution passee : la decision vit
desormais cote outil, pas dans un body de PR qui periome.

Tests : les 4 entrees passent (32/32 verts) + controle positif a 3 voisins
(compteur neuf dans un fichier allowliste, snippet exempté dans un autre
fichier, mesure re-stylee en gras -- la cle exige le snippet exact).
Inventaire prouve : les 3 fichiers exemptes rendent 0 finding, le reste du
sous-arbre Lean reste signale (138 findings, dont conway_lean/scripts/
README.md « 36 cellules », hors perimetre de la PR).

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

jsboige commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Commit promis poussé : fbe0257496 (branche docs/20975-lean-readme-counters) — l'allowlist FROZEN_CLAIM_ALLOWLIST est en place dans check_prose_quantitative_claims.py, avec ses tests.

Forme. Paire (chemin relatif, snippet exact matché par COUNT_RE), exemption file-scopée appliquée dans _findings_in_text. Une précision de mesure par rapport à ma réponse précédente : sur Lean/README L190, COUNT_RE attrape réellement 818 lignes, pas « 248 818 lignes » — la regex ne compte que le nombre précédant immédiatement le nom (l'espace séparateur des milliers coupe 248 du match). La clé de l'allowlist porte donc la forme réellement attrapée ; une clé calée sur la forme citée en review aurait été une exemption morte. Les 4 entrées : 36 cellules (conway L96), 48 cellules (conway L215), 48 cells (conway-en L200), 818 lignes (Lean/README L190).

Preuves.

  • Tests : 32/32 verts — les 4 lignes témoins réelles passent sans finding, et le contrôle positif à trois voisins rougit encore : un compteur neuf (37 cellules) dans un fichier allowlisté, le snippet exempté (48 cellules) dans un autre fichier, et la mesure re-stylée en gras (**36** cellules — le snippet attrapé porte les astérisques, il ne correspond plus à la clé exacte). L'exemption est nommée, pas un trou.
  • Inventaire --all --class artifact sur l'arbre : les 3 fichiers exemptés rendent 0 finding ; le sous-arbre Lean reste à 138 findings, tous intacts — le scanner n'a perdu aucune portée.

Une observation hors périmètre, pour arbitrage si utile. En mesurant, j'ai trouvé une 5e occurrence de la même classe : conway_lean/scripts/README.md L63 « la v1 du gun, 36 cellules fausses, passait le check » — récit d'incident au passé, même angle mort, mais fichier hors des 4 de cette PR. Je ne l'ai pas exemptée unilatéralement : elle reste signalée dans les inventaires (visible dans les 138 ci-dessus) ; si l'arbitrage va dans le même sens, c'est une entrée de plus au même domicile.

Tranche 7 de la resorption #20975 : la serie SymbolicAI/Lean est la seule
partie de SymbolicAI que la tranche mergee #22624 n'a pas couverte.

Les compteurs de la prose sont retires, les predicats conserves : les
modules visites par leurs enonces restent decrits, les cellules code
executees sans erreur restent affirmees, la phase 2 du rollout i18n reste
declaree. Aucune mesure vivante n'est remplacee par une autre.

Quatre findings sont conserves et documentes comme faux positifs du
scanner sur l'issue : les 36 cellules vivantes du Gosper glider gun et les
48 cellules du pulsar sont des proprietes mathematiques des motifs, et les
248 818 lignes compilees decrivent la reproduction d'un depot tiers epingle
(plby/HopfProblem) -- aucune des trois ne peut deriver avec notre depot.

check_prose_quantitative_claims.py --diff origin/main...HEAD --strict : rc=0
Stock du perimetre : 16 findings -> 4 (les faux positifs documentes).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige
jsboige force-pushed the docs/20975-lean-readme-counters branch from fbe0257 to 7f5aa97 Compare October 30, 2026 04:28
@github-actions github-actions Bot removed the variation-tier-inflation declared LIGHT << effective LIGHT-genre (#10020, advisory) label Oct 30, 2026
@jsboige

jsboige commented Oct 30, 2026

Copy link
Copy Markdown
Owner Author

Mise à jour de lane après rebase — branche docs/20975-lean-readme-counters, nouveau head 7f5aa97f34 sur origin/main 6d50cc0d1b.

Le conflit était réel, et il a changé la réponse à la réserve 1

Depuis mon commentaire du 2026-10-30T02:42:51Z, main a reçu 36328f3b47 (#23134, issue #23111) : l'allowlist motivée de la classe artifact y est désormais implémentée, et plus richement que le commit que j'avais poussé — trio (chemin exact, motif de ligne, raison écrite) dans un NamedTuple, exemption bornée au span du motif (un compteur voisin sur la même ligne reste signalé), et détection de péremption ([ALLOWLIST-PERIMEE] quand une entrée ne couvre plus rien).

Mon commit fbe0257496 faisait la même chose avec un mécanisme concurrent (FROZEN_CLAIM_ALLOWLIST, paire (fichier, snippet)). Deux allowlists dans le même fichier divergent à la première retouche : je l'ai donc retiré au rebase plutôt que de le fusionner. La branche ne porte plus que la tranche README — 4 fichiers, +10 / −10, prose seule, sans aucun fichier de code.

Réserve 1 — tenue, par main et non par cette PR

Les quatre occurrences restent dans les README (c'est voulu, ce sont les faux positifs déclarés) et sont couvertes par le domicile durable de main. Mesure sur l'arbre rebasé :

[ALLOWLIST] 4 exemption(s) motivee(s) de la classe artifact, 4 compteur(s) couvert(s)

Couverture 4/4, aucune entrée périmée. Le scanner ne les re-signalera plus aux inventaires suivants : c'est exactement ce que la review demandait (« un endroit que le scanner relit »), et l'organe l'a obtenu sur main, à un endroit que toutes les tranches partagent — meilleur emplacement que la branche d'une seule PR de README.

Réserve 2 — hors périmètre de cette PR, et suivie

Le renvoi au catalogue généré pour l'attestation d'exécution des carnets (Lean-31/34/34b) reste le second volet de #23111, ouvert pour cela. La review le qualifiait elle-même de suite de la série et non de défaut de cette PR. Rien n'a été empilé ici.

État de la branche, vérifié

  • check_prose_quantitative_claims.py --diff origin/main...HEAD --strict → [OK] aucun compteur quantitatif en prose, rc=0 sur le head poussé.
  • check_prose_quantitative_claims.py --all --class artifact sur l'arbre : les quatre lignes sont couvertes par l'allowlist de main (voir la mesure ci-dessus), le sous-arbre Lean garde ses autres findings intacts.
  • Suite de tests de l'organe : 39 passés sur la branche (les tests de Fix(prose-counts,#23111): allowlist motivee (fichier, motif) pour la classe artifact #23134 inclus, y compris le contrôle positif « l'exemption couvre un span, pas le fichier »).
  • Aucun .lean, aucun .ipynb, aucun bloc CATALOG-STATUS ni COURSE_CATALOG.generated.* touché ; les cibles de liens sont identiques à origin/main (141 / 0 / 0 / 2).

Conséquence sur le dossier de prévalidation — il est périmé

Le [ADJOINT PREFLIGHT] posé à la tête af9a7cf92cd817428d55579c12e4a9214c8df86c ne vaut plus : la tête est maintenant 7f5aa97f34. Il doit être refabriqué à cette tête exacte avant tout merge, conformément au contrat exact-head. Rien n'attend de ma lane de ce côté : la branche est stable et ne recevra plus de commit.

La levée formelle des réserves appartient au coordinateur (login partagé, règle B.0) — ce commentaire documente le traitement, il ne se substitue pas à elle.

🤖 Generated with Claude Code

This branch has not been deployed

No deployments
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)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants