diff --git a/.claude/agents/readme-hierarchy-auditor.md b/.claude/agents/readme-hierarchy-auditor.md index 71075ffebf..bb7fb8bd97 100644 --- a/.claude/agents/readme-hierarchy-auditor.md +++ b/.claude/agents/readme-hierarchy-auditor.md @@ -54,7 +54,6 @@ Pour chaque repertoire sans README, en commencant par les plus profonds : | Statistique | Valeur | |-------------|--------| - | Notebooks | X | | Kernel | [type] | | Duree estimee | ~Xh | @@ -78,7 +77,7 @@ Pour chaque repertoire sans README, en commencant par les plus profonds : Pour chaque README existant, en remontant niveau par niveau : 1. **Verifier la coherence** : - - Nombre de notebooks correct ? + - Tous les notebooks du dossier sont-ils presentes (section ou ligne de table) ? - Tous les fichiers references existent ? - Liens vers sous-repertoires a jour ? @@ -89,19 +88,17 @@ Pour chaque README existant, en remontant niveau par niveau : 3. **Corriger les erreurs** : - Liens brises - - Statistiques obsoletes + - Totaux ecrits a la main (nombre de notebooks, cellules) : les supprimer au profit du bloc `CATALOG-STATUS`, jamais les remettre a jour - Structure de repertoire changee ### Phase 4 : Consolidation README principal 1. **Collecter les informations** de tous les README intermediaires : - - Statistiques totales (notebooks, durees) - Structure complete de l'arborescence - Technologies utilisees 2. **Mettre a jour la cartographie** : - Section "Structure du depot" - - Tableaux statistiques globaux - Liens vers README intermediaires 3. **Identifier les incoherences** : diff --git a/.claude/agents/readme-updater.md b/.claude/agents/readme-updater.md index 03f501157b..a0c1c8053e 100644 --- a/.claude/agents/readme-updater.md +++ b/.claude/agents/readme-updater.md @@ -1,6 +1,6 @@ --- name: readme-updater -description: Update README files for notebook series (structure tables, navigation links, statistics). Use after adding or modifying notebooks in a series. +description: Update README files for notebook series (notebook presentation, structure tables, navigation links; totals are left to the catalogue regeneration). Use after adding or modifying notebooks in a series. tools: Read, Glob, Grep, Bash, Write, Edit model: haiku memory: user @@ -40,8 +40,6 @@ python scripts/notebook_tools/extract_notebook_skeleton.py [target_path] --outpu ``` 2. **Analyser le resultat** pour identifier : - - Nombre de notebooks - - Cellules totales (markdown/code) - Sections principales par notebook - Kernels utilises - Duree estimee @@ -59,16 +57,16 @@ python scripts/notebook_tools/extract_notebook_skeleton.py [target_path] --outpu 3. **Determiner les sections a mettre a jour** : - Tableaux de notebooks (toujours mettre a jour) - Descriptions detaillees (si --full) - - Compteurs (total cellules, duree) + - **Jamais les totaux** (nombre de notebooks, cellules, comptes par langage) : ils relevent de la regeneration du catalogue (`CATALOG-STATUS`, #9377) ; une ligne de compte fausse se supprime au profit du renvoi au catalogue ### Phase 3 : Generation du contenu #### Format du tableau principal ```markdown -| # | Notebook | Kernel | Cellules | Duree | Contenu | -|---|----------|--------|----------|-------|---------| -| 1 | [Name](Name.ipynb) | Python | 45 | ~30 min | Description courte | +| # | Notebook | Kernel | Duree | Contenu | +|---|----------|--------|-------|---------| +| 1 | [Name](Name.ipynb) | Python | ~30 min | Description courte | ``` #### Format des descriptions detaillees @@ -81,7 +79,6 @@ Pour chaque notebook : **Titre du notebook** - **Kernel**: Python / .NET C# / Lean 4 -- **Cellules**: X (MD: Y, Code: Z) - **Duree**: ~N min - **Prerequis**: Notebook(s) precedent(s) @@ -107,7 +104,6 @@ Pour chaque notebook : - La structure generale du document 3. **Mettre a jour** : - Les tableaux avec les nouvelles donnees - - Les compteurs de cellules/durees - Les descriptions si modifiees ## Criteres de qualite @@ -123,16 +119,17 @@ Description courte de la serie. | Statistique | Valeur | |-------------|--------| -| Notebooks | N | -| Cellules totales | X | -| Duree estimee | ~Yh | +| Langages | [kernels] | +| Niveau | [debutant a avance] | + +(Pas de total de notebooks ni de cellules : le decompte vit dans le bloc `CATALOG-STATUS`, regenere automatiquement.) ## Structure ### Partie 1 : [Theme] -| # | Notebook | Kernel | Cellules | Duree | Contenu | -|---|----------|--------|----------|-------|---------| +| # | Notebook | Kernel | Duree | Contenu | +|---|----------|--------|-------|---------| ... ### Partie 2 : [Theme] diff --git a/.claude/rules/pr-review-discipline.md b/.claude/rules/pr-review-discipline.md index 3be835c4e3..fbef392d8b 100644 --- a/.claude/rules/pr-review-discipline.md +++ b/.claude/rules/pr-review-discipline.md @@ -83,7 +83,7 @@ Single-seed ou single-fold = **CHANGES_REQUESTED** sauf flag explicite `[POC]` d PRs uniquement docs/README/CLAUDE.md/rules : quand le diff est **fin**, le reflexe n'est pas le refus mais la question « **le geste peut-il etre etendu ?** » — proposer l'elargissement qui evite le saucissonnage (les fichiers voisins de la meme serie, les occurrences sœurs du meme defaut). Le refus reste la sortie quand l'extension a ete proposee et ecartee sans motif, et pour de multiples READMEs sans coherence cross-series. -**Feuille README (#3973/#3975) — audit fichier ENTIER obligatoire.** Une PR qui met à jour un compte / une statistique / un paragraphe dans un README de série DOIT prouver dans le body qu'elle a ré-audité le **fichier entier** contre le disque : (a) `ls`/`find` count par sous-dossier cité ; (b) réconciliation **disque ↔ `CATALOG-STATUS` ↔ prose** (catalogue faux : **signaler**, ne PAS s'aligner dessus) ; (c) listes, arbres de structure et breakdowns vérifiés à jour. Corriger l'intro en laissant une liste obsolète 100 lignes plus bas = `CHANGES_REQUESTED` ; le format « slim +5/−5 » ne dispense pas de l'audit, il le **plafonne à tort**. +**Feuille README — les totaux ne se mettent pas à jour à la main (arbitrage user 2026-09-24, #17029 revertée).** Total de notebooks, comptes par langage ou par sous-dossier, comptes de cellules, bandeaux « N notebooks » : ces statistiques dérivent à chaque ajout et relèvent de la **régénération du catalogue** (`CATALOG-STATUS` ; mandat user du 2026-08-04, #9377). Une PR de README dont la substance est une mise à jour de totaux = `CHANGES_REQUESTED`, quelle que soit la qualité de son audit. L'organe qui les repère est `python scripts/notebook_tools/check_prose_quantitative_claims.py --diff origin/main...HEAD` : son check-run `prose-counts` est advisory et rend `success` **même quand il trouve**, donc on lit sa sortie, pas sa couleur ; une ligne de compte fausse se **supprime** au profit du renvoi au catalogue, elle ne se remet pas à jour. Après l'ajout d'un notebook, la PR de README livre le **corps qui le présente** : sa section (ce qu'il démontre, ses outils, sa place dans le fil de la série), ses lignes dans les tables de navigation, les acquis et les parcours — contenu fidèle au notebook, lu avant d'écrire. Une PR qui corrige un passage d'un README ne laisse pas d'incohérence ailleurs dans le fichier (listes, arbres, liens) ; corriger l'intro en laissant une liste obsolète 100 lignes plus bas = `CHANGES_REQUESTED`. ### F. Audit reassessment / « false positive »