Skip to content

Redressement campagne densité #13410 : remplissages dégénérés — 233 notebooks, 20 paquets d'audit #17040

Description

@jsboige

Redressement de la campagne de densité (#13410) — remplissages dégénérés

Mandat user (session directe 2026-09-20, ~20:15 locale) — verbatim :

« Je viens de voir arriver une PR de remplissage horrible, qui fait le contraire de ce qu'elle annonce, et dont les 2 Notebooks sont complètement saccagés par le remplissage. » (instance fondatrice : #17036, commentaire user 20:13:43Z)

« Pas plus d'une "lecture" par sortie de cellule, il faut les consolider quand il y en a plusieurs, et puis remettre les choses au bon endroit, car là il y en a de partout, désordonnées, parfois avant le code, parfois dans la mauvaise partie. »

« Qu'ils prennent le temps de supprimer les remplissages inutiles, de consolider les "lectures ancrées" qui se succèdent au même endroit, de replacer au bon endroit les cellules qui sont mal positionnées. »

La règle (canonique, hard)

  1. Une sortie de cellule de code = AU PLUS UNE cellule de lecture markdown. S'il y en a plusieurs qui se suivent ou se recouvrent sur la même sortie : consolider en une seule (garder le contenu le plus fort, fusionner, réécrire — jamais empiler).
  2. Position : la lecture se place immédiatement APRÈS la cellule dont elle lit la sortie — jamais avant le code, jamais dans une autre section.
  3. Suppression du remplissage inutile : lecture qui paraphrase la sortie visible sans interpréter ; doublon d'une lecture préexistante ; lecture citant des valeurs absentes des sorties committées (fabriquées) ; lecture narrating une cellule d'EXERCICE (solution-leak).
  4. Le seuil de densité 1200 n'est PAS une cible — ne jamais ré-ajouter de prose pour le maintenir.

Périmètre mesuré

Les 20 paquets

Chaque paquet = un agent d'audit ; partition contiguë par tri de chemin (séries cohérentes).

Paquet Notebooks Séries PRs densité sources
P01 12 CaseStudies/Diagnostic-Medical/solution; CaseStudies/Diagnostic-Medical/student; CaseStudies/Oncology-Planning 10
P02 12 GameTheory 10
P03 12 GameTheory; GenAI/Audio/04-Applications; GenAI/FallacyDetection; GenAI/Image/02-Advanced 10
P04 12 GenAI/Image/05-History; GenAI/Integrations-DotNet/Aspire; GenAI/Plateformes-Conversationnelles/AI-Engine-WordP 13
P05 12 GenAI/RAG-et-Memoire-Semantique; GenAI/SemanticKernel; GenAI/Texte 10
P06 12 GenAI/Texte; GenAI/Texte/TransformerVariants; GenAI/Vibe-Coding/Claude-Code/notebooks; GenAI/Video/04-Applicat 13
P07 12 IIT/ICT-Series 8
P08 12 IIT/ICT-Series 8
P09 12 IIT; IIT/ICT-Series 10
P10 12 ML/DataScienceWithAgents/01-PythonForDataScience/notebooks; ML/DataScienceWithAgents/02-ML-Cours; ML/DataScien 8
P11 12 ML/ML.Net; Math/Serre100; Probas/DecisionTheory/Causal-Bridges; Probas/DecisionTheory/DecInfer 7
P12 12 Probas/DecisionTheory/DecPyMC 1
P13 12 Probas/Infer; Probas/PyMC; RL 12
P14 12 RL; Search/Applications/CSP; Search/Applications/Hybrid 12
P15 12 Search/Applications/Hybrid; Search/Part1-Foundations; Search/Part2-CSP 9
P16 12 Search/Part4-Metaheuristics; Search/Part4-Metaheuristics/MGS-vs-mealpy; Sudoku; SymbolicAI/Argument_Analysis/g 8
P17 12 SymbolicAI/Lean; SymbolicAI/Planners/01-Foundation; SymbolicAI/Planners/03-Advanced; SymbolicAI/Planners/04-Ne 8
P18 12 SymbolicAI/SMT/Z3-API; SymbolicAI/SemanticWeb 11
P19 12 SymbolicAI/SemanticWeb; SymbolicAI/SmartContracts/02-Solidity-Advanced; SymbolicAI/SymbolicLearning; SymbolicA 10
P20 5 SymbolicAI/Tweety 4

Garde-fous éditoriaux (incidents 02/09 et mandate #13410 STOP)

  • UTF-8 sans BOM, accents conservés à l'octet près ; source reste une liste (jamais re-sérialisée en chaîne).
  • Markdown-only : cellules code, outputs, execution_count, metadata et IDs byte-identiques (aucune re-sérialisation générale, aucune re-exécution).
  • Ne jamais supprimer de contenu antérieur à la campagne (les commits densité sont identifiables via git log — seules les cellules ajoutées par la campagne sont supprimables ; une cellule préexistante ne se réécrit que lors d'une consolidation, en préservant sa sémantique).
  • Organe objectif : python scripts/notebook_tools/check_split_reading_cells.py <nb> doit rendre 0 finding après redressement.
  • Une PR corrective par paquet (branches fix/density-redressement-pNN), commits incrémentaux par notebook, body avec tableau par notebook (supprimées/consolidées/repositionnées + ids de cellules).

Process

  1. [CLAIMED] lane myia-po-2025:CoursIA-2 -- paths: <globs du paquet> sur cette issue AVANT d'éditer.
  2. Audit + PR corrective au fur et à mesure des findings (livraison continue, pas de batch final).
  3. Revue et merge : ai-01 (avec dossier preflight adjoint en support).

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions