Skip to content

docs(probas,#14871): navigation Percolation + audit fichier-entier du README série (réconciliation prose/disque, pont causal développé) - #15405

Merged
myia-ai-01 merged 2 commits into
mainfrom
docs/14871-percolation-nav
Sep 10, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
docs/14871-percolation-nav

Conversation

@jsboige

@jsboige jsboige commented Sep 9, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/readme — lane myia-po-2027:CoursIA — prev: MED/notebook-dotnet #15181

Ce que cette PR fait

Deux livrables sur le README de la série Probas, audit fichier-entier (688 lignes) contre l'arbre disque, mesure du 10/09/2026 :

  1. Navigation Percolation (commit 5b485f3, résiduel acceptance 7 de [Probas/Lean] Formaliser le noyau fini de la percolation avant pont ICT #14871) : le duo Applications/Percolation/ devient visible des READMEs.
  2. Réconciliation prose ↔ disque (commit aa2df68, réponse au commentaire user 16:18Z + review CHANGES_REQUESTED) : le README avait pris du retard — comptes faux, deux notebooks invisibles, numérotation périmée à six endroits, pont causal sous-représenté.

Audit — mesures disque ↔ marqueur ↔ prose

Méthode : énumération par sous-dossier (find) + lecture des metadata.kernelspec de chaque notebook. Marqueur CATALOG-STATUS byte-identique à main (aucune régénération) et zéro drift marqueur ↔ disque — tout le drift était prose ↔ disque :

Mesure Disque (10/09/2026) Marqueur Prose avant Prose après
Total 69 69 ✓ 67 69
C# 28 (hors marqueur) 28 28
Python 38 (hors marqueur) 37 38
Lean 4 3 (hors marqueur) 2 3
Infer/ 21 (socle 1-20 sans le 6, +1b+2b ; Infer-20 kernel Python) 21 ✓ « 19 + accretion 1b » 21
DecisionTheory/ 26 (10+12+4) 26 ✓ 26 ✓ 26
PyMC/ 19 19 ✓ 19 ✓ 19

Écarts corrigés (vérifiés un par un)

  1. Infer-20-Quotients-et-Fibres (kernel Python, 8/8 cellules exécutées) : totalement absent du README → ajouté (couverture, tableau « Ce que chaque notebook apporte », arbre, progression).
  2. Infer-6 n'existe pas : le debugging vit en Infer-2b-Debugging-Bonnes-Pratiques → ligne du tableau déplacée 6→2b ; section fix(probas,#3801): demonstrate EP-vs-VMP algorithm comparison (Prong-B) #7590 (« Le notebook 6 (Debugging) ») et Phase 2 (« Le notebook 13 (Debugging) ») corrigées.
  3. Numérotation périmée (schéma antérieur à l'extraction de l'arc décision) : « notebooks 4, 9 » (réseaux bayésiens), « 9 (Dirichlet-Discrète) », « 15 (CARA/CRRA) », « notebook 4 » (modèles hiérarchiques), frontières « Causalité, GP sparse, hiérarchique… » pour 14-19 → tous réalignés (4 / 11 / DecInfer-03 / 12 / séquences-reco-GP-Kalman-CP-survie).
  4. Tables PyMC Phase 2/5 : la colonne # mélangeait ordinaux de parcours et numéros réels, PyMC-12 était classé en Phase 5 alors que la prose le met dans les classiques 4-13 → seq = numéros réels, 12 en Phase 2, 14-15 en Phase 5, blockquote corrigée (« hiérarchiques 16, GP sparse 15 » → 12 et 16).
  5. Arbre de structure : GeneratedSource/ et Model_*.gv / .svg n'existent plus sur le disque → retirés (remplacés par SvgChartHelper.cs, qui existe) ; Applications/Percolation/ ajouté ; ligne Infer/ réconciliée (21).
  6. Mermaid §preuves : nœuds fantômes Infer-14b vNM sound et Infer Coherence — zéro occurrence hors de ce README (git grep) → remplacés par des artefacts réels (DecInfer-02, arc DecInfer).
  7. FAQ kernels : liste incomplète (DecPyMC, Causal-Bridges, Percolation, Infer-20 absents) → répartition réelle mesurée par kernelspec.
  8. Nav : lien Percolation → ; heading « Applications standalone » 2 → 4 notebooks ; version footer 1.2.0 → 1.3.0.

Pont causal DecisionTheory (réponse au commentaire user)

Le pont est désormais représenté à la hauteur de son contenu réel — source : lecture firsthand de DecisionTheory/Causal-Bridges/README.md + intros des notebooks :

  • table des 4 notebooks : Do-Calculus-Bridge (~55 min, échelle de Pearl + 3 règles + backdoor/front-door sur dowhy, Pearl vs Hoel), DoWhy-1 (~45 min, identification nommée, sensibilité au graphe mesurée), DoWhy-2 (~40 min, contrefactuel individuel dowhy.gcm, CATE cachée par un effet moyen nul), Quasi-Experimental (~50 min, DiD, contrôle synthétique, RDD, IV) ;
  • le pipeline complet : dowhy identifie l'estimande (backdoor / front-door / instrumentale), l'estime puis le réfute — vs l'instrumentation à la main d'Infer-5 / PyMC-5 ;
  • le 3e échelon de Pearl (contrefactuel individuel) et les méthodes quasi-expérimentales.

Note de mesure : kernels Causal-Bridges = 3× coursia-ml-training + 1× python3 (DoWhy-1) — la prose « via kernel coursia-ml-training » nuancée en conséquence.

Périmètre du diff (2 fichiers)

  • MyIA.AI.Notebooks/Probas/README.md — tout ce qui précède
  • MyIA.AI.Notebooks/Probas/Applications/Percolation/README.md — navigation Percolation (commit 5b485f3)

Aucun notebook modifié, aucun catalogue régénéré, pas de re-exec.

Vérifications

  • 62 liens internes testés (script) : 0 manquant
  • Garde advisory check_prose_quantitative_claims --diff origin/main...HEAD : [OK]
  • Résidus grep (GeneratedSource, Infer-14b, « 67 notebooks », « notebook 13 (Debugging ») : 0

See #14871

… visibles des READMEs (residuel acceptance 7)
@github-actions github-actions Bot added the variation-genre-mismatch declared genre != genre infere depuis les chemins du diff (#10020, advisory) label Sep 9, 2026
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2027:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-09) :

  • GENRE-MISMATCH : declared genre != genre infere depuis les chemins du diff

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@jsboige

jsboige commented Sep 9, 2026

Copy link
Copy Markdown
Owner Author

Concern: Le readme Proba a pas mal de retard. C'est possible de le mettre à jour de façon plus complète? Le pont causal de DecisionTheory par exemple est plus développé que ce qui est présenté.

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CHANGES_REQUESTED — la navigation Percolation est juste dans son périmètre, mais elle ne répond pas au concern user posté sur cette PR : « Le readme Proba a pas mal de retard. C'est possible de le mettre à jour de façon plus complète ? Le pont causal de DecisionTheory par exemple est plus développé que ce qui est présenté. » Aucun commentaire de réponse ni issue de suivi ne lève ce point ; l'organe B.0 le bloque correctement.

La règle README exige ici un audit du fichier entier, pas une extension isolée : relire les 688 lignes de MyIA.AI.Notebooks/Probas/README.md contre l'arbre actuel, puis réconcilier au minimum (a) structure/comptes des sous-dossiers cités, (b) marqueur CATALOG-STATUS byte-identique ou drift signalé sans le régénérer, (c) listes/tableaux/navigation, et (d) prose de couverture — avec attention explicite au pont causal DecisionTheory, nommé par le user. Corriger dans cette PR les écarts vérifiés et documenter dans le body les mesures disque ↔ marqueur ↔ prose ; ne pas gonfler artificiellement les sections déjà exactes.

Deux corrections de protocole devront accompagner le scope final :

  • le genre réel est readme, pas docs ;
  • prev #15388 est invalide car cette PR est encore OPEN. À l'ouverture de #15405, le dernier grain mergé vérifiable de myia-po-2027:CoursIA était #15181 : MED/notebook-dotnet, mergé le 2026-09-08T12:33:40Z.

Ne corrigez le tier qu'après l'audit : s'il reste un ajout ponctuel générable en série, LIGHT/readme; si l'audit fichier-entier corrige effectivement un drift structurel substantiel, MED/readme, conformément au litmus. Première ligne finale : Grain: <LIGHT|MED>/readme — lane myia-po-2027:CoursIA — prev: MED/notebook-dotnet #15181.

La PR ne doit pas toucher le catalogue généré. Aucun notebook/lake n'a besoin d'être ré-exécuté pour ce geste README. Répondre explicitement au commentaire user avant nouvelle demande de review.

…alignee sur le disque

Reconciliation mesuree au 10/09/2026 (disque = marqueur CATALOG-STATUS = 69
notebooks ; la prose disait 67) :
- comptes : 69 notebooks, 28 C# + 38 Python + 3 Lean 4 (note decomptes datee)
- Infer/ = 21 notebooks : socle 1-20 SANS le 6 (debugging = accretion Infer-2b),
  Infer-20-Quotients-et-Fibres absent du README -> ajoute (tableau, arbre,
  progression, couverture) ; 27 -> 28 notebooks C#
- numeração corrigee : Phase 2 prose (notebook 13 Debugging -> Infer-2b),
  section #7590 (6 -> 2b), prerequisites (9/15/4 -> 11/DecInfer-03/12),
  exemples concrets (notebooks 4, 9 -> 4)
- tables PyMC : seq reels (12 hierarchiques en Phase 2, 06 a sa place,
  14-15 en Phase 5), blockquote frontieres corrigee
- arbre structure : GeneratedSource/ et Model_*.gv retires (n'existent plus),
  Applications/Percolation ajoute, SvgChartHelper.cs
- pont causal (commentaire user) : table des 4 notebooks Do-Calculus-Bridge /
  DoWhy-1 / DoWhy-2 / Quasi-Experimental + pipeline dowhy identifie-estime-refute
- nav : lien Percolation ; kernels FAQ completee ; mermaid : noeuds fantomes
  Infer-14b / Infer Coherence remplaces par des artefacts reels
- marqueur CATALOG-STATUS byte-identique (aucune regeneration)
@jsboige jsboige changed the title docs(probas,#14871): navigation Percolation -- rende le compagnon Lean et le lake percolation_lean visibles docs(probas,#14871): navigation Percolation + audit fichier-entier du README série (réconciliation prose/disque, pont causal développé) Sep 10, 2026
@jsboige

jsboige commented Sep 10, 2026

Copy link
Copy Markdown
Owner Author

En réponse à @jsboige (2026-09-09T16:18Z) — « Le readme Proba a pas mal de retard. C'est possible de le mettre à jour de façon plus complète? Le pont causal de DecisionTheory par exemple est plus développé que ce qui est présenté. » — c'est fait au commit aa2df68, par audit fichier-entier des 688 lignes contre l'arbre disque (mesure du 10/09/2026) :

Retard rattrapé. La prose annonçait 67 notebooks, le disque en porte 69 — et le marqueur CATALOG-STATUS (resté byte-identique) avait raison : tout le drift était dans la prose. Deux notebooks étaient invisibles : Infer-20-Quotients-et-Fibres (kernel Python, 8/8 cellules exécutées, quotients/fibres/recollement avec garde-fou Ruzsa) et l'accretion Infer-2b-Debugging-Bonnes-Pratiques (le debugging ne porte pas le numéro 6 côté Infer). Six passages portaient l'ancienne numérotation (« Le notebook 13 (Debugging) », « réseaux bayésiens (notebooks 4, 9) », « CARA/CRRA en 15 »…) — tous réalignés. L'arbre de structure listait GeneratedSource/ et des exports .gv/.svg disparus du disque ; le mermaid des preuves citait un Infer-14b qui n'existe nulle part dans le dépôt.

Pont causal développé. La section « Pont causal » présente désormais le contenu réel de DecisionTheory/Causal-Bridges/ (lecture directe du sous-dossier) : tableau des 4 notebooks — Do-Calculus-Bridge (~55 min, échelle de Pearl, trois règles, backdoor/front-door exécutés sur dowhy), DoWhy-1 (~45 min, identification nommée, sensibilité au graphe mesurée quand une hypothèse saute), DoWhy-2 (~40 min, contrefactuel individuel via dowhy.gcm — l'effet moyen nul cache une CATE), Quasi-Experimental (~50 min, DiD, contrôle synthétique, RDD, variables instrumentales) — plus le pipeline identifier → estimer → réfuter qui distingue dowhy de l'instrumentation à la main d'Infer-5/PyMC-5.

Les mesures complètes disque ↔ marqueur ↔ prose sont dans le body de la PR.

@github-actions github-actions Bot removed the variation-genre-mismatch declared genre != genre infere depuis les chemins du diff (#10020, advisory) label Sep 10, 2026

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVED — re-review terminale au head exact aa2df68.

Je lève explicitement ma review CHANGES_REQUESTED du 2026-09-09T21:41:31Z et atteste que le concern user du 2026-09-09T16:18:35Z est traité en substance, pas seulement déclaré traité :

  • audit fichier-entier matérialisé par un diff ciblé de deux README (+66/−43 et +10/−1), sans catalogue généré ni notebook modifié ;
  • comptage indépendant sur les fichiers suivis : 69 notebooks au total, dont 21 sous Infer/, 19 sous PyMC/, quatre sous DecisionTheory/Causal-Bridges/ et un notebook racine ; le marqueur pedagogical_count: 69 reste cohérent ;
  • Infer-20-Quotients-et-Fibres et Infer-2b-Debugging-Bonnes-Pratiques existent bien aux chemins documentés ; les anciens artefacts GeneratedSource et Infer-14b sont retirés de la nouvelle prose ;
  • les quatre notebooks Causal-Bridges existent et leur contenu contient bien les concepts annoncés (dowhy, estimand/backdoor-frontdoor, gcm/contrefactuel/CATE, méthodes quasi-expérimentales) ; la nouvelle section développe donc réellement le pont causal demandé ;
  • le tag est corrigé en MED/readme avec prev: MED/notebook-dotnet #15181 ; zéro thread inline ; checks de contenu et check-links verts au head.

La réponse écrite du 2026-09-10T02:41:29Z nomme le commentaire user, mais cette approval repose sur la confrontation ci-dessus et non sur une auto-certification de l’auteur. Le PR gate rouge restant doit encore être qualifié/rerunné selon DWELL avant merge.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

[OVERRIDE] lane myia-ai-01:CoursIA — Je lève le concern du 2026-09-09T16:18:35Z : l’audit fichier-entier et le développement du pont causal sont traités au commit aa2df68, vérifiés firsthand dans ma review APPROVED du 2026-09-10T04:21:56Z.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

[OVERRIDE] lane myia-ai-01:CoursIA — Je lève aussi la réserve de jsboige du 2026-09-09T16:18:35Z : l’audit fichier-entier et le développement du pont causal sont traités au commit aa2df68, vérifiés firsthand dans ma review APPROVED du 2026-09-10T04:21:56Z.

@myia-ai-01
myia-ai-01 merged commit 76d7a5b into main Sep 10, 2026
26 of 27 checks passed
jsboige added a commit that referenced this pull request Sep 11, 2026
…self-hosted

Le workflow livre par cette PR porte runs-on [self-hosted, coursia-ephemeral,
coursia-linux] sans entree correspondante dans SELF_HOSTED_WORKFLOW_ALLOWLIST,
ce qui faisait echouer
test_current_repository_self_hosted_jobs_satisfy_isolation_policy
(WORKFLOW_NOT_ALLOWED) -- 1 echec sur 12711 tests.

Decision ai-01 : le workflow satisfait le profil exige par la rationale de la
liste (garde same-repo au niveau job #13874, scan Python pur stdlib-only,
GITHUB_TOKEN borne a l'API labels, jamais exit != 0), soit exactement celui de
markdown-deaccent-advisory.yml et repeated-prose-advisory.yml deja admis.
L'entree porte sa rationale et son rollback, comme les tranches precedentes.

Mesure locale apres correctif : 58/58 sur
scripts/tests/test_check_self_hosted_runner_policy.py.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Sep 11, 2026
… advisory (#15455)

* tooling(#15405): detecteur paragraphes markdown trop longs + workflow advisory

Le README Probas (PR #15405, commit 76d7a5b, remarque user 2026-09-10)
portait un paragraphe unique de 3336 caracteres / 24 phrases sur une
seule ligne physique -- et aucun garde CI ne l'a signale. Cet organe
est l'instrument qui aurait du l'intercepter.

## Nouveaux fichiers

- `scripts/notebook_tools/detect_paragraph_length.py` : detecteur
  (stdlib uniquement) qui signale tout paragraphe markdown > 2000 c.
  Ignore les fences code (```/~~~), lignes de tableau (`|`), titres
  (`#` ... `######`), commentaires HTML (`<!-- ... -->` dont
  CATALOG-STATUS), directives Sphinx. Listes et blockquotes
  **comptent** (la calibration confirme : un item de 2500 c est un mur).
  CLI : `--json` (sortie CI-friendly), `--fail-on-findings`, `--self-test`.
- `scripts/notebook_tools/tests/test_detect_paragraph_length.py` +
  `tests/fixtures/paragraph_wall_md.md` : 12 tests, tous verts.
  Couverture : temoin fondateur tire, post-fix muet, seuil pile 2000 /
  2001 exact, fences/tableaux/CATALOG-STATUS ignores, listes longues
  signalees, tri des findings par longueur decroissante.
- `.github/workflows/paragraph-length-advisory.yml` : workflow
  advisory per-PR, label `paragraph-length` (jamais bloquant a ce
  stade). Self-cover (#8822). Permission same-repo only. #8819 guard
  (payload illisible => label `-unmeasured`, jamais de claim vert).

## Fichiers modifies

- `scripts/notebook_tools/README.md` : section dediee au detecteur,
  mention dans la table des detecteurs anti-regression.

## Calibration

rglob sur 791 `*.md` / 23049 paragraphes :
  p50=79  p75=274  p90=536  p95=760  p99=1437  max=13409 c
  > 2000 c : 42 fichiers / 84 paragraphes (hors _archives, vendored)

Le seuil 2000 capture l'incident fondateur avec ~1.6x de marge.

## Hors scope (issue de suivi a ouvrir)

Les 42 fichiers pre-existants > 2000 c ne sont PAS corriges ici
(sweep de resorption = sujet separe, ouverture d'issue a la suite
de cette PR). Adresser ce pre-existant dans cette PR ferait un
composite > 1 domaine (regle G.4).

## Bascule blocking

Decision user 2026-09-10 : **advisory d'abord**. Bascule bloquante =
PR dediee apres que le sweep de resorption soit a zero et stable.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>

* fix(ci,#15405): admettre paragraph-length-advisory.yml a l'allowlist self-hosted

Le workflow livre par cette PR porte runs-on [self-hosted, coursia-ephemeral,
coursia-linux] sans entree correspondante dans SELF_HOSTED_WORKFLOW_ALLOWLIST,
ce qui faisait echouer
test_current_repository_self_hosted_jobs_satisfy_isolation_policy
(WORKFLOW_NOT_ALLOWED) -- 1 echec sur 12711 tests.

Decision ai-01 : le workflow satisfait le profil exige par la rationale de la
liste (garde same-repo au niveau job #13874, scan Python pur stdlib-only,
GITHUB_TOKEN borne a l'API labels, jamais exit != 0), soit exactement celui de
markdown-deaccent-advisory.yml et repeated-prose-advisory.yml deja admis.
L'entree porte sa rationale et son rollback, comme les tranches precedentes.

Mesure locale apres correctif : 58/58 sur
scripts/tests/test_check_self_hosted_runner_policy.py.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
myia-ai-01 added a commit that referenced this pull request Sep 12, 2026
…36 c -> 6 paragraphes aeres) (#15454)

Le bloc "Cette serie couvre trois stacks..." du README Probas tenait
**3336 caracteres / 24 phrases sur une seule ligne physique** (issue
soulevee par user 2026-09-10 sur le commit 76d7a5b, PR #15405),
illisibles et impossibles a scanner. Aucun garde CI ne le detectait
(instrument manquant -- voir PR B a suivre).

Decoupage en 6 paragraphes thematiques aeres (chacun ~330-700 c,
tous tres en-dessous du futur seuil 2000 du detecteur) :

1. **Intro + decomptes** : stacks (Infer.NET message passing ; PyMC
   MCMC NUTS ; applications standalone RSA/DoWhy/percolation),
   69 = 28 C# / 38 Python / 3 Lean, renvoi CATALOG-STATUS.
2. **Corpus bayesien Infer/** : 21 notebooks (socle 1-20 sans le 6,
   accretions 1b et 2b, Infer-20 kernel Python), couverture
   fondements/classiques/frontieres/geometrie categorique.
3. **Arc decision** : 8 C# DecInfer + lake decision_theory_lean +
   2 notebooks Lean (DecInfer-02 vNM, DecInfer-09 Gittins),
   `0 sorry`, theoreme d'optimalite enonce.
4. **Versant PyMC** : 19 corpus parite 1:1 + 12 miroirs renumerotes
   1-12, jambe actuarielle 8-12.
5. **Percolation** : duo Python/Lean, lake percolation_lean, trois
   regimes.
6. **Pont causal** : 4 notebooks, kernels, echelle de Pearl +
   do-calculus, pipeline dowhy identifie-estime-refute, 3e echelon,
   quasi-experimental.

Contraintes respectees :
- CATALOG-STATUS (l. 3-8) **byte-identique** (catalog-pr-hygiene).
- Aucune autre ligne du README modifiee (diff +11/-1 borne au bloc).
- Aucune information perdue : chaque lien, compte, mention `0 sorry`,
  kernel et nom d'accretion survit dans l'un des 6 paragraphes.

Voir #14871 (epic d'origine de l'audit README Probas).

Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Co-authored-by: myia-ai-01 <myia.ai.01.myia@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants