Skip to content

[GameTheory] Etude de la numerotation avant tout nouveau numero : accretions, sous-series, capstones (soeur de #20298 et #17545) #20316

Description

@myia-ai-01

Soeur de #20298 (ICT) et #17545 (Lean). Fille de #5081 (nommage canonique et parcours).

Constat

Le mainteneur juge que la serie GameTheory porte une dette de restructuration proche de celle d'ICT et de Lean : des chaines d'accretion longues, des greffes et des numeros ajoutes au fil des chantiers. Avant d'ajouter un numero, il faut etudier ce qu'on fait de la numerotation.

Cas declencheur : #19484 propose de renommer GT-03e (« Plan de deformation ») en GT-23a (« Biens publics »). Le choix du numero a ete mis en doute et reste en attente de cette etude.

Methode

La meme que #20298 : doctrine de #5081 regle 6 (descendre en sous-series, capstone dans la serie mere ; modele livre #18857), et regle notebook-accretion-numbering (aucun renommage sans argument pedagogique ecrit).

  • Phase 0 -- inventaire (en cours, coordinateur) : numeros, lettres, chaines d'accretion, trous, numeros reserves et ou ils sont ecrits, arc du README, sous-dossiers existants, liens avec les autres series, et le cas refactor(gametheory,#16231): GT-03e Plan-deformation -> Dynamics-09 Biens-Publics #19484.
  • Phase 1 -- carte cible : pour chaque carnet, numero principal, accretion avec marchepied, sous-serie escalier, capstone, ou redescente vers une autre serie. Soumise au mainteneur avant toute execution.
  • Phase 2 -- execution : une PR par mouvement, argument pedagogique ecrit, liens entrants, READMEs et _quarto.yml a jour.

Hors perimetre

Aucun renommage ni nouveau numero GameTheory avant la validation de la phase 1, #19484 compris. Les corrections de contenu avancent par leurs propres grains.

Activity

  1. myia-ai-01 commented on Oct 11, 2026

    @myia-ai-01
    CollaboratorAuthor

    Phase 0 -- inventaire (11/10, lecture seule sur main 3166e8e)

    Constats, pas de decisions. Chaque point est cite dans l'inventaire de travail du coordinateur.

    Chiffres. 113 carnets : 101 a la racine, 12 dans SocialChoice/. 20 numeros nus de fichier (01 a 20), sans trou. Six branches depassent la profondeur d'accretion que fixe notebook-accretion-numbering : 06 (9 lettres, b a j), 03, 15 et 16 (6 chacune), 04 et 17 (5 chacune). La mesure de la regle, en septembre, n'en comptait qu'une (03).

    La dette centrale : les numeros affiches ne sont pas les numeros de fichier.

    • Les numeros 21 a 25 n'existent qu'a l'affichage, dans la table Extensions du README (l.361-366) : 21 = fichier 20d, 22 = 06i, 23 et 23b = 16f (Munkres, Python et Lean), 24 = 18c, 25 = 17e. Les titres internes portent deja ces numeros, sauf 06i. Aucune « reservation » n'est ecrite ailleurs.
    • La branche 03 est affichee avec une lettre de decalage par rapport aux fichiers depuis la normalisation du 27/09. La branche 06 et la branche 17 portent des « bis ». Le titre interne de 20b dit « 24b ».
    • Le README le reconnait lui-meme (l.351) : le numero nu des extensions 18-25 est « un heritage de leur livraison », leur rattachement aux paliers est a l'etude avec GameTheory(#14944): passe de coherence de gradation de la serie apres renum — la sequence refermee n'a pas la gradation des premiers numeros #15615.

    Hors README. 15g (lien vers un .html inexistant), 20e, et SocialChoice/08.

    Chaines sans point de fusion. 06 en tete : le README declare deja le chantier 06e-06h « a lire dans l'ordre », un escalier qui demande un sous-dossier. 03 a un capstone declare (03f). 20 forme un escalier « Loi II » de 20 a 20e, a cheval sur l'affichage 21, sans capstone.

    Le cas #19484. Le carnet enseigne les biens publics non lineaires a N joueurs ; la table 2x2 n'y est qu'une carte d'entree, et aucun autre carnet ne le reference. L'argument de contenu pour sortir de 03 a donc de la substance. Mais le numero 23 est deja promis a Munkres par la table Extensions, que la PR laisse en place. Une premiere accretion a sans base nue reproduit aussi le defaut que la regle d'accretion nomme. Deux placements restent ouverts : rester en 03, avec E1 comme marchepied, ou rejoindre la dynamique de 06/06i.

    Lien. #15615 (passe de coherence de gradation, ouverte) porte deja une partie de cette question : la carte cible de la phase 1 s'y articule, sans la dupliquer.

    Suite : phase 1, carte cible soumise au mainteneur.

  2. jsboige commented on Oct 11, 2026

    @jsboige
    Owner

    Décision du mainteneur (2026-10-11) : carte cible GameTheory phase 1 retenue, sauf la tranche humour

    La carte cible (commentaire suivant) est retenue, avec une exception et trois précisions.

    Ce qui est retenu

    • Le parcours 01 à 17 garde ses numéros nus.
    • Les numéros affichés 21 à 25 disparaissent. La table « Extensions » du README devient une section « Escaliers ».
    • Trois sous-dossiers escaliers sont créés : Dynamics/, Coalitions/, Metajeux/.
    • Les descentes 04f → Probas/DecisionTheory/DecInfer et 15d → SocialChoice/06b sont retenues. 17f reste en place.
    • Les dix questions du §8 suivent la recommandation de la carte.

    Exception : la tranche T7 (18c, banc humour → ICT) est suspendue.
    La carte fait descendre le banc vers ICT, la série de recherche, parce que ses consommateurs y vivent (ICT-35, 35b, 35d). Or le sens de circulation retenu ailleurs est l'inverse : un organe mûrit dans une série pédagogique, puis ICT le consomme. Le placement du banc dépend donc de ce qu'il est vraiment, pédagogique ou expérimental, et de l'accueil du futur dataset (#20301). Une étude dédiée est en cours. T7 attend sa conclusion ; les autres tranches n'en dépendent pas.

    Précisions

    1. Concevoir l'escalier avant de déplacer. Chaque tranche à dossier (T3 Dynamics, T5 Coalitions, T6 Metajeux) commence par une note de conception, en commentaire ici, avant la PR de déplacement. La note donne :
    2. T2 (04f → DecInfer) attend la décision de la série Probas sur son numéro d'arrivée. T4 (fusion 03b + 03c) est un geste de contenu : les deux carnets se lisent en entier avant d'écrire le mapping.
    3. refactor(gametheory,#16231): GT-03e Plan-deformation -> Dynamics-09 Biens-Publics #19484 (« Plan de déformation ») : son contenu rejoint Dynamics/, pas un numéro « 23a » (§5, voie a). La lane amende sa PR une fois la note de conception de Dynamics/ posée, avant T3.

    Ordre :

    • T0 (liens README, sans renommage) part tout de suite ;
    • puis T1, T3 (note de conception d'abord), T4, T5, T6, T8 ;
    • T2 après la décision Probas ;
    • T7 suspendue ;
    • T9 en clôture.

    Chaque tranche passe check_lane_claim et la garde de séquencement : aucune tranche ne touche un fichier visé par une PR ouverte.

  3. jsboige commented on Oct 11, 2026

    @jsboige
    Owner

    Carte cible GameTheory phase 1 : texte de référence pour les tranches T0 à T9. La section de relecture interne n'est pas reproduite ; ses réserves sont reprises dans la décision du commentaire précédent.

    GameTheory — carte cible de restructuration (phase 1, retenue le 2026-10-11 sauf T7)

    Base : main au 2026-10-11 (arbre à jour). Entrées : inventaire phase 0 (gt_study.md + gt_inventory.json, c2145), règle .claude/rules/notebook-accretion-numbering.md, docs/reference/notebook-renumbering-detail.md, dossier ICT (dossier-seance-ict.md), branches origin/feature/15615-gradation-fournee-{a..d} (ledgers de gradation, 99 carnets gradés), origin/feature/16231-gt03-split (PR #19484), origin/fix/20307-* (#20311), origin/fix/20309-* (#20313).
    Statut : document de décision — AUCUN renommage exécuté. Chaque mouvement porte son argument ; le verdit « inchangé » n'en demande pas.


    1. Résumé en 10 lignes

    1. Le parcours principal 01..17 à numéro nu ne bouge pas (arc canonique, verdict [#5081] GameTheory — analyse renumérotation : arc 1..17 canonique, schéma suffixe b/c intentionnel, aucune renum #5656 ; la règle pose le verdict par défaut « aucune renum »).
    2. La dette centrale — numéros affichés 21-25 qui n'existent pas au niveau fichier — est résolue en supprimant ces numéros : les cinq objets rejoignent leurs escaliers d'origine ; la table « Extensions » du README est remplacée par une section « Escaliers ».
    3. Trois sous-dossiers escaliers sont créés sur le modèle SocialChoice : Dynamics/ (chaîne 06, 11 carnets), Coalitions/ (déborde 15/16, 5 carnets), Metajeux/ (ex-extensions 18-20e, 8 carnets) — chacun avec numérotation interne propre, porte d'entrée au palier nu, capstone identifié.
    4. 27 carnets changent de place (11 → Dynamics, 5 → Coalitions, 8 → Metajeux, 1 → SocialChoice, 1 → ICT, 1 → Probas/DecisionTheory) ; 6 se relettrent en racine ; 1 fusion (03b+03c). La racine passe de 101 à 73 carnets, toutes les chaînes ramenées sous la norme ≤ 4 accretions (b..e), sauf la 17 (5, dérogation documentée).
    5. La PR refactor(gametheory,#16231): GT-03e Plan-deformation -> Dynamics-09 Biens-Publics #19484 (GT-03e → GT-23a) a un argument de contenu juste et une destination refusée : le carnet part bien de la chaîne 03, mais vers Dynamics/ (dynamique N-personnes), pas vers un « 23a » sans base — le défaut §2 de la règle.
    6. Quatre descentes inter-séries : 18c (humour) → ICT-35e ; 04f (EDT/CDT/UDT) → Probas/DecisionTheory/DecInfer ; 15d (Möbius) → SocialChoice/06b (l'organe Möbius/Harsanyi vit à SC-06) ; 17f reste (prérequis direct 17b mesuré dans sa navigation). Chaque mouvement est adossé à un tell nommé de la règle §3 : mensonge d'affichage/collision (03, 06, 17, titres 21-25), faux prérequis séquentiel (ordre 03 mesuré par GameTheory(#14944): passe de coherence de gradation de la serie apres renum — la sequence refermee n'a pas la gradation des premiers numeros #15615), numéro d'opportunité (16f Munkres sous une lettre « mécanismes »), transversal en position canonique (18c, 04f, 15d, extensions en numéros nus hors parcours).
    7. Les mensonges d'affichage meurent : décalage 03 (a..h vs b..g), « 06f bis / 06g bis / 17c bis », titres internes « 21/23/23b/24/25 », lien .html mort du 15g, 20e et SC-08 non liés.
    8. Migration en 9 tranches, une par sous-série, ordonnées des bandages README (zéro renommage) vers le dossier Metajeux puis la passe SocialChoice ; chaque tranche emporte ses lignes rename-ledger.tsv, _quarto.yml, liens de navigation, paires de jumeaux et lignes README.
    9. La gradation GameTheory(#14944): passe de coherence de gradation de la serie apres renum — la sequence refermee n'a pas la gradation des premiers numeros #15615 (99 carnets gradés) sert de colonne d'étalage : chaque escalier se lit Basse/Moyenne → Haute → Très haute, capstone en sommet.
    10. Coût total : 33 renommages + 1 fusion répartis sur ~7 PRs de renommage + 1 PR de fusion de contenu ; alternative minimale (affichage seul, sans dossiers) décrite en §4 — elle ne règle ni la profondeur ni les organes.

    2. Carte cible — un ligne par carnet actuel (113)

    Légende rôle : palier = numéro nu du parcours ; marche = étape d'escalier ; capstone = synthèse qui couronne une chaîne ; exemple = application/jumeau d'exercice ; porte = palier nu qui ouvre un escalier. Gradation : échelle #15615 (Basse/Moyenne/Haute/Très haute). « Racine » = MyIA.AI.Notebooks/GameTheory/. Les cibles internes suivent la grammaire de la règle (préfixe-numéro-titre-noyau, sans accents dans les noms de fichiers, jumeaux = même identifiant).

    Paliers 01-05

    Fichier actuel (racine) Cible Sous-série Rôle Grad. Argument du mouvement
    01-Setup-Python inchangé — palier Basse —
    02-NormalForm-Python inchangé — palier Basse —
    02-NormalForm-Part2-Python inchangé — palier (suite) Moyenne —
    02-NormalForm-CSharp inchangé — jumeau Basse —
    02-NormalForm-Part2-CSharp inchangé — jumeau Moyenne —
    02b-Lean-Definitions-Lean inchangé — marche Moyenne —
    02c-Travelers-Dilemma-Python inchangé — exemple Moyenne —
    02c-Travelers-Dilemma-CSharp inchangé — jumeau Moyenne —
    03-Topology2x2-Python inchangé — palier, porte de la chaîne 03 Moyenne —
    03-Topology2x2-CSharp inchangé — jumeau Moyenne —
    03b-Chemins-de-Swaps-Lean-Python fusionne avec 03c → GameTheory-03b-Chambres-Murs-Chemins-Lean-Python 03 marche fondatrice Haute La géométrie (chambres/murs) et la distance (chemins) sont les deux moitiés d'un même objet ; le ledger #15615 a mesuré le défaut d'ordre (Chemins présuppose Chambres mais est numérate avant) — la fusion tue le défaut au lieu de le pallier (remède §4 de la règle).
    03c-Chambres-et-Murs-Python absorbé dans 03b (fusion) 03 marche fondatrice Haute Idem ; chaque contenu cité ligne à ligne dans le carnet fusionné (« Consolider != Archiver »).
    03d-Le-Joueur-LLM-Python relettré → GameTheory-03c-Joueur-LLM-Python 03 exemple Haute Application de la table périodique à un LLM : troisième marche, après la géométrie (03b) et avant les morphismes. Relettrage pour des lettres consécutives b..e une fois 03e et la fusion actés.
    03e-Plan-de-deformation-Python déplacé → Dynamics/Dynamics-09-Biens-Publics-N-Personnes-Python Dynamics greffe (marchepied : E1 = carte 2x2 d'entrée) Haute Voir §5 : contenu N-personnes, hystérésis, bifurcation — dynamique évolutive, pas géométrie ordinale. La destination est Dynamics, pas « 23a ».
    03f-Meta-Actions-Tarifees-Python relettré → GameTheory-03e-Meta-Actions-Tarifees-Python 03 capstone Très haute Capstone déclaré de la chaîne (« le parcours complet », README.md:196) ; conserve la dernière lettre de la chaîne ramenée à 4.
    03g-Deux-Especes-de-Fleches-Python relettré → GameTheory-03d-Deux-Especes-de-Fleches-Python 03 marche Très haute Théorème du chemin minimal/morphismes : quatrième marche avant le capstone.
    04-NashEquilibrium-Python inchangé — palier Moyenne —
    04-NashEquilibrium-CSharp inchangé — jumeau Haute —
    04b-Lean-NashExistence-Lean inchangé — marche Très haute —
    04c-NashExistence-Python inchangé — marche Haute —
    04c-NashExistence-CSharp inchangé — jumeau Haute —
    04d-Marchandage-Asymetrique-Python inchangé — exemple Haute —
    04e-Reflective-Oracles-Python inchangé — marche Très haute « un Nash réflexivement cohérent » (README.md:205) : reste au palier 04 (existence et nature de l'équilibre). Le départ du 04f ramène la chaîne à 4 lettres ✓.
    04f-Theories-Decision-Predicteur-Python déplacé → Probas/DecisionTheory/DecInfer/DecInfer-11-Theories-Decision-Predicteur-Python (numéro exact à arbitrer par la lane Probas) DecisionTheory marche (palier terminal de l'arc décision) Très haute EDT/CDT/UDT sont des théories de la décision, pas des équilibres ; l'arc DecisionTheory (vNM → structure → MDP → bandits, README vérifié) ne couvre pas ce matériau et en est le propriétaire naturel. Chaîne 04 ramenée à b,c,d,e ✓.
    05-ZeroSum-Minimax-Python inchangé — palier Moyenne —
    05-ZeroSum-Minimax-CSharp inchangé — jumeau Haute —
    05b-Lean-Minimax-Lean inchangé — marche Très haute —

    Paliers 06-12

    Fichier actuel Cible Sous-série Rôle Grad. Argument
    06-EvolutionTrust-Python inchangé (racine) — palier, porte de Dynamics/ Moyenne —
    06-EvolutionTrust-CSharp inchangé — jumeau Haute —
    06b-Lean-RepeatedGames-Lean-Python Dynamics/Dynamics-02-Lean-Jeux-Repetes-Lean-Python Dynamics marche Haute Compagnon formel du Folk : 2e marche de l'escalier répétés.
    06c-RepeatedGames-FolkTheorem-Python Dynamics/Dynamics-01-Jeux-Repetes-Folk-Theorem-Python Dynamics marche (1re) Moyenne Prolongement naturel du 06 (README.md:216) : première marche de l'escalier.
    06c-RepeatedGames-FolkTheorem-CSharp Dynamics/Dynamics-01-Jeux-Repetes-Folk-Theorem-CSharp Dynamics jumeau Moyenne Même identifiant que son jumeau Python (règle §7).
    06d-Sympathie-vs-Engagement-Python Dynamics/Dynamics-03-Sympathie-Engagement-Python Dynamics marche Haute Statique comparative sur les jeux répétés : 3e marche (prérequis 06c).
    06e-Open-Source-Game-Theory-Python Dynamics/Dynamics-04-Open-Source-Game-Theory-Python Dynamics marche (1re du vol transparence) Haute Tête du chantier 06e..06h « à lire dans l'ordre » (README.md:216).
    06f-Bounded-Agents-Python Dynamics/Dynamics-05-Agents-Bornes-Python Dynamics marche Haute Chantier agents bornés ; l'escalier donne au couple Python/Lean un identifiant partagé — tue la lettre 06f portée par deux fichiers.
    06f-Bounded-Agents-Lean Dynamics/Dynamics-05-Agents-Bornes-Lean Dynamics jumeau Très haute Idem ; le README affichait « 06g » pour ce fichier (README.md:226) — le mensonge meurt.
    06g-Simulation-Based-Program-Equilibria-Python Dynamics/Dynamics-07-Equilibres-Par-Simulation-Python Dynamics marche Haute Équilibres de programmes qui se simulent : suite du vol transparence (affichage « 06g bis » supprimé).
    06h-Transparent-Institutions-Python Dynamics/Dynamics-08-Institutions-Transparentes-Python Dynamics marche (capstone du vol transparence) Très haute Fin déclarée du chantier 06e..06h.
    06i-Ensembles-Limites-Poincare-Bendixson-Python inchangé (racine) — titre interne corrigé « GameTheory-06i » (déjà conforme), affichage « 22 » supprimé — capstone de la chaîne 06 Haute « Où peut finir une trajectoire d'apprentissage » (intro, lue) : la synthèse naturelle de tout l'escalier — reste en racine comme dernière lettre du palier. L'affichage 22 promis meurt (§4).
    06j-Bounded-Proofs-Reasoning-Costs-Python Dynamics/Dynamics-06-Preuves-Bornees-Python Dynamics marche Haute Coût du raisonnement : suit les agents bornés dans l'ordre de lecture déclaré (l'affichage « 06f bis » meurt).
    07-ExtensiveForm-Python inchangé — palier Moyenne —
    07-ExtensiveForm-CSharp inchangé — jumeau Haute —
    08-CombinatorialGames-Python inchangé — palier Moyenne —
    08-CombinatorialGames-CSharp inchangé — jumeau Moyenne —
    08b-Lean-CombinatorialGames-Lean inchangé — marche Très haute —
    08c-CombinatorialGames-Python inchangé — exemple Haute —
    08c-CombinatorialGames-CSharp inchangé — jumeau Haute —
    08d-Lean-CGT-Lean inchangé — marche Très haute —
    09-BackwardInduction-Python inchangé — palier Moyenne —
    09-BackwardInduction-CSharp inchangé — jumeau Moyenne —
    09b-Commitment-Stackelberg-Python inchangé — marche Haute —
    09c-Stackelberg-SecurityGame-Python inchangé — exemple Haute —
    10-ForwardInduction-SPE-Python inchangé — palier Haute —
    10-ForwardInduction-SPE-CSharp inchangé — jumeau Haute —
    11-BayesianGames-Python inchangé — palier Haute —
    11-BayesianGames-CSharp inchangé — jumeau Haute —
    11b-Lean-BayesianGamesExt-Lean inchangé — marche Très haute —
    12-ReputationGames-Python inchangé — palier Haute —
    12-ReputationGames-CSharp inchangé — jumeau Haute —

    Paliers 13-17

    Fichier actuel Cible Sous-série Rôle Grad. Argument
    13-ImperfectInfo-CFR-Python inchangé — palier Très haute —
    13-ImperfectInfo-CFR-CSharp inchangé — jumeau Haute —
    13b-Safe-Subgame-Solving-Python inchangé — marche Haute —
    13c-Safe-Subgame-Solving-CSharp inchangé — jumeau Haute —
    13d-Optimistic-CFR-Python inchangé — marche Haute —
    13e-Revision-Croyances-Adversaire-Python inchangé — marche non gradé (créé 2026-10-11, postérieur aux fournées #15615) —
    14-DifferentialGames-Python inchangé — palier Très haute —
    14-DifferentialGames-CSharp inchangé — jumeau Très haute —
    15-CooperativeGames-Python inchangé (racine) — palier, porte de Coalitions/ Très haute —
    15-CooperativeGames-CSharp inchangé — jumeau Très haute —
    15b-Lean-CooperativeGames-Lean inchangé — marche Très haute —
    15c-CooperativeGames-Python inchangé — exemple Haute —
    15c-CooperativeGames-CSharp inchangé — jumeau Haute —
    15d-Mobius-Coalitions-Lean-Python déplacé → SocialChoice/06b-Mobius-Coalitions-Lean-Python.ipynb SocialChoice marche (approfondissement de l'organe) Haute Organ-first (.claude/rules/organ-first-implementation.md) : l'organe Möbius/Harsanyi vit à SC-06 (« dividendes de Harsanyi », SocialChoice/README.md:39) ; 15d duplique la décomposition côté GT. La série demandeuse (GT-15) garde le problème, l'organe (SC) porte le calcul, l'écart est rapporté.
    15e-Coalition-Power-SMT-Python Coalitions/Coalitions-01-Pouvoir-Coalitionnel-SMT-Python Coalitions marche Haute Pouvoir coalitionnel borné SMT : niveau Recherche, descend au dossier (la racine garde b, c, d).
    15f-Shapley-Groupes-Python relettré → GameTheory-15d-Shapley-Groupes-Python — capstone (racine) Haute « Évaluer une équipe, pas une somme d'individus » : synthèse appliquée de la chaîne pouvoir/coalitions — capstone qui reste au palier, relettré en 4e lettre.
    15g-AssistanceGames-2026-Python Coalitions/Coalitions-02-Assistance-Games-Python Coalitions marche Haute Résultat 2026 (jeux d'assistance = coopération humain-assistant) : 5e membre de la chaîne, descend ; au passage le lien README mort (.html, README.md:138 et :269) est corrigé.
    16-MechanismDesign-Python inchangé (racine) — palier, seconde porte de Coalitions/ Très haute —
    16-MechanismDesign-CSharp inchangé — jumeau Haute —
    16b-Automated-Mechanism-Design-Python inchangé — marche Haute —
    16c-Extraction-de-Revenu-DSIC-IR-Python inchangé — marche Haute —
    16d-Echange-de-Reins-Lean-Python Coalitions/Coalitions-03-Echange-de-Reins-Lean-Python Coalitions exemple Haute L'échange de reins est un mécanisme d'appariement (cycles/chaînes sur graphe de compatibilité) : il rejoint la famille appariement/coalitions du dossier, dont Munkres est l'algorithme. Ramène la chaîne 16 à 4 lettres.
    16e-LLM-Players-Othman-Sandholm-Python relettré → GameTheory-16d-LLM-Players-Othman-Sandholm-Python — marche (pilote) Très haute Pilote : 3e lettre après le départ des reins ; lettres consécutives.
    16f-Munkres-Assignment-Python Coalitions/Coalitions-04-Munkres-Affectation-Python Coalitions marche Haute Kuhn-Munkres « et le pont vers le cœur de Shapley-Shubik » (titre, lu) : théorie coopérative de l'affectation, pas de la conception de mécanismes — le numéro 16f était un numéro d'opportunité. L'affichage « 23 » promis meurt (§4).
    16f-Lean-Assignment-Lean Coalitions/Coalitions-05-Lean-Affectation-Lean Coalitions marche Très haute Certificat du lake assignment_lean : suit son jumeau d'objet. L'affichage « 23b » meurt.
    16g-Populations-Othman-Sandholm-Python relettré → GameTheory-16e-Populations-Othman-Sandholm-Python — capstone non gradé (créé 2026-10-11) « Généralisation du pilote 16e » (README.md:279) : capstone du fil Othman-Sandholm, dernière lettre de la chaîne ramenée à 4.
    17-MultiAgent-RL-Python inchangé — palier Très haute —
    17-MultiAgent-RL-CSharp inchangé — jumeau Haute —
    17b-Asymmetric-Information-Python inchangé — marche Haute —
    17c-Lean-Lemons-Certificat-Lean inchangé — marche Très haute —
    17d-Lean-Screening-Signaling-Lean inchangé — marche Haute —
    17e-Bayesian-Persuasion-Python inchangé — titre interne corrigé (« GameTheory-25 » → « GameTheory-17e »), affichage « 25 » supprimé — marche Haute La persuasion bayésienne = information design, famille information asymétrique : reste au palier 17. La promesse d'affichage 25 meurt (§4).
    17f-Market-to-Balance-Sheet-Python inchangé — le README affiche « 17c bis » → corrigé en « 17f » — capstone Haute Sa navigation déclare 17b « prérequis direct » et le carnet « face assureur de 17b » (cellule 1, lue) : c'est le bilan de la chaîne 17 qui ouvre vers la décision — il reste. Dérogation 5 lettres documentée (§8 Q7).

    Extensions 18-20e et SocialChoice

    Fichier actuel Cible Sous-série Rôle Grad. Argument
    18-Open-Games-et-Lentilles-Python Metajeux/Metajeux-01-Open-Games-Lentilles-Python Metajeux marche Haute Le geste « composer » : 1re marche de l'escalier métamathématique.
    18b-Casser-la-Composition-Python Metajeux/Metajeux-02-Casser-la-Composition-Python Metajeux marche Haute Contre-exemples de compositionnalité : 2e marche.
    18c-Humour-Banc-Python déplacé → IIT/ICT-Series/ICT-35e-Humour-Banc-Calibration-Python ICT (humor track) instrument du humor track Très haute Les consommateurs mesurés sont ICT-35, 35b, 35d (10 liens vers 18c, grep vérifié) ; l'instrument vit avec ses expériences. Le corpus Argumentum reste l'organe de SymbolicAI/Argument_Analysis, cité — le banc ne le duplique pas.
    19-Abstraction-a-Dette-Python Metajeux/Metajeux-03-Abstraction-a-Dette-Python Metajeux marche Haute Le geste « abstraire » : 3e marche.
    20-Chemin-Minimal-Robinson-Goforth-Python Metajeux/Metajeux-04-Chemin-Minimal-Robinson-Goforth-Python Metajeux marche Très haute Le geste « témoigner » : tête du vol Loi II.
    20b-Chemin-Minimal-Temoins-Impossibilite-Python Metajeux/Metajeux-05-Temoins-Impossibilite-Python Metajeux marche Haute Témoins d'impossibilité : 2e marche du vol Loi II.
    20c-Chemin-Minimal-3x2-Ordinal-Python Metajeux/Metajeux-06-Chemin-Minimal-3x2-Ordinal-Python Metajeux marche Haute Second substrat : 3e marche du vol Loi II.
    20d-Loi-II-Translateur-Life-Python Metajeux/Metajeux-07-Translateur-Life-Python Metajeux capstone Haute Synthèse Loi II (construire un translateur + certificat d'impossibilité quand la traduction échoue) : couronne l'escalier. L'affichage « 21 » meurt (§4).
    20e-Perplexite-Structurelle-Hashlife-Python Metajeux/Metajeux-08-Perplexite-Hashlife-Python Metajeux ouverture Haute Instrument/mesure + question Turing-complet : l'ouverture qui prolonge le capstone. Au passage : entre au README de série (aujourd'hui absent — defect d'inventaire §1).
    SocialChoice/01-Arrow-Impossibility-Theorem.ipynb inchangé (passe de suffixes traitée en Q9/tranche T8) SocialChoice palier hors #15615 —
    SocialChoice/01-Arrow-…-Csharp.ipynb inchangé (idem) SocialChoice jumeau hors #15615 —
    SocialChoice/01b-Lean-SocialChoice-Formal.ipynb inchangé (idem) SocialChoice marche hors #15615 —
    SocialChoice/03-Voting-Methods.ipynb (+ Csharp) inchangé (idem) SocialChoice palier hors #15615 —
    SocialChoice/04-Computational-Aggregation-SAT-Z3.ipynb (+ Csharp) inchangé (idem) SocialChoice palier hors #15615 —
    SocialChoice/05-Gibbard-Satterthwaite.ipynb inchangé (idem) SocialChoice marche hors #15615 —
    SocialChoice/06-Mobius-Aggregation-Pouvoir-Manipulation.ipynb inchangé — reçoit 15d comme accretion 06b SocialChoice palier (organe Möbius) hors #15615 —
    SocialChoice/07-Committees-Core.ipynb inchangé (idem) SocialChoice marche hors #15615 —
    SocialChoice/08-Kemeny-RankedPairs-Dodgson.ipynb inchangé — ligne ajoutée au README SocialChoice (aujourd'hui sautée de SC-07 à SC-09, defect mesuré) SocialChoice marche hors #15615 —
    SocialChoice/09-Committees-STV-Monroe-ChamberlinCourant.ipynb inchangé (idem) SocialChoice marche hors #15615 —

    (Les lignes SocialChoice regroupent les jumeaux C# sur une ligne quand leur sort est identique — 12 fichiers au total, tous inchangés à part la passe de suffixes Q9 et l'arrivée du 06b.)

    Comptes : 27 déplacements + 6 relettrages + 1 fusion (2→1) = 33 renommages ; racine 101 → 73 carnets ; Dynamics/ 11, Coalitions/ 5, Metajeux/ 8, SocialChoice/ +1 (06b), ICT +1 (35e), DecInfer +1.


    3. Sous-séries escalier proposées

    Chaque dossier suit le modèle SocialChoice (dossier + numérotation interne + README propre), avec une porte (le palier nu, en racine) et un capstone. L'ordre interne suit la gradation #15615 (croissante) et l'ordre de lecture déjà déclaré par le README.

    Dynamics/ — jeux répétés, agents transparents, systèmes dynamiques (11 carnets, porte = GT-06, capstone racine = GT-06i)

    # Carnet (ex-fichier) Grad.
    01 Jeux répétés et Folk Theorem (+ jumeau C#) (ex-06c) Moyenne
    02 Lean : jeux répétés (ex-06b) Haute
    03 Sympathie contre engagement (ex-06d) Haute
    04 Open-source game theory (ex-06e) Haute
    05 Agents bornés (Python + Lean, même slot) (ex-06f×2) Haute / Très haute
    06 Preuves bornées et coût du raisonnement (ex-06j) Haute
    07 Équilibres par simulation (ex-06g) Haute
    08 Institutions transparentes (ex-06h) — capstone du vol transparence Très haute
    09 Biens publics N-personnes (ex-03e, objet #19484) — greffe, entrée par GT-03 Haute
    — GT-06i Ensembles limites (Poincaré-Bendixson) reste en racine : capstone de toute la chaîne 06 Haute

    Deux vols déclarés dans le README du dossier : « jeux répétés » (01-03) puis « agents transparents et bornés » (04-08), puis la greffe N-personnes (09). Ordre de lecture interne : 01→02→03→04→05(Python puis Lean)→06→07→08, puis 06i en racine ; 09 se lit après GT-03 (sa cellule E1 est la carte d'entrée 2x2).
    Pierres de franchissement manquantes (à écrire) : (P1) une pierre d'entrée du vol transparence « du tournoi au programme lisible » — pourquoi lire le code de l'autre change l'équilibre (pont 06 nu → 04) ; au minimum une section du README du dossier, idéalement un carnet court ; (P2) la note de prérequis 2x2 en tête du 09 (l'option B du ledger #15615, appliquée à sa nouvelle maison).

    Coalitions/ — pouvoir, assistance, appariement (5 carnets, portes = GT-15 et GT-16, capstone racine = GT-15d)

    # Carnet (ex-fichier) Grad.
    01 Pouvoir coalitionnel : SMT borné et preuve (ex-15e) Haute
    02 Assistance Games, résultat 2026 (ex-15g) Haute
    03 Échange de reins (ex-16d) Haute
    04 Munkres : affectation optimale et dualité (ex-16f) Haute
    05 Lean : affectation (ex-16f-Lean, lake assignment_lean) Très haute

    La racine garde 15 nu + 15b + 15c×2 + 15d (ex-15f, Shapley de groupe, capstone) ; le 16 nu garde 16b, 16c, 16d (ex-16e pilote), 16e (ex-16g populations, capstone). L'organe Python cooperative_games/ (racine) reste l'organe des carnets 01-04 — le dossier notebooks coexiste avec lui comme SocialChoice/ coexiste avec les lakes.
    Pierres manquantes : aucune bloquante ; optionnelle : une cellule-pont « du Shapley individuel (15 nu) à l'affectation (04) » — le cœur de Shapley-Shubik est déjà traité dans le carnet 04.

    Metajeux/ — composer, abstraire, témoigner, traduire (ex-extensions 18-20e, 8 carnets, capstone interne = 07)

    # Carnet (ex-fichier) Grad.
    01 Open games et lentilles (ex-18) Haute
    02 Casser la composition (ex-18b) Haute
    03 Abstraction à dette (ex-19) Haute
    04 Chemin minimal Robinson-Goforth (ex-20) Très haute
    05 Témoins d'impossibilité (ex-20b) Haute
    06 Second substrat 3x2 (ex-20c) Haute
    07 Translateur Life (ex-20d) — capstone Haute
    08 Perplexité Hashlife (ex-20e) — ouverture (Turing-complet) Haute

    Pas de palier nu en porte : le dossier s'entre par la section « Escaliers » du README de série (qui remplace la table Extensions). Les vols : composition/abstraction (01-03), Loi II (04-07), ouverture (08).
    Pierres manquantes : (P3) une intro « pourquoi la métamathématique de la série » en tête du README du dossier, reliée à la fin du parcours (17) ; à écrire.

    Chaînes qui restent en racine (pas de dossier)

    • 03 (géométrie ordinale) : 03 nu → 03b (fusion chambres+murs+chemins) → 03c (LLM) → 03d (flèches) → 03e (méta-actions, capstone). Le remède est la fusion (§4 de la règle), pas un dossier.
    • 04 : b, c×2, d, e — inchangée une fois 04f descendu.
    • 13 : b, c, d, e — à la norme, ne pas y ajouter de 5e lettre sans fusion préalable.
    • 17 : b, c, d, e, f — dérogation documentée à 5 lettres (Q7), le capstone 17f est le pont sortant.

    4. Numéros affichés 21-25 — recommandation

    Recommandation : ces numéros disparaissent, dans les deux sens. Ni numéros de fichier (ils étendraient le speed-run nu à 25 paliers, contredisant la règle §1 « numéro nu = étape du parcours » et l'aveu du README.md:351 « leur numéro nu est un héritage de leur livraison »), ni numéros d'affichage (le mensonge actuel). Les cinq objets rejoignent leurs escaliers : 20d → Metajeux-07, 06i → reste 06i (capstone racine), 16f×2 → Coalitions-04/05, 18c → ICT-35e, 17e → reste 17e. La table Extensions (README.md:349-366) est remplacée par une section « Escaliers » qui renvoie aux trois dossiers et aux deux descentes inter-séries.

    Coût : 6 retouches de titre interne (20d, 16f, 16f-Lean, 18c, 17e déjà listées — 06i est déjà conforme), la suppression de la table, et l'acte d'écriture d'une promesse non tenue depuis la v1.5.0 du README. Les titres internes qui portent déjà « GameTheory-21/23/23b/24/25 » (lus, inventaire §1) deviennent les nouveaux titres internes de leur cible.

    Alternatives : (a) numéros de fichier — 5 renommages nus 21-25, mais collision 23 Munkres/biens publics non résolue et speed-run allongé : refusé. (b) retour de l'affichage aux fichiers — ~6 retouches de README/titres, zéro mouvement de fichier : c'est la variante minimale de toute la carte (elle laisse les chaînes hors norme, les organes dupliqués et la racine à 101 carnets — décrite comme repli, pas comme cible).


    5. Placement du contenu #19484 (GT-03e « Plan de deformation »)

    Recommandation : le carnet quitte la chaîne 03 (l'argument de contenu de la PR est juste) mais rejoint Dynamics/ (Dynamics-09), pas un « GT-23a ».

    Arguments :

    1. Contenu (vérifié phase 0 + PR) : biens publics non linéaires N-personnes (Archetti-Scheuring 2012), plan de déformation (k, s, c/b), mur à mémoire, hystérésis/bifurcation — « N-personnes » ×8, aucune mention de Poincaré/Moran/Folk mais la famille conceptuelle est la dynamique évolutive, dont 06i (ensembles limites) est la théorie des issues.
    2. Refus de « 23a » : première accretion nommée a sans base nue = le défaut mesuré §2 de la règle (Lean-16, Tweety-7) ; et 23 est déjà promis à Munkres dans la table Extensions (README.md:363-364) — la PR laisse les deux promesses coexister. Même si la table Extensions meurt (§4), un « 23a » se lirait comme une accretion de Munkres : sans rapport.
    3. Pierre de franchissement : la cellule E1 (78 profils 2x2, 4 archétypes) est déjà la carte d'entrée depuis GT-03 — la doctrine pt-2 (greffe → accretion du premier numéro qui traite le concept + pierre) est satisfaite par la note de prérequis, pas par le numéro.

    Mise en œuvre : la PR #19484 étant ouverte et touchant ce fichier (gate de séquencement §5.4 de la règle), deux voies : (a) la lane amende la PR vers la destination Dynamics (en conservant sa prose README « il ne varie plus la géométrie 2x2, il en sort », qui est bonne) et la pose avant la tranche T3 ; (b) la PR est fermée et le renommage repris dans T3. Recommandation : (a).

    Alternative : rester en 03 comme 5e lettre avec E1 en pierre — refusé : la chaîne resterait hors norme et le sujet (dynamique N-personnes) y serait un corps étranger (la phase 0 le mesure : « le seul membre dont l'objet n'est pas l'espace des jeux 2x2 »).


    6. Ce qui descend vers d'autres séries / ce qui remonte

    Objet Recommandation Argument (organ-first le cas échéant) Alternative
    18c Humour banc Descend en ICT-35e Consommateurs mesurés : ICT-35, 35b, 35d (10 liens, grep vérifié) ; l'instrument vit avec ses expériences (humor track). Le corpus Argumentum reste l'organe d'Argument_Analysis — le banc le cite, ne le réimplémente pas (les 5 questions organ-first : la série qui possède la sémantique « expérience humour » est ICT). Descendre chez Argument_Analysis (propriétaire du corpus) — moins bon : le banc n'est pas une analyse argumentative ; ou rester (le pire : l'instrument reste isolé de ses consommateurs).
    17f Pont décision Reste 17f (capstone de la chaîne 17) Sa navigation déclare 17b « prérequis direct » et le carnet « face assureur de 17b » (cellule 1, lue) ; Actuariat a déjà une section « Miroir GameTheory » (Probas/DecisionTheory/Actuariat/README.md:45-47). C'est un pont ancré des deux côtés : on renforce le lien côté Probas (ligne directe vers 17f), on ne déplace pas le carnet. Descendre vers DecisionTheory — refusé : orphelin de son prérequis 17b ; ou fusion 17c+17d (certificats du même lake asymmetric_information_lean) pour rentrer dans la norme sans dérogation.
    04f EDT/CDT/UDT Descend vers Probas/DecisionTheory/DecInfer (palier terminal, numéro à arbitrer par la lane Probas) Théories de la décision face à un prédicteur : le matériau de l'arc DecisionTheory (vNM → MDP → bandits → causal, README lu), qui ne le couvre pas. La nav 04e→04f devient un lien inter-séries assumé. Rester 04f avec dérogation 5 lettres (comme 17) — moins bon : deux dérogations pour un matériau qui a un propriétaire naturel.
    15d Möbius Descend en SocialChoice/06b Organ-first : l'organe Möbius/Harsanyi vit à SC-06 (dividendes de Harsanyi, pouvoir, manipulation — SocialChoice/README.md:39) ; 15d est la même décomposition côté GT. La série demandeuse garde le problème (15 nu enseigne Shapley), l'organe porte le calcul, l'écart entre les deux traitements est rapporté dans les deux README. Fusion SC-06 + 15d en un seul carnet enrichi (plus lourd) ; ou statu quo croisé (le plus mauvais : la duplication persiste).
    Ce qui remonte Rien Les liens entrants mesurés sont des consommations d'organes GT (Search → VCG 16/16c ; Complexity-03b → SC/01 et RepeatedGames ; RL/Probas → README) : elles restent des consommations croisées, aucun carnet d'une autre série n'est un carnet GT égaré. —

    Exemples dégénérés (cadre ICT, point 6) : aucun exemple dégénéré mesuré par les ledgers #15615 — les jouets 2x2 sont l'objet mathématique de la chaîne 03 (la table périodique EST le sujet), pas une démonstration flattée. Le seul point de vigilance signalé : 15g (Assistance Games, 8 cellules code, non lié au README jusqu'ici) — fragilité d'étalage, pas dégénérescence ; il descend à Coalitions-02 avec lien corrigé.


    7. Tranches de migration ordonnées

    Chaque tranche = une PR par sous-série, mapping « actuel → cible » dans l'issue avant la PR (règle §5.5), git mv sans changement de contenu dans la même PR (§5.6 — l'unique écart : la fusion 03b+03c, T4, qui porte son propre commit de contenu), sweep des 6 surfaces de la règle §6 (navlinks, docs links, accents, rendu README, libellé qui ment, référents hors dépôt), lignes docs/reference/rename-ledger.tsv, _quarto.yml (127 lignes GameTheory, seules les lignes des fichiers déplacés bougent), scripts/tests/baseline_nb_nav_chain.json, twin_pairs.d/ (seule la paire gametheory-6c-repeatedgames-folktheorem change de chemins), lignes README de série, docs/curriculum/recherche.md, slides/05-theorie-des-jeux/. Le catalogue n'est jamais régénéré à la main (cron). Comptages de référents = fichiers du dépôt citant le nom du carnet (grep md/yml/ipynb/json/tsv, hors catalogue généré) — ils mesurent l'ampleur du sweep, pas son exactitude (les 6 organes font foi).

    # Tranche Contenu Référents à balayer
    T0 Bandages README (zéro renommage) 3 liens morts : 15g .html→.ipynb (README.md:138, 269), entrée 20e, ligne SC-08 dans SocialChoice/README. PR README pure, immédiate. 0
    T1 Chaîne 17 Titre interne 17e (« 25 »→« 17e »), ligne README 17 (« 17c bis »→« 17f », colonne approfondir + 17f comme capstone). Léger. 17e : 7 fichiers
    T2 Descente 04f → DecInfer 1 déplacement + retitrage + ligne README GT 04 (renvoi inter-séries) + entrée README DecisionTheory/DecInfer (arbitrage slot par lane Probas) + quarto ×2 + ledger + nav. 04f : 8 fichiers
    T3 Escalier Dynamics/ 11 déplacements (06b..06j sauf 06i, + 03e) + README du dossier + lignes README palier 06 + section Escaliers + quarto + ledger + baseline nav + paire twin 6c + re-ciblage ou fermeture de #19484 (préalable) + lien ICT-13 (Folk) + slides/05 + recherche.md. 06b:9, 06c-Py:14, 06c-Cs:9, 06d:8, 06e:15, 06f-Py:7, 06f-Lean:7, 06g:8, 06h:7, 06j:8, 03e:9 — ~101 références-fichiers (06i:7 inchangés)
    T4 Chaîne 03 : fusion + relettrage 3 renommages (03d→03c, 03g→03d, 03f→03e) + fusion 03b+03c→03b (commit renommage puis commit de contenu, mapping dans l'issue) + tables README 03 + quarto + ledger + slides/05 + recherche.md. 03b:9, 03c:11, 03d:10, 03f:9, 03g:14 — ~53 références-fichiers
    T5 Chaînes 15/16 + escalier Coalitions/ 5 déplacements (15e, 15g, 16d, 16f, 16f-Lean) + 3 relettrages (15f→15d, 16e→16d, 16g→16e) + déplacement 15d→SC-06b (README SocialChoice + table lakes README.md:563-564 « 23, 23b ») + README GT 15/16 + lien Complexity-03b (16f) + quarto + ledger. Attente du merge #20311/#20313 si leurs fichiers se croisent (ils touchent 15 nu et cooperative_games/, pas les renommés — croisement nul attendu, vérifié par diff). 15e:9, 15g:7, 16d:8, 16f-Munkres:11, 16f-Lean:8, 15d:12, 15f:10, 16e:8, 16g:3 — ~76 références-fichiers
    T6 Escalier Metajeux/ 8 déplacements (18→Metajeux-01 … 20e→08) + README du dossier + remplacement de la table Extensions par la section Escaliers + quarto + recherche.md (20e) + ledger. 18:10, 18b:8, 19:11, 20:12, 20b:10, 20c:8, 20d:9, 20e:6 — ~74 références-fichiers
    T7 Descente 18c → ICT-35e 1 déplacement + retitrage + ligne README GT (déjà portée par T6) + entrée README ICT-Series + mise à jour des liens dans ICT-35, 35b, 35d (10 liens mesurés) + quarto + ledger. Coordination avec la lane ICT. 18c : README GT + 3 carnets ICT (10 liens)
    T8 SocialChoice : passe de suffixes/préfixe 12+1 renommages (01-Arrow… → SocialChoice-01-Arrow…-Python, casse -CSharp) + README SC + table SC du README GT + lien Complexity-03b + quarto + ledger. Priorité basse (cosmétique structurelle). table SC des deux README + lien Complexity
    T9 Clôture Version README GT (v1.6.0), section Escaliers finale, re-exécution des 6 organes de sweep, check_lane_claim/garde L898 avant chaque tranche, regen catalogue par le cron (jamais à la main). —

    Ordre : T0 immédiat ; T1-T2 légères et débloquantes ; T3 avant T4 (le départ du 03e conditionne le relettrage 03) ; T5 indépendante ; T6 avant T7 (la table Extensions meurt en T6) ; T8 n'importe quand après T5 ; T9 en clôture. Gates : aucune tranche ne touche un fichier visé par une PR ouverte (règle §5.4) — #19484 pour 03e (T3), #20311/#20313 pour l'organe cooperative_games/ (T5, croisement nul vérifié par diff).


    8. Réponses aux 10 questions ouvertes (gt_study.md §7)

    1. 21-25 en numéros de fichier, ou retour de l'affichage ? Rec : ni l'un ni l'autre — les numéros meurent, les objets rejoignent leurs escaliers (§4). Alt : retour d'affichage aux fichiers (variante minimale de toute la carte).
    2. Palier 23 : Munkres ou biens publics ? Rec : aucun — 23 n'existe pas ; Munkres → Coalitions-04/05, biens publics → Dynamics-09. La réservation future s'écrit dans la ligne Slot: de chaque PR ajout (règle §4bis, sign-off 2026-10-04) — c'est l'organe, plus aucune table de promesses. Qui tranche : le mainteneur, sur cette carte.
    3. La 06 descend-elle en sous-dossier avec capstone en numérotation principale ? Rec : oui — Dynamics/, porte = 06 nu, capstone racine = 06i (Poincaré-Bendixson : où les dynamiques se stabilisent — la question que tout l'escalier construit). Alt : relettrage seul en racine (tue les lettres partagées, dérogation 9 lettres documentée — la racine reste encombrée).
    4. Purge du décalage 03 et des lettres partagées : tranche séparée ou carte globale ? Rec : dans la carte globale, une passe par chaîne (T3 tue les « bis » de 06 par les départs ; T4 le décalage 03 ; T1 le « 17c bis »). Une tranche transverse de relettrage re-renommerait les mêmes fichiers après leurs déplacements. Alt : tranche de relettrage unique préalable (double churn, refusée).
    5. 03f capstone : la chaîne fusionne-t-elle autour de lui avant tout ajout ? Rec : oui — moratoire sur tout ajout en 03 jusqu'à T4 ; la fusion 03b+03c ET le relettrage font de 03e (ex-03f) le capstone d'une chaîne de 4. Alt : sous-dossier Ordinal/ (5 carnets, zéro fusion, un dossier de plus).
    6. Les extensions 18-20e : escalier « métamathématique » ? 20e y entre-t-il ? Rec : oui — Metajeux/ (composer → abstraire → témoigner → traduire), 20e entre comme ouverture (08), lié au README (defect T0). Alt : statu quo en racine avec affichage corrigé (la racine garde 8 extensions).
    7. 18c ici ou chez ICT/Argument_Analysis ? 17f reste ou descend ? Rec : 18c → ICT-35e (consommateurs mesurés) ; 17f → reste 17f (prérequis direct 17b, miroir Actuariat existant), dérogation 5 lettres documentée dans le README. Alt : 17c+17d fusionnent (même lake) pour rentrer dans la norme.
    8. Recouvrement Möbius 15d ↔ SC-06 : qui porte l'organe ? Rec : SocialChoice porte l'organe (SC-06), 15d descend en SC-06b — application directe de la règle organ-first (les 5 questions ont une réponse écrite : série source = SocialChoice, demandeuse = GT-15, témoin négatif = la divergence pouvoir/manipulation vs dividendes d'interaction, vérification indépendante = lake Lean côté GT si conservé). Alt : fusion SC-06+15d.
    9. SocialChoice : passe de suffixes noyau ? Rec : oui, tranche T8, avec préfixe SocialChoice- — vérifié : 01-Arrow-… ne matche pas la regex d'identifiant de la règle (^(.+?)[-_](\d{1,3})…), les 12 carnets SC sont aujourd'hui hors du recensement (814 carnets identifiés) ; le préfixe les y ramène. Alt : suffixe seul (moins cher, reste hors recensement).
    10. SC-08, 20e, 15g hors README : entrée simple ou placement par la carte ? Rec : les deux, dans cet ordre — lignes README immédiates (T0, bandage sans renommage), puis placement définitif par la carte (20e → Metajeux-08 lié ; 15g → Coalitions-02 lié ; SC-08 inchangé mais visible). Un carnet non lié est invisible pour le lecteur comme pour le catalogue.

    9. NON VÉRIFIÉ (UNVERIFIED)



    Carte cible phase 1. Décision du mainteneur dans le commentaire précédent (T7 suspendue).

  4. jsboige commented on Oct 11, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2023:CoursIA-2 — T0 (liens README sans renommage) puis note de conception de Dynamics/ (T3) et amendement de #19484 vers Dynamics/, posé au dispatch par ai-01 -- paths: MyIA.AI.Notebooks/GameTheory/README.md, MyIA.AI.Notebooks/GameTheory/SocialChoice/README.md, MyIA.AI.Notebooks/GameTheory/Dynamics/**

  5. jsboige commented on Oct 11, 2026

    @jsboige
    Owner

    Note de conception — Dynamics/ (dispatch ai-01 c2148, ordre 2)

    Écrite avant toute PR de déplacement, sur la carte retenue (§3 Dynamics/ du commentaire 6108510806 ci-dessus). Elle ne redit pas la table : elle justifie l'ordre, nomme ce que chaque marche ajoute, et fixe le numéro définitif du carnet de #19484.

    1. L'ordre des onze marches

    La porte reste GT-06 nu (06-EvolutionTrust-Python, racine, « Moyenne ») — l'escalier se lit après elle, jamais à sa place. Les onze carnets se rangent en deux vols + une greffe :

    Vol Marches Source
    Jeux répétés 01 → 02 → 03 06c, 06b, 06d
    Agents transparents et bornés 04 → 05 → 06 → 07 → 08 06e, 06f×2, 06j, 06g, 06h
    Greffe N-personnes 09 03e

    Ordre de lecture interne : 01 → 02 → 03 → 04 → 05 (Python puis Lean) → 06 → 07 → 08, puis 06i en racine, et 09 après GT-03 (sa cellule E1 est la carte d'entrée 2×2). Deux jumeaux C# ne comptent pas comme marches : ils partagent le slot de leur Python (01 C# avec 01, règle §7 du corps).

    2. Ce que chaque marche ajoute — le marchepied est l'écart, pas le sujet

    # Carnet Ce que la marche précédente ne donnait pas
    01 Jeux répétés et Folk Theorem L'horizon : le 06 nu joue une fois ; ici la répétition rend la coopération soutenable par menace (Folk).
    02 Lean : jeux répétés La preuve du même énoncé — grim_trigger_sustains_iff certifié sans sorry (le Folk complet reste ouvert, Folk.lean).
    03 Sympathie contre engagement Le type de l'autre : statique comparative sur l'engagement (connu) contre la sympathie (inféré).
    04 Open-source game theory Le programme devient lisible : lire le code de l'autre change l'équilibre. Tête du vol transparence.
    05 Agents bornés (Python + Lean) L'agent n'est plus omniscient : le calcul a un coût, et le slot partagé Python/Lean tue la lettre 06f portée par deux fichiers.
    06 Preuves bornées et coût du raisonnement Le coût porte sur le raisonnement lui-même (longueur de preuve), pas seulement sur le calcul.
    07 Équilibres par simulation Les équilibres de programmes qui se simulent — la clôture opérationnelle du vol.
    08 Institutions transparentes Le paiement du vol : la transparence institutionnelle comme capstone — « Très haute ».
    09 Biens publics N-personnes La sortie du 2×2 : plan de déformation (k, s, c/b), mur à mémoire, hystérésis/bifurcation (Archetti-Scheuring 2012). Greffe par GT-03.
    — 06i Ensembles limites (racine) Où finit une trajectoire d'apprentissage : Poincaré-Bendixson (point, orbite, hétéroclinique — pas de chaos en dimension 2), appliqué à la dynamique de replicateur (Czechowski-Piliouras 2021). Capstone de toute la chaîne 06, reste en racine comme dernière lettre du palier.

    Deux pierres de franchissement manquantes (à écrire, elles ne sont pas dans le lot de déplacements) : (P1) une entrée du vol transparence « du tournoi au programme lisible » — pourquoi lire le code de l'autre change l'équilibre (pont 06 nu → 04) ; au minimum une section du README du dossier, idéalement un carnet court. (P2) la note de prérequis 2×2 en tête du 09 (l'option B du ledger #15615, appliquée à sa nouvelle maison) — sans elle, la greffe arrive sans sa carte d'entrée alors que sa cellule E1 EST cette carte.

    3. La gradation #15615 comme colonne d'étalage

    L'ordre interne suit la gradation #15615 (fournée B, 06-10) lue croissante, et l'étalage se tient :

    06 nu = Moyenne → 01 = Moyenne → plateau Haute de 02 à 07 et 09 → sommets Très haute = 05 (jumeau Lean) et 08 → 06i = Haute (racine).

    Deux propriétés à préserver dans le README du dossier : (a) l'entrée est « Moyenne » par construction — 01 est la suite directe de la porte 06, lui donner une marche d'entrée « Haute » casserait la continuité ; (b) les deux Très haute marquent les deux cimes réelles (la preuve bornée côté Lean, l'institution transparente côté synthèse), et 06i reste gradé Haute parce qu'il est une synthèse, pas une difficulté nouvelle — sa valeur est de rassembler, pas d'ajouter un cran. Afficher ces trois repères dans le README du dossier, c'est ce qui rend la gradation lisible comme une colonne et non comme une note par carnet.

    4. 06i — capstone resté en racine, et ce qu'il consomme

    06i ne descend pas : il est la théorie des issues de tout l'escalier (« où peut finir une trajectoire »). Ce qu'il consomme, mesuré à son intro (lue) : (i) la dynamique de replicateur héritée de la chaîne 06/évolution (les trajectoires dont il borne l'avenir) ; (ii) les trajectoires d'apprentissage du vol transparence (01→08), dont il dit qu'elles ne peuvent finir qu'en point, orbite ou hétéroclinique. Le laisser en racine est cohérent avec le rôle de porte/capstone nu : c'est lui qui reçoit, en fin de lecture, les deux vols et la greffe.

    5. Modules de lake qu'aucun carnet n'expose encore (mesuré ce cycle)

    La carte nomme game_theory_lean/ProgramGames et Abstraction comme compagnons formels du vol, mais la table des lakes du README et LEAN_INVENTORY.md §1 énumèrent cinq groupes seulement (StableMarriage, CooperativeGames, SocialChoice, RepeatedGames, Swaps) — ProgramGames/ et Abstraction/ n'y figurent nulle part (grep : 0 occurrence dans les deux fichiers). Le disque porte pourtant ces modules, et l'inventaire déclare « 49 .lean FR+EN » quand find en compte 60 (36 FR). L'écart se décompose ainsi, mesuré :

    Module Fichiers Consommateur Verdict
    ProgramGames/Bounded — import ProgramGames.Bounded dans 06f Python ET Lean exposé, mais absent de la table README et de l'inventaire → à déclarer
    ProgramGames/Basic — 06f Python (mention) exposé partiellement
    ProgramGames/FairBot — 0 importeur ; FairBot nommé 75× en prose dans 06e et 06j pièce non consommée — soit 06e/06j l'appellent (l'import manque), soit elle cherche sa marche
    Abstraction/Basic — 0 importeur ; carnet 19 « Abstraction à dette » (Metajeux-03) est le consommateur naturel et n'appelle rien module orphelin

    Conséquence pour la tranche T3, hors périmètre des déplacements mais à tracer dans le README du dossier : la table des lakes doit nommer ProgramGames (→ 05/06, vol transparence) et Abstraction (→ Metajeux-03), et LEAN_INVENTORY.md doit reprendre ces deux groupes et corriger son compte. Le cas FairBot est un manque d'import ou une marche manquante — à trancher par la lane, pas par cette note. Ces trois points sont des défauts mesurés du couple README/inventaire, pas des déplacements : je les signale ici pour qu'ils ne se perdent pas dans T3.

    6. Ce que cette note fixe

    Le numéro définitif du carnet de #19484 est Dynamics/Dynamics-09-Biens-Publics-N-Personnes-Python (role : greffe, marchepied E1 = carte 2×2 d'entrée de GT-03). L'ordre 3 du dispatch (amender #19484 vers cette destination, en gardant sa prose README « il ne varie plus la géométrie 2x2, il en sort ») s'exécute après le merge de T0 (#20368), qui touche aussi GameTheory/README.md.

    Note de conception, c2148 ordre 2 — mesurée sur la carte 6108510806, les intros de 06i et 03e, et un comptage find/grep du 2026-10-11. Aucun déplacement n'a été fait.

    🤖 Generated with Claude Code

  6. added a commit that references this issue on Oct 11, 2026
  7. jsboige commented on Oct 11, 2026

    @jsboige
    Owner

    Décision du mainteneur (2026-10-11) : le banc humour reste dans GameTheory, T7 est remplacée

    L'étude de placement est faite. Le banc 18c est à la fois un cours et un instrument de recherche. Ses seuls consommateurs sont les carnets ICT-35 à 35d, qui lisent son corpus en exécutant ses cellules 26 à 33 par position (ict/humor_pairs.py:31-32). Ce couplage a déjà cassé une fois, au renommage du carnet.

    Décision. Le banc ne descend pas vers ICT : il n'y aura pas d'ICT-35e. La tranche T7 est remplacée par T7', l'extraction de l'organe :

    • le corpus dur, les paires et la typologie sortent des cellules vers des fichiers et un module, à côté de 18c dans GameTheory ;
    • 18c devient le cours qui les charge et les expose ;
    • ict/humor_pairs.py charge ces fichiers au lieu d'exécuter des cellules ;
    • ICT ne garde que la mesure.

    Conditions de la PR

    • Note de conception d'abord, en commentaire ici : l'emplacement et le nom du module, son contrat (champs, taille, unicité des identifiants), et ce que 18c montre ensuite.
    • Le body répond aux cinq questions organ-first.
    • 18c est ré-exécuté et committé avec ses sorties (C.2). Les tests ict/tests/test_humor_* sont verts.
    • Tout carnet ICT-35* dont une cellule change est ré-exécuté.
    • La typologie du banc (jeu de mots, actualité, ressort social) reste articulée avec la famille « humour » de la taxonomie Argumentum, sans la réimplémenter.

    Le futur grand corpus (#20301) ne vit pas ici : il va dans une série pédagogique sœur du détecteur de sophismes (voir #20301).

  8. jsboige commented on Oct 11, 2026

    @jsboige
    Owner

    [CLAIMED] lane myia-po-2023:CoursIA — T7' : note de conception puis extraction de l'organe humour (corpus, paires, typologie) hors des cellules de 18c, ict/humor_pairs.py rebranché sur les fichiers, posé au dispatch par ai-01 -- paths: MyIA.AI.Notebooks/GameTheory/GameTheory-18c-Humour-Banc-Python.ipynb, MyIA.AI.Notebooks/GameTheory/humour*/**, MyIA.AI.Notebooks/IIT/ICT-Series/ict/humor_pairs.py, MyIA.AI.Notebooks/IIT/ICT-Series/ict/humor_typology.py, MyIA.AI.Notebooks/IIT/ICT-Series/ict/tests/test_humor_*

  9. jsboige commented on Oct 11, 2026

    @jsboige
    Owner

    Note de conception — extraction de l'organe humour (T7')

    Mesures firsthand : lecture intégrale de ict/humor_pairs.py (320 l.), ict/humor_typology.py (216 l.), des cellules 25-43 de 18c, du pilote ICT-35 (cellule 5) et de 35b/c/d (cellule 3), des deux fichiers de tests.

    Diagnostic — pourquoi l'extraction

    Le corpus CORPUS_DUR (120 instances) vit dans les cellules 26-33 de 18c. Deux consommateurs le reproduisent par exécution positionnelle de ces cellules :

    1. ict/humor_pairs.py::load_corpus_dur() (l. 72-89) — exécute les cellules code 26≤i≤33 dans un namespace isolé ;
    2. le pilote ICT-35 cellule 5 — reproduction inline du même geste (le module a été extrait ensuite, le pilote n'a jamais été rebranché).

    Fragilités mesurées :

    # Défaut Détail
    F1 Renumérotation toute insertion de cellule dans la section « Passage à l'échelle » de 18c casse silencieusement ICT (le contrat est la position, pas le contenu)
    F2 Clé LLM exigée pour lire un corpus la cellule 26 raise ValueError si OPENROUTER_API_KEY est absente — clé utilisée uniquement par le détecteur (cellule 37). Conséquence : test_humor_pairs.py doit _NEEDS_KEY-skipper les tests corpus, qui ne touchent jamais l'API
    F3 Réseau au chargement le cache Argumentum est résolu en chemin relatif (Path("argumentum_scenarii.csv"), chassé par _corpus_cwd() sur 2 répertoires) ; il n'est pas committé (mesuré : absent d'ICT-Series et de GameTheory sur ce clone) → un clone frais fetch raw.githubusercontent.com à chaque chargement de corpus
    F4 Non-déterminisme latent si upstream bouge, le fetch ramène un CSV différent → random.sample(labeled_arg, 42) produit un corpus différent du corpus committé (le check SHA de la cellule 28 ne fait que constater)

    Décisions

    1. Emplacement et nom du module

    Nouveau dossier à côté de 18c, couvert par le claim existant (GameTheory/humour*/**, pas d'amend nécessaire) :

    MyIA.AI.Notebooks/GameTheory/humour_banc/
        organ.py                      # chargeur + contrats canoniques (~150 l.)
        humour_corpus.json            # LES 120 instances (l'organe)
        humour_pairs_edits.json       # les 30 edits main (setup/punch/unfun/ctrl)
        humour_typology.json          # TYPES + PAIR_TYPES + BORDERLINE + MIN_PER_TYPE
        argumentum_scenarii.csv       # snapshot upstream au SHA épinglé (cache committé)
    

    organ.py résout tout par Path(__file__) — insensible au cwd (F3 meurt). Il devient le détenteur canonique de LABELS, validate_corpus, build_pairs, validate_pairs (déplacés depuis ict/humor_pairs.py, même sémantique, mêmes asserts). build_prompts_json et la couche mesure (measure_humor_differential, _common_prefix_len, _zone_vec) restent dans ICT — c'est la mesure, pas l'organe.

    Câblage :

    • 18c : sys.path.insert du dossier GameTheory (motif déjà utilisé par les carnets ICT pour ict/) + from humour_banc.organ import ... ;
    • ict/humor_pairs.py : load_corpus_dur() délègue via importlib.util.spec_from_file_location sur le chemin résolu de banc_humour_path() (l'import de GameTheory n'est pas un package importable depuis ict — le chargement par fichier est le pont honnête, 6 lignes). Ré-exporte LABELS/validate_corpus/build_pairs/validate_pairs pour garder l'API stable de 35b/c/d. _PAIR_EDITS disparaît du module (lit le JSON) ;
    • ict/humor_typology.py : PAIR_TYPES/BORDERLINE/TYPES/MIN_PER_TYPE deviennent des chargements du JSON (l'annotation est une donnée figée avant mesure — c. de claim 14035 — elle appartient à l'organe). Les jambes d'inférence (bootstrap_mean_ic, feature_z, final_verdict, validate_typology, split_by_type) restent dans ICT.

    2. Contrat du corpus

    Inchangé en sémantique — le médium change : liste JSON de 120 objets, champs exacts id, texte, features{laugh,reframe,uptake,refus}, label, justification, source ; label ∈ LABELS (5-cellules) ; ids uniques ; taille ≥ 100. validate_corpus (l'assert existant, déplacé en canon dans organ.py) s'exécute à chaque chargement — 18c, ict et les tests passent par la même porte. La provenance est portée par des constantes organ.py (ARGUMENTUM_SHA = 0af0511c58, SAMPLE_SEED = 42, composition 60 arg / 30 blagues / 20 négatives / 10 edge).

    3. Cache Argumentum — traitement

    • Le snapshot CSV upstream (SHA épinglé, celui qui a produit le corpus committé) est committé dans humour_banc/argumentum_scenarii.csv (~555 Ko — précédent en dépôt : GenAI/FallacyDetection/data/argumentum_scenarii_cards.csv, 168 l., déjà committé). Fin de la dépendance réseau et du chasse-chemin _corpus_cwd() (F3, F4).
    • La capture se fait par fetch du CSV au SHA épinglé (raw.githubusercontent.com/ArgumentumGames/Argumentum/<sha>/Cards/Scenarii/...), pas de master HEAD — déterminisme de la baseline garanti même si upstream a bougé depuis.
    • Le chargement nominal de l'organe ne touche plus ni le réseau ni le CSV : il lit humour_corpus.json. La clé OPENROUTER sort de la section corpus (son check va dans la cellule détecteur 37, où elle sert). Conséquence mesurable : les marqueurs _NEEDS_KEY des tests corpus sont retirés — les tests corpus tournent en CI sans secret.

    4. Ce que 18c montre ensuite

    La section « Passage à l'échelle » garde son récit pédagogique complet, mais les rôles s'inversent :

    • markdown de provenance : origine Argumentum (upstream, SHA épinglé, date de capture, motif du fetch direct — le récit de la cellule 27 actuelle), seed 42, heuristiques d'annotation ;
    • cellule de démonstration : parse du snapshot committé → argumentum (167 scénarios, offline, déterministe) ;
    • cellule heuristiques : label_argumentum reste montrée comme code pédagogique transparent (les règles catégorie→cellule, figées), appliquée en démo → labeled_arg ;
    • cellule 33 devient le chargement de l'organe : CORPUS_DUR = load_corpus() + validate_corpus + les mêmes impressions de distribution ;
    • témoin d'identité vivant (4 lignes) : random.seed(42); sample = random.sample(labeled_arg, 60) et assert que les ids arg-* de l'organe sont exactement cet échantillon, dans l'ordre — la section prouve à chaque exécution que le fichier committé est bien la dérivation qu'elle montre. Les tables manuelles (30 blagues, 20 négatives, 10 edge) restent décrites en prose (elles vivent dans l'organe) ;
    • markdown « Lecture » actualisé : le corpus est un organe committé (humour_banc/), ICT-35* le consomme par fichier, la dérivation ci-dessus en est la provenance reproductible.

    Cellules détecteurs/ranking/matrices (35-43) : inchangées. Le pilote ICT-35 est rebranché (cellule 5 : exec-by-position → load_corpus_dur()) — sa cellule change, donc re-exécution du carnet (C.2). 35b/c/d : imports inchangés (API stable), aucune cellule modifiée, pas de re-exécution — les tests attestent.

    5. Articulation typologie du banc ↔ famille « humour » d'Argumentum

    Deux taxonomies distinctes, articulées sans réimplémentation :

    • Taxonomie 5-cellules (humour_reussi…rien) : classifie toute instance du corpus par effet communicationnel (rire × recadrage × uptake × refus). C'est la grille d'annotation du corpus entier.
    • Typologie par mécanisme (pun / topical / sociale — jeu de mots, référence d'écosystème, ressort social) : classifie les 30 paires minimales par mécanisme comique principal (annotation figée avant mesure, BORDERLINE documenté). Elle vit désormais dans humour_typology.json.
    • Le pont = les heuristiques transparentes catégorie Argumentum → cellule (cellule 31), montrées dans 18c, dont le résultat est figé dans humour_corpus.json. Argumentum est consommé comme donnée (CSV de scénarios publics) ; aucune logique du jeu n'est recodée — le jeu réel reste le submodule C# (hors scope humour).

    Preuve d'identité (exigée par la décision du 12:39)

    1. Avant : capture de la baseline sur ce worktree — fetch du CSV au SHA épinglé (pas de cache local, F3 mesuré), exécution de la chaîne actuelle 26-33 → dump des 120 instances (ids + contenus + ordre) dans le scratchpad.
    2. Après : load_corpus_dur() rebranché → comparaison intégrale (ids, textes, features, labels, justifications, sources, ordre) contre la baseline — diff nul attendu, preuve dans le body de la PR.
    3. Les distributions imprimées par 18c re-exécuté doivent matcher ses outputs committés actuels (120 ; répartition par label/source).

    Livrables et validations de la PR

    • humour_banc/ (module + 4 fichiers de données) ; ict/humor_pairs.py rebranché ; ict/humor_typology.py annnotations en JSON ; pilote ICT-35 cellule 5 rebranchée ; 18c section échelle réécrite + re-exécutée de bout en bout (C.2, clé via master.env pour la cellule 37) ; pilote re-exécuté.
    • Tests : ict/tests/test_humor_{pairs,typology}.py passent, marqueurs _NEEDS_KEY corpus retirés ; test nouveau : chargement organ == baseline de dérivation (le témoin vivant de 18c, porté en test pour CI).
    • Body : réponses aux 5 questions organ-first (série détentrice / invocation réelle / export nécessaire / témoin négatif / vérification indépendante) + preuve d'identité.

    Feuille de route : je capture la baseline maintenant (fetch au SHA épinglé), puis j'implémente dans le worktree existant (feature/20316-humour-organ).

  10. jsboige commented on Oct 11, 2026

    @jsboige
    Owner

    [CLAIMED-AMEND] lane myia-po-2023:CoursIA-2 -- paths: MyIA.AI.Notebooks/GameTheory/Dynamics/**, MyIA.AI.Notebooks/GameTheory/README.md, docs/curriculum/recherche.md, _quarto.yml, scripts/tests/baseline_nb_nav_chain.json, scripts/notebook_tools/twin_pairs.d/gametheory-6c-repeatedgames-folktheorem.yaml, scripts/notebook_tools/verify_program_games_table.py, scripts/notebook_tools/check_source_collapse.py, scripts/notebook_tools/pedagogy_density_baseline.json, scripts/ci/fast_lane_registry.py, scripts/notebook_tools/check_notebook_outputs_required.py, .github/workflows/notebook-outputs-required.yml, slides/05-theorie-des-jeux/slides.md, slides/S3-acculturation/slides.md -- T3 livre : descente des 10 carnets 06 dans Dynamics/ + escalier complet (PR #20374, stackee sur #19484)

  11. myia-ai-01 commented on Oct 11, 2026

    @myia-ai-01
    CollaboratorAuthor

    [ai-01] Deux notes de conception lues : Dynamics/ (c.6108947569) et extraction de l'organe humour T7' (c.6109349346).

    Dynamics/ : acceptée

    L'ordre deux vols + une greffe, 06i laissé en racine comme capstone, et la destination Dynamics/Dynamics-09-Biens-Publics-N-Personnes-Python pour le carnet de #19484 (après T0 #20368) : acceptés.

    • Pierres de franchissement P1 et P2. Elles sont à écrire et ne figurent pas dans le lot de déplacements. Elles entrent nommément dans la tranche T3, pour qu'aucune PR de déplacement ne se déclare complète sans elles.
    • LEAN_INVENTORY.md. Ajouter les groupes ProgramGames et Abstraction est un apport de contenu : ce qu'ils prouvent et quel carnet les consomme. En revanche, le compte « 49 .lean » ne doit pas être réécrit en 60 : un total en prose se retire au profit du catalogue, il ne se met pas à jour à la main. Le check prose-counts est bloquant sur les lignes ajoutées.
    • FairBot (0 importeur) et Abstraction/Basic (orphelin). Ces points sortent des déplacements : une issue de suivi, ouverte par la lane, tranche entre l'import manquant et la marche manquante.

    T7' : acceptée, avec un geste organ-first à faire avant le code du §3

    Le diagnostic F1-F4, organ.py résolu par Path(__file__), validate_corpus à chaque chargement, la sortie de la clé OpenRouter de la section corpus et la preuve d'identité par diff nul sont acceptés. La re-exécution du pilote ICT-35 et l'absence de re-exécution de 35b/c/d sont acceptées aussi.

    Le §3 recopierait un fichier déjà committé. MyIA.AI.Notebooks/GenAI/FallacyDetection/data/argumentum_scenarii_cards.csv existe sur main, mesuré : 557 564 octets, 168 lignes (167 scénarii). C'est une copie verbatim de Cards/Scenarii/Argumentum Scenarii - Cards.csv au commit amont 0ab05d66 (blob 9f20eb80, LGPL-3.0). Sa provenance est tracée dans data/NOTICE-SCENARII, et une garde SHA1 vit dans scripts/fallacy_detection/cartesian_dataset_builder.py. La note épingle 0af0511c58 pour la baseline de 18c. Avant de committer une seconde copie :

    1. Comparer le blob de ce chemin à 0af0511c58 avec 9f20eb80.
    2. S'ils sont égaux : humour_banc consomme le snapshot existant. Le résultat est une seule copie, une seule NOTICE et une seule garde, et les questions organ-first 1 à 3 sont réglées par construction.
    3. S'ils diffèrent : le body donne les deux SHA de blob et montre que le témoin de dérivation échoue sur la copie existante (c'est la preuve qu'une seconde copie est nécessaire). La seconde copie porte alors sa propre NOTICE, car la licence LGPL-3.0 l'exige.

    Une conséquence pour #20301 est notée là-bas : la série HumorDetection consommera humour_banc.organ directement, pas les ré-exports de ict/humor_pairs.py.

    🤖 Generated with Claude Code

  12. added 2 commits that reference this issue on Oct 11, 2026
  13. added a commit that references this issue on Oct 11, 2026
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