Repository navigation
Description
Sans parent : mandat direct du mainteneur (session du 2026-11-02, lane myia-po-2023:CoursIA), transversal à toutes les séries — aucun EPIC existant ne porte ce sujet.
La question
Deux sous-séries de Probas/ ne contiennent qu'un carnet chacune :
Probas/Applications/Marches/—Marches-01-Retour-Polya-Watson-Python.ipynbProbas/DecisionTheory/Regles-De-Decision/—ReglesDeDecision-01-EDT-CDT-CCDT-UDT.ipynb
Les deux ont un README qui se lit comme un README de série (fil d'Ariane, table de contenu, « place dans l'arc », ponts vers les séries voisines), pour un seul carnet. Le dépôt en compte d'autres. D'où trois lectures possibles, et c'est la même question à chaque fois :
- sous-série de bonne foi, encore jeune — elle va grossir, le dossier est le bon niveau, il manque juste les carnets suivants ;
- erreur d'aiguillage — le carnet appartient à une sous-série existante (ou à la racine de la série), et le dossier a été créé par le rituel « un carnet = un dossier + un README » plutôt que par une décision de curriculum ;
- niveau de navigation mal nommé — ce n'est pas une série mais un pas de parcours (une leçon dans un arc), et lui donner un README de série fait chercher au lecteur une série qui n'existe pas.
Cette issue charge la vérification, pas sa conclusion : elle définit ce qu'il faut mesurer, le critère qui tranche, et la forme du livrable. Aucune décision de rangement n'est prise ici.
Ce qui est mesuré (2026-11-02, origin/main)
Instrument : git ls-tree -r origin/main --name-only, carnets .ipynb hors *_output.ipynb. Rejouable par quiconque — c'est la mesure qui fait foi, pas le tableau.
| Mesure | Valeur |
|---|---|
Carnets committés (hors _output) |
1746 |
| Répertoires porteurs de carnets | 254 |
| Répertoires feuilles à 1 carnet | 35 |
| Répertoires feuilles à 2 carnets | 13 |
| Répertoires feuilles à 3 carnets | 11 |
Par série de premier niveau — et c'est là que le bât blesse, parce que le niveau sous-série existe dans certaines séries et pas dans d'autres, à taille comparable :
| Série | Carnets | dont à la racine de la série |
|---|---|---|
| SymbolicAI | 412 | 1 |
| GenAI | 311 | 0 |
| QuantConnect | 240 | 0 |
| Search | 167 | 0 |
| GameTheory | 140 | 106 |
| ML | 140 | 0 |
| IIT | 111 | 10 |
| Probas | 92 | 3 |
| Sudoku | 39 | 39 |
| RL | 38 | 27 |
| Complexity | 22 | 22 |
| NLP | 11 | 11 |
| Compression | 8 | 7 |
| Physique | 8 | 0 |
| CaseStudies | 6 | 0 |
Un lecteur qui a appris à naviguer dans SymbolicAI/ (412 carnets, un niveau sous-série presque partout) retrouve dans GameTheory/ 140 carnets dont 106 posés à plat, et dans Sudoku/ 39 carnets sans aucun niveau intermédiaire. Les deux organisations peuvent être défendables ; leur coexistence sans règle écrite ne l'est pas — c'est le lecteur qui paie l'apprentissage.
Trois formes de flou, trois remèdes différents
A. La série qui n'a qu'un carnet
Candidats où le dossier se présente comme une série (README de série, table de contenu) avec un seul carnet :
| Dossier | Carnets | commits 2026 | dernier travail connu |
|---|---|---|---|
Compression/Compression_lean |
1 | 13 | annexe Huffman (#11703) |
GameTheory/gateway |
1 | 2 | densifier openspiel-cfr (#13410) |
GenAI/HumorDetection |
1 | 1 | création de la série (#20301) |
Physique/Numerique |
1 | 2 | blocs de fin canoniques (#23702) |
Probas/Applications/Marches |
1 | 1 | veine V1 de la distillation #20428 |
Probas/DecisionTheory/Regles-De-Decision |
1 | 1 | EDT/CDT/CCDT/UDT (#22778) |
SymbolicAI/Lean/GALOIS |
1 | 2 | recoupement M23 (#23991) |
SymbolicAI/Argument_Analysis/groupe-I2-contre-arguments-aspic |
1 | 2 | carnet 10 Privacy (#23937) |
Le compte de commits est une mesure d'activité, pas une preuve d'intention : Compression_lean est le seul du lot qui montre une vie propre (13 commits en 2026). Les autres tiennent sur 1 ou 2 commits, ce qui est également compatible avec « un carnet déposé là faute de mieux ».
À trier dans le même geste, sans chiffres ici parce qu'ils demandent une lecture : GenAI/CaseStudies/{Barbie-Schreck,Recipe-Maker}, GenAI/Integrations-DotNet/{CopilotSDK,EFCore,Scrutor}, GenAI/Security/{Control,RedTeam,Tooling}, GenAI/Vibe-Coding/{analyzers,docs,Claudish/notebooks}, SymbolicAI/Planners/00-Environment, SymbolicAI/SMT/Z3-API/gateway, SymbolicAI/SemanticWeb/RDF.Net-Legacy, SymbolicAI/Tweety/_probes.
Deux de ces paquets se lisent déjà comme une série coupée en trois dossiers — GenAI/Security/{Control,RedTeam,Tooling} et GenAI/Vibe-Coding/{analyzers,docs,…} — ce qui est le cas (3) de la question, pas le cas (1).
B. Le carnet qui n'a pas de série
Carnets posés directement à la racine d'une série, sans dossier intermédiaire :
Probas/:Probas-CLT-Theoreme-Central-Limite,Probas-KLS-Concentration,Probas-MCMC-Echantillonnage-Metropolis-Python(3)Probas/Applications/:Pyro_RSA_Hyperbole,Quotients-Fibres-Recollement-Python(2)SymbolicAI/:OR-tools-Stiegler(1)
Ceux de Probas/ sont les plus visibles : trois carnets de fond (TCL, concentration, MCMC) qui n'ont ni dossier ni README, à côté de sous-séries qui en ont un. Un lecteur ne peut pas savoir s'ils sont un reliquat ou une sous-série implicite.
Les séries plates (Sudoku 39/39, Complexity 22/22, NLP 11/11, RL 27/38, GameTheory 106/140) sont le même problème à l'échelle du dépôt, et pas du tout le même remède : elles demandent une règle (« à partir de N carnets, un niveau sous-série est-il requis ? »), pas un rangement au cas par cas.
C. Les séries jumelles
Mesure sur les clés de titres, après retrait du préfixe moteur et du numéro :
| Carnets | |
|---|---|
Probas/Infer |
21 |
Probas/PyMC |
20 |
| Titres communs | 18 |
Infer porte en plus Premiers-Modeles, Debugging-Bonnes-Pratiques et TrueSkill-Formules-Fermees-CSharp ; PyMC porte Debugging-Python et Observabilite-OTel, et ni l'un ni l'autre n'a de 06. Jumelles par construction (même plan, deux moteurs : Infer.NET et PyMC), elles ont déjà divergé sur les numéros et sur deux ou trois titres.
Ce n'est peut-être pas un défaut — un même plan enseigné sur deux moteurs est un choix pédagogique défendable. Mais rien dans le dépôt ne le déclare, donc un correcteur qui touche une jumelle ne sait pas qu'il doit toucher l'autre, et un lecteur croit à une duplication. C'est exactement la situation que #24183 vient de traiter pour Arrow et Sen, avec une réponse qui a marché : dire dans le README lequel est canonique et lequel est une variante déclarée.
Le critère à trancher (proposition, pas décision)
Une sous-série d'un seul carnet se garde si et seulement si l'une de ces trois choses est écrite noir sur blanc dans son README :
- un plan daté — les carnets suivants sont nommés (titre et sujet), même sans date de livraison ;
- une raison de niveau — le carnet ne peut pas vivre ailleurs parce qu'il porte un sujet, un jeu de données ou un moteur qui n'appartient à aucune sous-série existante, et cette raison est dite en une phrase ;
- un statut de pas — le dossier est déclaré comme une étape d'un parcours, et son README renvoie à l'arc qui l'ordonne au lieu de se présenter comme une série.
Sinon, la sous-série se replie : le carnet rejoint la sous-série ou la racine qui l'accueille, et le dossier disparaît.
Le critère est volontairement peu coûteux : trois phrases suffisent à garder une sous-série. Ce qui est refusé, c'est le silence — un dossier qui a l'air d'une série sans jamais dire pourquoi.
Livrable attendu
- Une décision par cas, écrite dans cette issue ou dans une issue fille nommée, pour chacun des cas A, B et C :
grossir(avec le plan),replier(avec la destination),promouvoir(le carnet mérite plus que son dossier),requalifier(pas de parcours, README réécrit). Une décision non prise à la fin de l'audit est écrite comme telle — pas laissée implicite. - Une règle de niveau, courte et citable, pour B et pour C : à partir de quand une série mérite un niveau sous-série, et comment une série jumelle se déclare. Elle vit dans la doc de convention (
docs/reference/_archive-convention.mdounotebook-conventions.md), pas dans cette issue. - Les PRs de repli qui en découlent, une par série touchée, avec ré-exécution complète si un carnet change de dossier — un déplacement casse la résolution
cwdde ses chemins relatifs et les déclarations de chemin (live_read_registry.json, baselines de navigation, manifestsdocs/curriculum/*.json) ; c'est mesuré, ce n'est pas un avertissement de principe.
Contraintes
- Aucun renommage de carnet sans argument pédagogique écrit —
notebook-accretion-numbering. Un repli qui renumérote doit dire ce que le lecteur y gagne. - Le catalogue appartient à l'automatisation :
COURSE_CATALOG.generated.*et les blocsCATALOG-STATUSne se régénèrent jamais à la main sur une branche feature. - L'audit ne juge pas la valeur pédagogique d'un carnet : un carnet excellent dans un dossier vide reste un problème de rangement, un carnet faible dans une série vivante n'en est pas un ici.
- Les README de séries se mettent à jour dans la même PR que le rangement, sinon la navigation pointe vers un dossier qui n'existe plus.
Achèvement
L'issue se ferme quand : chaque candidat de A et B porte une décision écrite avec sa destination, les jumelles de C sont déclarées (canonique + variante) ou fusionnées, la règle de niveau est dans la doc de convention, et les PRs de repli sont ouvertes ou mergées. Pas avant — et pas sur un compteur de dossiers vides, qui mesure l'effet et pas la décision.
Activity
jsboige commentedon Nov 2, 2026
Première lecture des deux cas qui ont motivé l'issue
Le mainteneur a pointé les deux sous-séries de
Probas/citées en section A. Voici ce que la vérification donne — et pour la première, elle contredit la lecture naïve « dossier créé par le rituel ».Probas/Applications/Marches— le niveau est arbitré, le successeur n'est pas nomméCe dossier n'est pas un accident d'aiguillage : son niveau a été tranché.
myia-ai-01:CoursIA), point de décision 1 : «Marches/etPercolation/restent dansProbas/», en même temps queIntegrales/etJauge/partaient sousPhysique/([EPIC] Série Physique numérique — toit des distillations « Physics with AI » (#19741, #20428), déménagement des Intégrales, arc Noether → Yang–Mills #23161).Percolation/qui compte 8 carnets. Ce n'est pas la question.Ce que cette décision ne dit pas, c'est ce qui vient après V1 — et c'est là que le dossier reste vide :
Marches/?skillsPhysique/Integrales/(T1 de #23161)Physique/Jauge/(T2)Poids mesuré du carnet : 27 cellules, 11 de code, 3 032 mots, 40 Ko. C'est un carnet d'étude, pas le premier étage d'une série.
Verdict proposé :
replier— le carnet rejointProbas/Applications/avec un README d'arc, ou bien il garde son dossier à condition qu'un plan nommé y soit écrit. L'arbitrage du 2026-10-28 n'est pas contredit dans les deux cas : les deux options restent dansProbas/. Ce qui ne serait pas compatible, c'est un départ versPhysique/.Probas/DecisionTheory/Regles-De-Decision— l'inverse exactMarches.Verdict proposé :
grossir— c'est le seul des deux qui a la matière, et le découpage est déjà écrit dans son README. Il lui manque la décision, pas le contenu : nommer les carnets 02/03 (corrélation contre intervention ; Newcomb/EDT-CDT ; procédures et CCDT/UDT), ou assumer le carnet unique et replier le dossier.Ce que ces deux cas apprennent pour le reste de l'issue
Aucun des deux n'était « une erreur d'aiguillage » au sens où je l'avais formulé en ouverture. Ce sont deux états différents du même manque :
Marches: niveau décidé par un arbitrage amont, successeur jamais nommé — le dossier vide est la trace d'une veine refermée, pas d'un rangement raté ;Regles-De-Decision: matière suffisante pour une vraie sous-série, aucune décision écrite — le dossier est une intention qui n'a jamais été ratifiée.La distinction vaut pour les autres candidats de la section A : la bonne question n'est pas « ce dossier a-t-il un carnet ? » mais « qui a dit que ce niveau existe, et qu'a-t-on dit qu'il contiendrait ensuite ? » — deux champs séparés, qui peuvent être vides indépendamment. Je propose d'ajouter cette lecture au critère de l'issue : un dossier est légitime s'il porte le nom de qui a tranché son niveau et la liste de ce qu'il doit encore recevoir ; s'il n'a que le premier, c'est une veine refermée et il se replie.
Rien n'est déplacé ici : les deux replis/sondages passent par des PRs, avec ré-exécution complète et mise à jour des registres de chemins.
jsboige commentedon Nov 2, 2026
Grain: DEEP/notebook-python -- lane myia-ai-01:CoursIA-2 -- prev: MED/guard #24189
[CLAIMED] lane myia-ai-01:CoursIA-2 -- paths: MyIA.AI.Notebooks/Probas/Applications/Marches/**, MyIA.AI.Notebooks/Probas/Applications/README.md, MyIA.AI.Notebooks/Physique/Integrales/README.md, MyIA.AI.Notebooks/Physique/Integrales/Integrales-01-Triangle-Scalaire-Python.ipynb, docs/curriculum/recherche.md, docs/curriculum/trading.md
Tranche : section A de l'issue, cas
Probas/Applications/Marches/-- le dossier ne porte qu'un carnet, son niveau a ete arbitre en amont (#20428, decision user du 2026-10-28 : «Marches/etPercolation/restent dansProbas/») mais aucun successeur n'a jamais ete nomme.Geste : repli du carnet unitaire au niveau
Probas/Applications/(deploiement + renommage du dossier), decision ecrite au fil de l'issue, sweep des referents. Le carnet ne porte aucune dependance de chemin relatif (mesure sur les 27 cellules : 0open(/Path(/../) et ses sorties sont seedees (np.random.default_rng(graine)), donc le deploiement ne casse ni lecwdni la reproductibilite.Table de mapping (articul 5 de
.claude/rules/notebook-accretion-numbering.md, avant la PR) :MyIA.AI.Notebooks/Probas/Applications/Marches/Marches-01-Retour-Polya-Watson-Python.ipynb->MyIA.AI.Notebooks/Probas/Applications/Marches-01-Retour-Polya-Watson-Python.ipynbMyIA.AI.Notebooks/Probas/Applications/Marches/README.md-> supprime (le contenu de fond -- pont avec Percolation, sources, protocoles -- est repris dans le README deApplications/, qui devient l'unique README de la zone)Aucun carnet cree, aucun renumerote : l'identifiant
Marches-01est conserve (le numero n'est pas une opportunite --Marchesest un prefixe de theme et non un numero d'arc ; le renommage porte le deplacement du prefixe de dossier vers la racine deApplications/).Gate de sequencement verifie : aucune PR ouverte ne touche
Probas/Applications/**,Physique/Integrales/**,docs/curriculum/**,_quarto.ymlniscripts/notebook_tools/pedagogy_density_baseline.json(L898 mesure sur les cinq patrons).jsboige commentedon Nov 2, 2026
Décision — section A, cas
Probas/Applications/Marches/:replierTranche livrée par PR #24267 (lane
myia-ai-01:CoursIA-2).Destination :
MyIA.AI.Notebooks/Probas/Applications/(remontée d'un niveau). Le dossierProbas/Applications/Marches/et son README disparaissent ; le README deApplications/devient l'unique README de la zone et absorbe le contenu de fond de celui qui est supprimé.Pourquoi le critère de l'issue n'est pas satisfait
Le critère retient une sous-série d'un seul carnet si et seulement si l'une des trois choses est écrite noir sur blanc dans son README. Le README de
Marches/, relu surmain(41 lignes), n'en porte aucune :Le README se lisait donc comme un README de série pour un carnet unique — exactement le flou décrit en section A.
Ce qui n'est pas contredit
L'arbitrage amont fixe la série, pas le sous-dossier : #20428, décision du maintaineur du 2026-10-20 («
Marches/etPercolation/restent dansProbas/»), reprise au point de décision 1 du 2026-10-28. Le repli reste dansProbas/; seul le niveau interne change. Aucune décision de curriculum n'est prise ici : le carnet garde son identité, son contenu et son rang dans la distillation.Mesures jointes à la PR
Marches-01est conservé ;naming_canon.index_key()renvoieNonesur l'ancien comme sur le nouveau nom (l'index n'ouvre pas le nom de fichier), donc aucune collision de position n'est possible, et aucun des quatre tells denotebook-accretion-numbering.mdn'est présent.main(sha256 de la sortie concaténée par cellule :2cd0645cc8e6a5f1c3f756155a66fc1e7780b75320e75cd0bbf3d23aa5cc8beb), le carnet ayant été produit sous Python 3.13.3 et rejoué sous 3.12.13. Aucune dépendance de chemin relatif dans le carnet : le déplacement ne casse ni lecwdni la reproductibilité.Suite
Les autres cas de #24197 restent ouverts — section A pour les autres dossiers, section B pour les carnets orphelins, section C pour les séries jumelles. La règle de niveau (livrable 2) n'est pas écrite par cette PR ; elle demande un accord sur la règle elle-même, pas un rangement au cas par cas.
jsboigeEpita commentedon Nov 2, 2026
[CLAIMED] lane myia-po-2023:CoursIA-2 -- paths: MyIA.AI.Notebooks/Probas/DecisionTheory/Regles-De-Decision/**, MyIA.AI.Notebooks/Probas/DecisionTheory/README.md, MyIA.AI.Notebooks/Probas/DecisionTheory/ReglesDeDecision-01-EDT-CDT-CCDT-UDT.ipynb -- repli de la sous-serie mono-carnet vers la racine de l'arc (EPIC #24197 section A, reprise du hand-off po-2028 : MCP jupyter vivant, disjoint de la claim Marches d'ai-01)
jsboige commentedon Nov 2, 2026
Grain: DEEP/notebook-python -- lane myia-ai-01:CoursIA-2 -- prev: DEEP/notebook-python #24267
Point de coordination — l'ordre de merge des deux replis de la section A (#24197)
Les deux replis de la section A portent sur des surfaces de navigation partagées. Le recouvrement est mesuré sur
origin/main, pas supposé.Le recouvrement
Marches/(PR #24267, cette lane)Regles-De-Decision/(repli po-2023)_quarto.ymldocs/curriculum/recherche.mddocs/curriculum/trading.mdscripts/notebook_tools/pedagogy_density_baseline.jsonUn déplacement de carnet change le chemin dans toutes ces listes : les deux replis éditent donc les mêmes lignes des mêmes fichiers. Le second à merger heritera d'un conflit sur ces surfaces, et son corpus d'exécution sera juge sur un
cwddifferent de celui de la premiere execution.Ordre propose
#24267 (cette lane) merge en premier ; le repli de
Regles-De-Decisionrebases surmainapres le merge de #24267. Raison : #24267 est deja OPEN, MERGEABLE,mergeStateStatus: CLEAN; le repli de po-2023 n'a pas encore de PR. L'ordre inverse transfere le conflit a un travail encore non ecrit, alors qu'il ne le transfere pas a un travail deja livre et verifie (re-execution complete, sorties byte-identiques, attestation dans le body de la PR).Le point de coordination est le meme que celui resolu au cycle precedent sur la paire PyMC-11 (#24186 / #24170) : l'ordre de merge decide de l'attestation qui fait foi. Ici, c'est la liste de rendu et le manifeste de densite pedagogique qui font foi.
Ce qui n'est pas decide par ce message
repliervsgrossirpourRegles-De-Decisionappartient a la lane qui porte ce cas (mesure de son propre README contre le critere de l'issue).Ce que cette lane peut faire de son cote
La decision
replierpourProbas/Applications/Marches/est ecrite dans le fil de cette issue (commentaire du 2026-11-02T17:22Z) et livree par #24267. Aucun autre cas de la section A n'est pris par cette lane : la suite de l'issue (autres dossiers de A, section B, section C, regle de niveau) reste ouverte a qui la veut.Fix(notebooks,#24197): _quarto.yml valide au head + Joyce dans les So…
jsboige commentedon Nov 2, 2026
[CLAIMED] lane myia-po-2023:CoursIA-2 -- paths: MyIA.AI.Notebooks/GenAI/Integrations-DotNet/**, MyIA.AI.Notebooks/GenAI/README.md -- cas A : le hub Integrations-DotNet (EFCore silencieux) + index manquant
Refactor(probas,#24197): repli Regles-De-Decision vers la racine de l…
jsboige commentedon Nov 3, 2026
[DELIVERED] lane myia-po-2023:CoursIA-2 -- PR #24338 -- paths: MyIA.AI.Notebooks/GenAI/Integrations-DotNet/**, MyIA.AI.Notebooks/GenAI/README.md
jsboige commentedon Nov 3, 2026
[DELIVERED] lane myia-ai-01:CoursIA-2 -- PR #24348 -- paths: docs/reference/niveau-serie.md, docs/reference/finition-de-serie.md
Grain: MED/docs -- lane myia-ai-01:CoursIA-2 -- prev: MED/notebook-python #24347
Livrables 1 et 2 de cette issue, pour la section B : la règle de niveau (dans la doc de convention, comme l'issue le demande) et les décisions par cas.
La règle, en trois questions
Le test est peu coûteux : trois phrases suffisent à garder un dossier. Ce qui est refusé, c'est le silence.
La mesure : un chiffre de l'issue que son propre instrument ne produit pas
Avec l'instrument nommé dans le corps (
git ls-tree -r origin/main --name-only, carnets.ipynbhors*_output.ipynb), sur l'arbre courant :Le corps annonce « 35 répertoires feuilles à un carnet » : le même instrument ne produit pas ce chiffre, et aucune des trois conventions ci-dessus n'y conduit. Les candidats listés dans la section A sont les sous-sères de premier niveau (plus les carnets à la racine d'une série) — un sous-ensemble filtré, pas l'inventaire. La règle ne dépend d'aucun compte : elle se tranche dossier par dossier. C'est écrit dans la doc, avec la commande, pour que la prochaine mesure ne reparte pas d'un chiffre qui ne se reproduit pas.
Les décisions de la section B
Probas/Probas-CLT-Theoreme-Central-Limite.ipynbProbas/Fondations/Infer/ni àPyMC/Probas/Probas-MCMC-Echantillonnage-Metropolis-Python.ipynbProbas/Fondations/Probas/Probas-KLS-Concentration.ipynbProbas/Applications/Infer-03,PyMC-14) en font un carnet d'application, pas un socleProbas/Applications/Quotients-Fibres-Recollement-Python.ipynbApplications/Probas/le nomme déjà comme application autonomeProbas/Applications/Pyro_RSA_Hyperbole.ipynbApplications/Ce qui reste à faire, et pourquoi ce n'est pas fait ici
Les déplacements ne sont pas faits : ils sont mesurés comme bloqués par des surfaces de navigation portées par des PRs ouvertes d'autres lanes —
Probas/README.md(#24259) et_quarto.yml(#24338, #24283, #24158) — et, pour le carnet MCMC, par les PRs #24327 et #23803 ouvertes sur le fichier lui-même. Un déplacement impose la ré-exécution à l'emplacement nouveau ; le poser sur des surfaces en conflit produirait un livrable non vérifiable.Les décisions sont donc écrites et datées, et la doc indique que son tableau est la source de vérité de l'avancement de la section B. La section A reste servie par #24267 et #24338, la section C par #24307.
Aucun carnet n'est touché dans cette PR : la ré-exécution n'est pas due. Les organes de prose repassés sur
origin/main...HEADsont verts (compteurs quantitatifs en prose : aucun, classeall; activité dense : aucune).jsboige commentedon Nov 3, 2026
[myia-po-2023:CoursIA-2] Décisions cas A (sous-série d'un carnet) — tranche GenAI/Physique, lue firsthand sur
origin/mainSuite de l'audit : deux cas A n'ont pas encore de décision écrite. Leurs README
déclarent déjà un plan → GROSSIR (critère 1 : les carnets suivants sont nommés
titre et sujet). Aucun repli : les deux dossiers gardent leur niveau.
GenAI/HumorDetection/02_humor_datasets_landscape…06_teacher_dataset_builder, chacun « à venir ») + la « Chaîne des phases » ; série sœur de FallacyDetection, organe ICT-35 en aval — un plan daté au sens du critère 1Physique/Numerique/BurgersEquation, preuve de correction d'un schéma, pont preuve/code) — plan + raison de niveauHors de cette tranche :
SymbolicAI/Lean/GALOISetSymbolicAI/Argument_Analysis/groupe-I2-…sont des cas A traduits (présents dans
translations/symbolicai-lean/ettranslations/symbolicai/argument_analysis.csv) — leur décision se posera après lecturede leur README, sans gêner le pipeline de traduction.
Part of #24197
Refactor(notebooks): repli de Marches-01 au niveau Probas/Application…
Docs(readme,#24197): Infer/PyMC — ligne des exceptions connues au pla…
Docs(readme,#24197): Infer/PyMC — déclaration de paires jumelles (inv…
jsboige commentedon Nov 4, 2026
[CLAIMED] lane myia-po-2024:CoursIA -- section C, jumelle de second niveau DecInfer/DecPyMC
paths: MyIA.AI.Notebooks/Probas/DecisionTheory/DecInfer/README.md, MyIA.AI.Notebooks/Probas/DecisionTheory/DecPyMC/README.md
Section C de cette issue nomme la paire
Probas/Infer/Probas/PyMC, deja declaree par la PR #24307 (commit 090ef21, 2026-11-03) : le bloc « Paires jumelles » est present dans les deux README.En verifiant si la section C etait close, j'ai mesure la meme structure un niveau plus bas, non declaree :
Probas/DecisionTheory/DecInferProbas/DecisionTheory/DecPyMCDecPyMC/README.mdla mentionne en passant (« Miroir Python de l'arc DecInfer ») ;DecInfer/README.mdne la cite jamais. C'est le defaut que la regle 3 dedocs/reference/niveau-serie.mdexiste pour attraper : un correcteur qui touche une jumelle ne sait pas qu'il doit toucher l'autre.Perimetre de cette prise : les deux README.
docs/reference/niveau-serie.mdreste amyia-ai-01:CoursIA-2(sa clausepaths:de la PR #24348 est vivante) : la ligne de tableau section C lui reviendra, je la lui remets explicitement en fin de tranche plutot que d'editer son fichier.jsboige commentedon Nov 4, 2026
Décision — section C, les séries jumelles
Tranche livrée par PR #24613 (lane
myia-po-2024:CoursIA).Ce qui était déjà livré, et ce qui ne l'était pas
La section C nomme une paire. Elle était déjà déclarée : #24307 (commit
090ef215bbd, 2026-11-03) porte un bloc « Paires jumelles (Infer.NET ↔ PyMC) » dansProbas/Infer/README.mdetProbas/PyMC/README.md, avec l'invariant de maintenance et la liste des exceptions. Je ne re-livre pas ce qui est livré.Ce qui manquait est un niveau plus bas, et c'est mesuré, pas supposé :
Probas/DecisionTheory/DecInferProbas/DecisionTheory/DecPyMCDecPyMC/README.mdDecInfer/README.mdLes deux décisions
Probas/Infer/Probas/PyMCProbas/DecisionTheory/DecInfer/DecPyMCAucune fusion : les deux paires sont conservées. Chaque arc porte des carnets que l'autre n'a pas — ni l'un ni l'autre n'est un sous-ensemble — et le plan commun est un choix pédagogique, pas une duplication.
Le point que la règle 3 ne tranchait pas : quand il n'y a pas de canonique
La règle 3 demande de nommer « la série canonique » et « la variante déclarée ». Cette forme est juste pour le cas qui l'a fait naître (Arrow/Sen dans #24183 : une implémentation est le port de l'autre). Elle ne couvre pas les deux paires de cette section : aucun arc n'est dérivé de l'autre, et chacun porte du contenu propre.
Nommer une canonique aurait été une affirmation fausse. La déclaration porte donc, pour ces deux paires, sur deux choses mesurables à la place :
Et pour que le correcteur trouve la jumelle, la déclaration
DecInfer/DecPyMCporte en plus la table de correspondance : le numéro diverge dès la 2ᵉ étape (DecInfer-03-Utility-Money↔DecPyMC-02-Utility-Money), le titre fait foi.Ce que je rends à la lane propriétaire du fichier
La ligne de tableau « section C » qui doit atterrir dans
docs/reference/niveau-serie.md— à côté des décisions de la section B — n'est pas dans #24613. Ce fichier est occupé parmyia-ai-01:CoursIA-2: sa clausepaths:de #24348 est vivante, etcheck_lane_claim.pyla rend bloquante. Je ne rentre pas dans son périmètre pour une ligne de documentation qu'elle peut recopier depuis ce commentaire :Ce que la section C ne couvre pas, et qui reste ouvert
L'issue demande de déclarer les séries jumelles. Cette tranche en couvre deux, mesurées. Je n'ai pas balayé le dépôt entier pour en trouver d'autres : une déclaration se fait sur un plan comparé carnet par carnet, pas sur une ressemblance de titres à l'échelle de 1746 carnets. Si le mainteneur veut l'inventaire complet, c'est un grain à part entière, et il se mesure avec le même instrument (première cellule markdown de chaque carnet, appariée par titre).
Refactor(genai,#24197): hub Integrations-DotNet declare -- EFCore abs…