Repository navigation
[EPIC] Carnets propres : retirer l'activité de développement (corrigenda, cycles, lanes, Epics) du matériel pédagogique #20250
Description
Activity
- addedqualityNotebook quality issuesNotebook quality issuesEPICEpic tracking issue with sub-issuesEpic tracking issue with sub-issues
on Oct 10, 2026 [CLAIMED] lane myia-ai-01:CoursIA-2 -- phase 0, detecteur d'activite dans la prose des carnets (pose par ai-01 au dispatch) -- paths: scripts/notebook_tools/check_activity_leak.py, scripts/notebook_tools/tests/test_check_activity_leak.py, scripts/ci/fast_lane_registry.py
[CLAIMED] lane myia-po-2023:CoursIA-2 -- phase 1, nettoyage du cas fondateur SC-09 (pose par ai-01 au dispatch) -- paths: MyIA.AI.Notebooks/GameTheory/SocialChoice/09-Committees-STV-Monroe-ChamberlinCourant.ipynb
Précision du mainteneur : le critère est la part, pas la présence
1. Les marqueurs. « Corrigendum » est rare dans les carnets ; ce n'est pas lui qui repère ces passages. Les marqueurs utiles sont :
- les identifiants courts (
c.NNNN,c.NNNN-N1, tags de leçon du typeL576) ; - « réserve » ;
- « DM » (hors Diebold-Mariano) ;
- les noms de machines (
po-2025,myia-…) ; - les horodatages ISO (
2026-10-07T18:52) ; - le vocabulaire de correction rapportée : « commit », « correction », « cellule N », « corrigé dans ».
2. Le critère. Quelques mentions sont acceptables, parfois éclairantes. Le défaut, c'est quand ce récit occupe une part importante du carnet, comme le dernier tiers de SC-09. L'organe de la phase 0 mesure donc une part par carnet. Le ratchet bloque l'ajout d'une section dense, jamais une mention isolée.
3. Mesure par section, sur 1 520 carnets de
main. Une section va d'un titre au suivant ; elle est « dense » si elle porte au moins 3 sortes de marqueurs et au moins 3 marqueurs pour 1 000 caractères. Calibrage : SC-09 ressort à 48 %. Mesurer par paragraphe sous-estimait (6 %), car un corrigendum s'émiette en paragraphes à un ou deux marqueurs chacun.Part de la prose markdown en sections denses Carnets ≥ 30 % 4 ≥ 20 % 5 ≥ 10 % 7 ≥ 5 % 16 au moins une section dense 20 Tête du classement :
Part Carnet 75 % Search/Part1-Foundations/Search-09d-BeckFiala-Lean-Python.ipynb(14 identifiants de cycle ; les titres « Lecture du résultat (cellule N) » gonflent la mesure, à pondérer dans l'organe)48 % GameTheory/SocialChoice/09-Committees-STV-Monroe-ChamberlinCourant.ipynb(cas fondateur)43 % Probas/Applications/Percolation/Percolation-03c-Critique-L512.ipynb(c.1106dans le titre et dans le titre de synthèse)40 % Probas/Applications/Percolation/Percolation-03b-Critique-L128-L256.ipynb25 % Probas/Applications/Percolation/Percolation-04-Sharpness-Python.ipynb16 % GenAI/Texte/TransformerVariants/TV-03-Internalisation-CoT.ipynb15 % IIT/ICT-Series/ICT-35-HumorCausalProbe-Pilot-Python.ipynbConséquence sur les phases.
- La phase 2 porte d'abord sur la vingtaine de carnets à section dense, par part décroissante. C'est là que se trouve le défaut du type SC-09.
- Les centaines de mentions isolées (issue ou Epic en en-tête, un
c.NNNNde passage) relèvent de la phase 3. Elles se traitent série par série, sans viser le zéro absolu. - La série Percolation (trois carnets au-dessus de 25 %) est aussi celle de la pile feat(notebook,#19494): Percolation-03b critique -- extensions L=128, L=256 (convergence asymptotique) #19548 → docs(research,#19494): Percolation-04 Sharpness -- scoping (palier 4) #19556 → docs(notebook,#19494): Percolation-04 Sharpness -- execution (palier 4, c.1108) #19567 : son nettoyage attendra que cette pile soit soldée.
- les identifiants courts (
Phase 1 livree — PR #20252 (lane
myia-po-2023:CoursIA-2, claimc.6096724783: carnet seul).09-Committees-STV-Monroe-ChamberlinCourant.ipynba l'etat final : les trois corrigenda (c.1142, c.1144 recopie deux fois, c.1209) et le verdict de review de l'en-tete sont retires ; la substance est integree a sa place en prose pour l'apprenant (ordre election-avant-elimination en section 2, transfert integral + note Gregory, definition Monroe stricte + piege Monroe/CC en section 3, stats 5/20-19/20-4/20 dans la conclusion).Cellule code touchee (temoin renomme) -> re-execution C.2 : 9/9 cellules, 0 erreur, 2.2 s. Conclusion : 14 334 -> ~3 000 caracteres.
Reste a decider (hors de mon perimetre) : la ligne du ratchet phase 0 (ai-01) et les phases 2-4.
[CLAIMED] lane myia-po-2027:CoursIA-2 -- phase 2, serie SymbolicAI/Tweety : carnets Tweety-0x a l etat final, Tweety-09 et Tweety-07a en tete (pose par ai-01 au dispatch) -- paths: MyIA.AI.Notebooks/SymbolicAI/Tweety/Tweety-0*.ipynb
[CLAIMED-AMEND] lane myia-po-2027:CoursIA-2 -- paths: MyIA.AI.Notebooks/SymbolicAI/Tweety/Tweety-09-Preferences-Python.ipynb, MyIA.AI.Notebooks/SymbolicAI/Tweety/Tweety-07a-Extended-Frameworks-Python.ipynb, MyIA.AI.Notebooks/SymbolicAI/Tweety/Tweety-02-Basic-Logics-CSharp.ipynb, MyIA.AI.Notebooks/SymbolicAI/Tweety/Tweety-07a-Extended-Frameworks-CSharp.ipynb, MyIA.AI.Notebooks/SymbolicAI/Tweety/Tweety-05-Abstract-Argumentation-CSharp.ipynb
Grain DEEP/CONTENU -- Epic #20250 phase 2, serie Tweety (dispatch ai-01, claim d'origine
c.6098659010).Pourquoi l'amend. Le scope initial du dispatch etait
Tweety-0*.ipynb(epic-large). Deux remèdes de l'organe le réduisent au jeu de travail réel :check_lane_claim.pyrendait BLOCKED par unDEAD-SCOPE LOCK(check_lane_claim : un claim scopé sur un chemin inexistant verrouille toute l'issue-parapluie (fail-closed non documenté côté règle) #12905) surmyia-po-2023:CoursIA-2— un chemin déclaré qui ne correspondait à aucun fichier suivi. Ce lock est levé : le fichier existe désormais surorigin/main(mesuré,blocking_lanes: [],epic_wide_on_umbrella: false). Il était un artefact de lecture — mon arbre partagé avait 191 commits de retard et l'organe lit l'arbre de travail.- Le blocage résiduel est la PR Feat(notebooks,#13410): tranche de densite Tweety-06 C# -- pont IKVM et taxonomie d'attaque documentes #20278 (
myia-po-2024:CoursIA-2), qui toucheTweety-06-Structured-Argumentation-CSharp.ipynb, donc mon scope epic-large.
Amender à ces 5 chemins est le remède « re-scope to paths no OPEN PR touches » : aucun n'est touché par #20278.
Le jeu de travail, mesuré par
scripts/notebook_tools/check_activity_leak.py(part de la prose occupée par le récit d'activité) :Carnet part Tweety-09-Preferences-Python.ipynb41,1 % (10 passages denses / 102) Tweety-07a-Extended-Frameworks-Python.ipynb20,3 % (15 / 179) Tweety-02-Basic-Logics-CSharp.ipynb5,5 % (1 / 45) Tweety-07a-Extended-Frameworks-CSharp.ipynb3,5 % (2 / 151) Tweety-05-Abstract-Argumentation-CSharp.ipynb1,2 % (1 / 80) Les 28 autres carnets de la série mesurent 0,0 %. La fuite est entièrement en cellules markdown (une « Note-de-parité cross-langage » par carnet) — aucune cellule code, donc aucun output à re-exécuter.
Hors scope, explicitement :
Tweety-11et leREADME(#20246,myia-po-2024:CoursIA-2) ;Tweety-06(PR #20278,myia-po-2024:CoursIA-2— déconfliction reçue et acquittée). Amender à ces 5 chemins libère le reste deTweety-0*pour les autres lanes.- added a commit that references this issue
on Oct 10, 2026 [RELEASED] lane myia-ai-01:CoursIA-2 -- claim Phase 0 du 2026-10-10T10:50Z libere : l'organe est livre (PR #20255, tete d52423f, 27/27 tests, repairs adjoint c.409/c.410 faites) et aucune lane ne doit plus editer ces fichiers. Le conflit apparent avec #20076 (fast_lane_registry.py) est un artefact du scope de ce claim termine. La lane re-claimera si une re-review de #20255 demande des edits.
Grain: DEEP/notebook-python -- lane myia-ai-01:CoursIA-2 -- prev: MED/guard #20263
[CLAIMED] lane myia-ai-01:CoursIA-2 -- phase 2, serie QuantConnect/ML-Training-Pipeline : carnet m4_dlinear_vol_sc_validation a l'etat final (part recit d'activite 22,1 % mesuree par l'organe Phase 0, la plus forte severite non claimee apres SC-09/Tweety) -- paths: MyIA.AI.Notebooks/QuantConnect/ML-Training-Pipeline/m4_dlinear_vol_sc_validation.ipynb
- added 8 commits that reference this issue
on Oct 10, 2026
Constat
Un carnet doit présenter son contenu à l'apprenant. Beaucoup de carnets racontent en plus l'activité qui les a produits : journaux de corrections, identifiants de cycle, noms de machines et de lanes, verdicts de review, « tranche N de l'Epic #M » dès le premier paragraphe. Pour un apprenant qui ouvre le carnet, ce texte est illisible et ne lui apprend rien.
Cas fondateur — SC-09 (
GameTheory/SocialChoice/09-Committees-STV-Monroe-ChamberlinCourant.ipynb, entré par #19372 le 10/10). La cellule « Conclusion » fait 14 334 caractères. Elle contient deux sections « Corrigendum c.1142 » et « Corrigendum c.1144 », la seconde recopiée deux fois à l'identique, avec références de DM, noms de lanes et « Lecons c.1144-N1 ★ ». La cellule suivante est un « Corrigendum c.1209 » de 3 000 caractères qui commence par « Dossier de domaine de la lane … verdictdomain: fail». L'en-tête annonce un « Verdict SOTA documente :SOTA-OK» et un « axe 2 SOTA non-trivial », qui relèvent du vocabulaire de review. Toutes les gates étaient vertes et la PR a été mergée : aucun organe ne voit ce défaut.Mesure : scan de la prose markdown des 1 520 carnets de
mainau 10/10. Ce sont des marqueurs bruts ; leur précision est d'environ 7/10 sur un échantillon de 10, avec des faux positifs connus : « DM » pour Diebold-Mariano ou dual momentum, « adjoint » au sens mathématique, « dispatch dynamique » au sens informatique.c.NNNNmyia-po-20xx,CoursIA-2, « lane »)Les séries les plus touchées par les marqueurs forts sont IIT/ICT-Series (16 carnets), QuantConnect/ML-Training-Pipeline (13), SymbolicAI/Lean (12), SymbolicAI/Tweety (12) et ML/DataScienceWithAgents (10).
Exemples relevés :
# Percolation 03b — extensions L=128, L=256 (c.1105);PR #18639, MERGED 2026-10-01 par myia-po-2026:CoursIA-2dans GameTheory-20e ;myia-po-2024:CoursIA-2» dans MGS-17b ;c875_hmm_alpha_dm_research.ipynb.Principe
Un carnet présente l'état final corrigé de son contenu. L'historique des corrections vit dans git, dans les PR et dans les issues.
Admis :
À retirer :
c.NNNN) ;SOTA-OK, « axe 2 ») ;À trier : les numéros d'issue dans la prose. Ils sont utiles en pied de carnet, dans une rubrique « pour aller plus loin », quand l'issue documente une question ouverte lisible. Ils n'ont pas leur place dans le premier paragraphe.
Phases
Phase 0 — organe et règle. C'est un prérequis : sans organe, le nettoyage repoussera, et le cas fondateur est passé par toutes les gates le jour même.
scripts/notebook_tools/(nom indicatifcheck_activity_leak.py), à côté decheck_prose_quantitative_claims.pydont il reprend la forme :mainet mode ratchet bloquant sur les lignes markdown ajoutées d'une PR ;7a05215842; contrôle négatif : un échantillon de carnets propres.notebook-conventions.md(path-gated) et critère reviewer danspr-review-discipline.md§D. C'est un changement normatif du harnais : PR et sign-off du mainteneur..claude/agents/notebook-*, enrichisseurs, designers) : vérifier qu'aucune ne pousse à consigner le récit de correction dans le carnet.Phase 1 — cas fondateur SC-09. Réécrire la conclusion à l'état final, en intégrant au corps, à sa place, ce que les corrections ont établi : la définition stricte de Monroe (affectation équilibrée), le dépouillement STV corrigé, les statistiques d'accord remesurées. Supprimer les trois corrigenda et nettoyer l'en-tête. Si seule la prose markdown change, l'exception C.2 s'applique ; si une cellule de code est touchée, ré-exécuter.
Phase 2 — débords francs (corrigenda, cycles, lanes, jargon ; ~120-130 carnets) :
print) ou un commentaire de code, corriger la source et ré-exécuter ; jamais de retouche manuelle de sortie (règle 6 desecrets-hygiene.md).Phase 3 — en-têtes. Le premier paragraphe annonce le contenu ; les références d'Epic et d'issue descendent en pied de carnet.
Phase 4 — noms de fichiers portant un identifiant de cycle : dresser la liste, puis décider au cas par cas. Un renommage exige l'argument pédagogique écrit de
notebook-accretion-numbering.Extension possible, à décider après la phase 2 : les README de séries lus par les apprenants.
Critères de sortie
main: 0 corrigendum de cycle, 0 identifiantc.NNNN, 0 nom de machine ou de lane dans la prose markdown des carnets ; les faux positifs restants sont listés et justifiés.Hors périmètre
docs/ledgers/, dont raconter l'activité est l'objet même. Les commentaires d'issues et les corps de PR, où ce récit a toute sa place.