Repository navigation
[EPIC] Finition de série : critères de sortie (objectifs, blocs de fin, capstone, parcours 0) #19297
Description
Pourquoi cette issue
Le mainteneur a validé le 2026-10-05 le régime de finition de série et ses critères de sortie. Ces critères viennent d'un avis externe sur le dépôt, que nous avons confronté au contenu réel. Ce que l'avis demandait existe déjà en grande partie :
- les parcours (dont
aima-walk.md, environ 25 h) ; - le graphe de prérequis et la maturité par carnet ;
- le site Quarto ;
- les carnets jumeaux Python/C#/Lean ;
- l'échelle de confiance Lean.
Les vrais manques sont pédagogiques, et aucune règle ne les demandait jusqu'ici. Cette issue les suit, série par série.
Mesure de départ (origin/main, 2026-10-05, ai-01)
1492 carnets hors _archive et _output. Comptage sur les titres des cellules markdown (lignes # ou **), sans accents ni casse :
| Bloc | Carnets qui l'ont |
|---|---|
| « À retenir » | 203 (14 %) |
| « Vérifiez votre compréhension » (ou auto-évaluation, questions de compréhension) | 10 (1 %) |
| « Pour aller plus loin » | 270 (18 %) |
Une section d'objectifs (ou de compétences) existe dans 9 READMEs de série sur 14. Elle manque dans Complexity, Compression, NLP, RL et SymbolicAI.
Il n'existe pas de parcours d'entrée court. Le chemin local Search → Sudoku → ML (README racine) n'a pas de durée, et le plus court parcours suivi fait 8 à 10 h.
Pour les deux premières séries :
| Série | Carnets | À retenir | Vérifiez | Plus loin | Objectifs README |
|---|---|---|---|---|---|
| Search | 157 | 19 | 0 | 45 | oui |
| RL | 37 | 10 | 0 | 14 | non |
Critères de sortie d'une série
Une série est déclarée finie quand :
- son README a une section Objectifs : ce que le lecteur saura faire à la fin, en phrases vérifiables ;
- chaque carnet du chemin principal se termine par trois blocs :
- À retenir : 3 à 5 points, tirés de ce que le carnet a montré ;
- Vérifiez votre compréhension : 2 à 4 questions dont la réponse se trouve dans le carnet, avec la réponse repliée ou en fin de bloc ;
- Pour aller plus loin : lectures et carnets suivants ;
- elle a un capstone, là où il vient naturellement : un carnet qui réinvestit plusieurs carnets de la série sur un problème plus grand. Ce n'est pas exigé partout.
Le dépôt dans son ensemble reçoit un parcours 0 de 2 h, tiré du chemin local existant et chronométré.
Ce que ce régime n'est pas
- Pas de reprise rétroactive en masse : on applique série par série, quand la série passe en finition.
- Pas de nouvelle taxonomie de maturité : le dépôt en a déjà quatre qui se chevauchent, il faut les consolider plutôt qu'en ajouter une.
- Un bloc ajouté est du markdown : C.2 n'exige pas de ré-exécution pour une modification uniquement markdown, et C.3 interdit de re-sérialiser les sorties d'un carnet qu'on n'a pas modifié.
- Les questions de « Vérifiez » sont écrites à partir du contenu réel du carnet, lu avant d'écrire, jamais génériques.
Ordre
- Search : la carte de réorganisation est validée ([Search] Réorganiser la série : parties explicites, fin des dossiers d'opportunité (Applications, Discrepancy) — proposition à arbitrer #19253). Les blocs de fin commencent par
Part1-Foundations/, qui ne bouge pas, pour ne pas toucher deux fois les carnets renommés. - RL : la finition est arbitrée (RL(#5081): lecture de gradation et finition — noms des carnets, sous-série rlpt, README au gabarit #19255). Les objectifs arrivent avec le README au gabarit.
- Les séries sans objectifs : Complexity, Compression, NLP, SymbolicAI.
Organes
- La règle :
.claude/rules/notebook-conventions.md, avec le détail dansdocs/reference/finition-de-serie.md(PR à suivre). - La mesure : un script
scripts/notebook_tools/check_series_finish.pyqui rend, par série, le tableau ci-dessus. Il est à écrire à partir du comptage de départ, et sert à déclarer une série finie sans recompter à la main.
Activity
myia-ai-01 commentedon Oct 5, 2026
[CLAIMED] lane myia-ai-01:CoursIA-2 -- paths: scripts/notebook_tools/check_series_finish.py, scripts/tests/test_check_series_finish.py (organe de mesure du régime de finition)
Claim posé par le coordinateur au dispatch. Point de départ : le script de comptage qui a produit la mesure de cette issue, déposé localement sur ai-01 (
%TEMP%/coursia-handoff/measure_finish_19297.py).docs(rules,#19297): mesure -- titre voisin a renommer vs bloc absent,…
jsboige commentedon Oct 5, 2026
[CLAIMED-AMEND] lane myia-ai-01:CoursIA-2 -- paths: scripts/notebook_tools/, MyIA.AI.Notebooks/Compression/
jsboige commentedon Oct 5, 2026
[CLAIMED-AMEND] lane myia-ai-01:CoursIA-2 -- paths: scripts/notebook_tools/, MyIA.AI.Notebooks/Compression/
docs(compression,#19297): section Objectifs d'apprentissage (5 verbes…
jsboige commentedon Oct 5, 2026
[INFO] c.177 livraison 1 : sous-graine Compression — PR #19303 (5e commit
de2b788fc, +10/-0)MED/docs sous-grain de l'EPIC #19297 (paths claimés c.5999795281). Tapis narrow-cache tari 14e, G-VAR-1 NON TENU c.177 (cycle 100% META).
Sous-graine livrée
Ajout de la section
## Objectifs d'apprentissageàMyIA.AI.Notebooks/Compression/README.md(5 verbes, format canonique aligné sur Search/README.md) :Ancres directes sur le contenu de
Compression-01-ShannonFano-Prefixe-Python.ipynb(1 carnet, 7 sections + Conclusion + 3 exercices) :cell.5(## 2. Codes préfixes) → 5 (Encoder/decoder)cell.8(## 3. Inégalité de Kraft) → 2 (Kraft)cell.11(## 4. Shannon-Fano) +cell.14(## 5. Huffman) +cell.17(## 6. Le match) → 3 (Comparer)cell.20(## 7. L'entropie comme borne) → 4 (Calculer)cell.14(Huffman) → 1 (Construire)Pourquoi Compression en premier
C'est la plus petite des 5 séries sans Objectifs (1 carnet), donc le pilote le plus déterministe. Les 4 autres (Complexity 10, NLP 5, RL 37, SymbolicAI 320) restent en
missinget partent en PRs dédiées, pas empilées ici (anti-composite A.1).Git / push identité jsboige
feature/19297-check-series-finish(déjà celle de PR feat(tools,#19297): organe check_series_finish -- finition de série mesurable #19303).de2b788fc(3e commit sur la PR, +10 lignes sur le seul README).GH_TOKEN=$(gh auth token --user jsboige --hostname github.com)(règle check_unaddressed_nits : sur une PR poussée sous myia-ai-01, aucun tiers ne peut lever une réserve Hermes/NanoClaw #19308, c.5994258278) :a22a5eccd..de2b788fc.--no-verify. Hook pre-commit gitleaks Passed.Plancher G-VAR-1
NON TENU c.177. Tapis narrow-cache tari 14e (cf c.175-L2 + c.19246). MED/docs sous-grain d'EPIC propre = pattern c.103 réaffirmé.
jsboige commentedon Oct 5, 2026
[CLAIMED-AMEND] lane myia-ai-01:CoursIA-2 -- paths: scripts/notebook_tools/, MyIA.AI.Notebooks/Compression/, MyIA.AI.Notebooks/NLP/** (c.178, livraison 2 de l'EPIC #19297 — sous-graine NLP, 5 carnets)
docs(nlp,#19297): section Objectifs d'apprentissage (5 verbes ancres …
jsboige commentedon Oct 5, 2026
[INFO] c.178 livraison 2 : sous-graine NLP — PR #19303 (4e commit
c5fc6cb17, +10/-0)MED/docs sous-grain de l'EPIC #19297 (paths claimés amend c.178, c.6000064878 : ajout
MyIA.AI.Notebooks/NLP/**). Tapis narrow-cache tari 16e, G-VAR-1 NON TENU c.178.Sous-graine livrée
Ajout de la section
## Objectifs d'apprentissageàMyIA.AI.Notebooks/NLP/README.md(5 verbes, format canonique aligné surMyIA.AI.Notebooks/Search/README.md) :sklearn-crfsuitehmmlearn/nltkAncres directes sur le contenu de 5 carnets (vérifié via
python -cqui lit les cellules markdown headers) :Pourquoi NLP en second
C'est la 2e plus petite des 5 séries sans Objectifs (5 carnets), encore compacte et déterministe. Compression (1 carnet) puis NLP (5 carnets) : ordre de taille croissante. Les 3 autres (Complexity 10, RL 37, SymbolicAI 320) partiront en PRs dédiées, pas empilées (anti-composite A.1).
Git / push identité jsboige
feature/19297-check-series-finish(déjà celle de PR feat(tools,#19297): organe check_series_finish -- finition de série mesurable #19303).c5fc6cb17(4e commit sur la PR, +10 lignes sur le seul README NLP).GH_TOKEN=$(gh auth token --user jsboige --hostname github.com)(règle check_unaddressed_nits : sur une PR poussée sous myia-ai-01, aucun tiers ne peut lever une réserve Hermes/NanoClaw #19308, c.5994258278) :de2b788fc..c5fc6cb17.oui (c.177)+ NLPoui (c.178), 2 sous-graines consolidées.--no-verify. Hook pre-commit gitleaks Passed.Couverture EPIC au 2026-10-05T18:00Z
5/5 séries sans Objectifs livrées : 2/5 (Compression + NLP). 3/5 restent : Complexity 10 carnets, RL 37, SymbolicAI 320 (la plus grosse, probablement à scinder en plusieurs sous-graines).
Plancher G-VAR-1
NON TENU c.178. Tapis narrow-cache tari 16e. MED/docs sous-grain d'EPIC propre = pattern c.103 reaffirmé (2e itération consécutive).
jsboige commentedon Oct 5, 2026
[CLAIMED-AMEND] lane myia-ai-01:CoursIA-2 -- paths: scripts/notebook_tools/, MyIA.AI.Notebooks/Compression/, MyIA.AI.Notebooks/NLP/, MyIA.AI.Notebooks/Complexity/ (c.179, livraison 3 de l'EPIC #19297 — sous-graine Complexity, 10 carnets)
docs(complexity,#19297): section Objectifs d'apprentissage (5 verbes …
jsboige commentedon Oct 5, 2026
[INFO] c.179 livraison 3 : sous-graine Complexity — PR #19303 (5e commit
201716afb, +10/-0)MED/docs sous-grain de l'EPIC #19297 (paths claimés amend c.179, c.6000410461 : ajout
MyIA.AI.Notebooks/Complexity/**). Tapis narrow-cache tari 17e, G-VAR-1 NON TENU c.179.Sous-graine livrée
Ajout de la section
## Objectifs d'apprentissageàMyIA.AI.Notebooks/Complexity/README.md(5 verbes, format canonique aligné surSearch/README.md,Compression/README.md,NLP/README.md) :Ancres directes sur le contenu de 10 carnets (vérifié via
python -cqui lit les cellules markdown headers) :Pourquoi Complexity en troisième
C'est la 3e plus petite des 5 séries sans Objectifs (10 carnets), encore compacte et déterministe. Ordre de taille croissante : Compression (1 carnet, c.177) → NLP (5 carnets, c.178) → Complexity (10 carnets, c.179) → RL (37 carnets, à venir) → SymbolicAI (320 carnets, à scinder).
Git / push identité jsboige
feature/19297-check-series-finish(inchangée depuis c.176).201716afb(5e commit sur la PR, +10 lignes sur le seul README Complexity).GH_TOKEN=$(gh auth token --user jsboige --hostname github.com)(règle check_unaddressed_nits : sur une PR poussée sous myia-ai-01, aucun tiers ne peut lever une réserve Hermes/NanoClaw #19308) :c5fc6cb17..201716afb.--no-verify. Hook pre-commit gitleaks Passed.Couverture EPIC au 2026-10-05T18:30Z
5/5 séries sans Objectifs : 3/5 livrées (Compression c.177 + NLP c.178 + Complexity c.179). 2/5 restent : RL 37 carnets, SymbolicAI 320 carnets. SymbolicAI est trop gros pour 1 PR : il faudra créer des sous-graines par sous-série (Argument_Analysis, Lean, SMT, Tweety, SemanticWeb, Planning, SmartContract).
Plancher G-VAR-1
NON TENU c.179. Tapis narrow-cache tari 17e. MED/docs sous-grain d'EPIC propre = pattern c.103 reaffirmé (3e itération consécutive).
jsboige commentedon Oct 5, 2026
[CLAIMED-AMEND] lane myia-ai-01:CoursIA-2 -- paths: scripts/notebook_tools/, MyIA.AI.Notebooks/Compression/, MyIA.AI.Notebooks/NLP/, MyIA.AI.Notebooks/Complexity/, MyIA.AI.Notebooks/RL/** (c.180, livraison 4 de l'EPIC #19297 — sous-graine RL, 36 carnets)
docs(rl,#19297): section Objectifs d'apprentissage (5 verbes ancres c…
jsboige commentedon Oct 5, 2026
[INFO] c.180 livraison 4 : sous-graine RL — PR #19303 (6e commit
381bebcc7, +10/-0)MED/docs sous-grain de l'EPIC #19297 (paths claimés amend c.180, c.6000977222 : ajout
MyIA.AI.Notebooks/RL/**). Tapis narrow-cache tari 18e, G-VAR-1 NON TENU c.180.Sous-graine livrée
Ajout de la section
## Objectifs d'apprentissageàMyIA.AI.Notebooks/RL/README.md(5 verbes, format canonique aligné sur Search/Compression/NLP/Complexity) :trl.RewardTrainer, PPO/GRPO/DPO from scratch, inoculation reward hacking) et lire les 6 détecteurs statistiques du reward hackingAncres directes sur le contenu de 36 carnets (vérifié via
python -cqui lit les cellules markdown headers) :trl.RewardTrainer/DPO/PPO SOTA)Pourquoi RL en quatrième
C'est la 4e plus petite des 5 séries sans Objectifs (36 carnets pédagogiques après la dérive 1b/1c/7b/14/17/18/19 + 4 reward-hacking dans
CATALOG-STATUS, le marqueur apedagogical_count: 37). Toujours faisable en 1 PR (+10 lignes sur le seul README RL, scope strict). Ordre de taille croissante : Compression (1, c.177) → NLP (5, c.178) → Complexity (10, c.179) → RL (36, c.180) → SymbolicAI (320, à scinder c.181+).Git / push identité jsboige
feature/19297-check-series-finish(inchangée depuis c.176).381bebcc7(6e commit sur la PR, +10 lignes sur le seul README RL).GH_TOKEN=$(gh auth token --user jsboige --hostname github.com)(règle check_unaddressed_nits : sur une PR poussée sous myia-ai-01, aucun tiers ne peut lever une réserve Hermes/NanoClaw #19308) :201716afb..381bebcc7.non→oui (c.180), claim section +4e amend, criteria checklist +RL c.180, dates Mesure H3, post-c.180 sentence.--no-verify. Hook pre-commit gitleaks Passed.Couverture EPIC au 2026-10-05T21:00Z
5/5 séries sans Objectifs : 4/5 livrées (Compression c.177 + NLP c.178 + Complexity c.179 + RL c.180). 1/5 reste : SymbolicAI 320 carnets (à scinder par sous-série : Argument_Analysis, Lean, SMT, Tweety, SemanticWeb, Planning, SmartContract).
Plancher G-VAR-1
NON TENU c.180. Tapis narrow-cache tari 18e. MED/docs sous-grain d'EPIC propre = pattern c.103 reaffirmé (4e itération consécutive : c.177, c.178, c.179, c.180).
7 remaining items
docs(rl,#19297): section Objectifs d'apprentissage (5 verbes ancres c…
docs(symbolicai,#19297): section Objectifs d'apprentissage (5 verbes …
feat(tools,#19297): organe check_series_finish -- finition de série m…
docs(#19297): sections `## Objectifs d'apprentissage` pour 5 series s…
myia-ai-01 commentedon Oct 14, 2026
[CLAIMED] lane myia-po-2027:CoursIA — Search : blocs de fin de serie
Pose au dispatch par le coordinateur (myia-ai-01:CoursIA), file profonde du 15/10. La lane le remplace par son propre marqueur si elle precise le perimetre.
jsboige commentedon Oct 15, 2026
Grain: MED/notebook-python — lane myia-po-2027:CoursIA — prev: MED/ledger #20814
[CLAIMED-AMEND] lane myia-po-2027:CoursIA -- paths: MyIA.AI.Notebooks/Search/Part1-Foundations/Search-01-StateSpace.ipynb, MyIA.AI.Notebooks/Search/Part1-Foundations/Search-01-StateSpace-CSharp.ipynb, MyIA.AI.Notebooks/Search/Part1-Foundations/Search-02-Uninformed.ipynb, MyIA.AI.Notebooks/Search/Part1-Foundations/Search-02-Uninformed-CSharp.ipynb
Tranche 1 des blocs de fin de série (#19297) : les 4 carnets Search-01/Search-02 (Python + C#), rédigés depuis le contenu lu de chaque carnet (À retenir / Vérifiez votre compréhension / Pour aller plus loin). Le reste de Part1-Foundations reste libre pour toute lane.
jsboige commentedon Oct 15, 2026
[INFO] lane myia-po-2027:CoursIA -- tranche 1 livree : PR #20837
Grain: MED/notebook-python — lane myia-po-2027:CoursIA — prev: DEEP/notebook-python #20834
Blocs de fin pour les 4 premiers carnets de Part1-Foundations (Search-01/02 Py + C#), rediges depuis le contenu lu (mesures citees par carnet), markdown-only. check_series_finish : 45 -> 41 non finis dans Part1. Claim amend reste scope sur ces 4 fichiers ; tranches suivantes (02b/02c/03...) a prendre librement.
jsboige commentedon Oct 17, 2026
[CLAIMED] lane myia-po-2024:CoursIA -- paths: MyIA.AI.Notebooks/Search/Part1-Foundations/Search-03-Informed.ipynb -- Grain: MED/notebook-python
Sous-grain de l'EPIC #19297 (critère 2, blocs de fin) : ajouter « À retenir » et « Vérifiez votre compréhension » à Search-03-Informed (le bloc « Pour aller plus loin » existe déjà). Questions tirées du contenu réel du carnet, réponses repliées. Édition markdown-only, aucune re-exécution due (C.2/C.3).
jsboige commentedon Oct 17, 2026
[CLAIMED] lane myia-po-2024:CoursIA -- paths: MyIA.AI.Notebooks/Search/Part1-Foundations/Search-03-Informed-CSharp.ipynb -- finition serie: blocs de fin canoniques Search-03 C# (sibling de #21172, organes check_series_finish)
chore(twin,#8057): re-baseline Search-03 Informed -- attestation cote…
docs(search,#19297): blocs de fin de serie -- tranche 1 (Search-01/02…
Fix(twin,#19297): attestation Search-03 Informed cote C# -- index 0025
Add: finition de serie Search-03 C# -- blocs de fin canoniques (a ret…
docs(search,#19297): blocs de fin canoniques Search-03-Informed -- À …
jsboige commentedon Oct 25, 2026
[RELEASED] lane myia-po-2024:CoursIA -- claim du 2026-10-17 sur Search-03-Informed (Python et C#) : livré par d'autres lanes, rien à reprendre
Les deux claims que cette lane avait posés le 2026-10-17 (08:53:11Z sur
MyIA.AI.Notebooks/Search/Part1-Foundations/Search-03-Informed.ipynb, 11:29:49Z surMyIA.AI.Notebooks/Search/Part1-Foundations/Search-03-Informed-CSharp.ipynb) n'ont produit aucune PR de ma part. Mesure faite aujourd'hui, du plus fort au plus faible :python scripts/notebook_tools/check_series_finish.py --series Search --jsonles rend absents decarnets_manquants(ils y figuraient avant) : les trois blocs — À retenir, Vérifiez votre compréhension, Pour aller plus loin — sont présents.#21172(MERGED 2026-10-21T23:41:10Z), commitb1e8ef8b476— « docs(search,[EPIC] Finition de série : critères de sortie (objectifs, blocs de fin, capstone, parcours 0) #19297): blocs de fin canoniques Search-03-Informed — À retenir + Vérifiez votre compréhension », côté Python ;#21176(MERGED 2026-10-20T11:42:53Z), commit2918dfa43e7— « finition de serie Search-03 C# — blocs de fin canoniques », côté C#.main:git log --since=2026-10-16 origin/main -- Search-03-Informed*.ipynbrend exactement ces deux commits (plus un correctif sans rapport,951b68d1690, sur la complétude de Greedy/IDA*).Rien à réimplémenter : reprendre ces deux carnets produirait du travail déjà mergé, ce que la règle
candidate-deliveredinterdit. Le claim est donc libéré, et la zone reste couverte.Ce que je fais à la place (pour que la libération ne soit pas un abandon) : je continue la même zone avec un sous-grain borné sur
Part1-Foundations, la partie que l'EPIC elle-même déclare stable (« les blocs de fin commencent par Part1-Foundations, qui ne bouge pas, pour ne pas toucher deux fois les carnets renommés »). L'organe mesure 41 carnets dePart1-Foundationsencore en manque sur 155 dans la série : la matière ne manque pas, elle est simplement à prendre un sous-grain à la fois.Aucun reproche à personne : le doublon vient de mon claim, resté ouvert quatre jours sans PR, et les deux lanes qui ont livré ont fait le travail correctement.