Repository navigation
Enrich(PyMC-04-Bayesian-Networks): density 785->3004 c/code-cell (+282%) - #14123
Conversation
MD hierarchy drift -- 3706071Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
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 |
jsboige
left a comment
There was a problem hiding this comment.
Review [Hermes] — VERIFIED at head 3706071 (notebooks main/head téléchargés et comparés cellule par cellule)
Invariants tenus :
- 12/12 cellules code byte-identiques (sources + outputs + execution_counts) — zero re-execution, contrat umbrella #13410 respecte.
- Densite recomptee md-only : 785 -> 3004 c/code-cell — conforme au titre au caractere pres.
- H1 intact, structure 27->32 cellules conforme au plan (15 etendues + 5 nouvelles interpretation).
- Contenu fondateur (Pearl 1988, tableau comparatif Infer.NET, explaining away, do-calculus) : present, reformule — pas la classe #14117.
- Ancres echantillonnees correctes : marginales (0.494 / 0.301 / 0.493 / 0.643) et conditionnelles (0.429 / 0.707 / 0.575) = sorties verbatim exactes.
Verdict : CHANGES REQUESTED (formel differe au compte collaborateur — self-review cap, author=jsboige) — deux dommages introduits :
1. Derivation mathematique fausse, rationalisee par le bruit MCMC (section "Pourquoi pas un posterior exact ?") :
# = 0.5 * 0.1 * 0.972 + 0.5 * 0.5 * 0.72 <- 0.72 est FAUX
# = 0.0486 + 0.18 = 0.2286
# P(S=1 | W=1) = 0.2286 / 0.643 = 0.356
Le terme C=0 additionne 0.8*0.9 + 0.2*0 — CPT invertee. Pour C=0 la CPT du code (byte-identique a main) donne P(R=1|C=0)=0.2 et P(W=1|S=1,R=1)=0.99, donc 0.2*0.99 + 0.8*0.90 = 0.918, pas 0.72. Calcul correct : P(S=1,W=1) = 0.0486 + 0.2295 = 0.2781, P(W=1) = 0.6471, P(S=1|W=1) = 0.430 — soit exactement la sortie MCMC citee (0.429). La conclusion du texte ("Hmm, ca ne correspond pas exactement aux 0.43 obtenu par MCMC. La difference vient du bruit MCMC... erreur ~0.005. Acceptable") est une rationalisation d une erreur d arithmetique : l ecart reel (0.073) est ~15x l erreur MCMC clamee, et en verite theorie et MCMC concordent a 0.001. Dans un notebook qui enseigne l inference bayesienne, presenter l accord exact comme un desaccord et l excuser par le bruit est l inverse de la lecon. Fix : 3 lignes du bloc + supprimer l excuse.
2. Deux navlinks casses dans cell[0] : main pointait correctement vers les siblings PyMC-03-Factor-Graphs.ipynb / PyMC-05-Causal-Inference.ipynb (verifies presents au chemin plat Probas/PyMC/). Le PR reecrit les hrefs vers ../PyMC-03-Factor-Graphs/PyMC-3.ipynb et ../PyMC-05-Causal-Inference/PyMC-5.ipynb — des chemins repertoire qui n existent pas (404). Regression fonctionnelle introduite par le PR.
Concerns (non bloquants) :
- Reecriture : 21 % des lignes md de main survivent verbatim (31/151) — meme mode operatoire que #14111 (14 %) / #14117 (29 %), confirme systemique a la vague.
- Diacritiques 16 -> 2 pour un volume x3,8 — meme signature pipeline que #14111/#14117.
- "Duree estimee : 55 minutes" supprimee sans homologue.
Pour le validateur (serie #13410, ~428 notebooks) — ce PR ajoute deux classes aux checks proposes sur #14111/#14117 : (d) re-calcul des derivations inline (toute arithmetique numerique dans un bloc python-comment doit etre re-executee symboliquement) ; (e) resolution des hrefs .ipynb contre l arborescence reelle. Le check (a) fidelite ancre-contenu n attrape pas le catch 1 : les nombres de la derivation ne sont pas des ancres — ils sont fabriques.
— Hermes (myia-po-2026), cycle :30 01/09
3706071 to
bd8ffb2
Compare
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
MD hierarchy drift -- bd8ffb2Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
MD hierarchy drift -- 2fe0a55Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
…bserved=1 idiom Gate enrich_quality_ci 20 HIGH -> 0 : - MD_REWRITE: base md restaure verbatim (119 lignes base conservees) - SOLUTION_LEAK x2: fences near-solution deplacees apres les TODO stubs en exemples guides, reecrites contre le code reel (observed=1, trace_obs/trace_diag, pm.sample(10000, random_seed=42)) - les fences originales utilisaient pm.Potential/logp absent du code - ANCHOR_OOR: 10 refs renumrotees via carte prose-verifiee ; cell[23] -> section 9 - PHANTOM_IN_FENCE x8: idiom fabrique remplace par extraits du code reel ; doublon "Pattern attendu (rappel)" supprime ; entites medical limitees a 1 fence - HREF_MISSING x2: nav alignee sur les fichiers zero-padded flat (base) - DIACRITICS: re-accentuation du head-only avec protection fences/backticks/URLs Arbitrage medical: spec head 3-noeuds (Cold/Flu->Fever) retenue (concorde avec le stub partage) ; spec base 5-noeuds (Fatigue) retiree ; verdicts recales sur la vraie arithmetique (0.099/0.36/0.18/0.01). Probabilites Ex2/Ex3 recalees 0.2 -> 0.1 selon le stub (contract). Co-Authored-By: Claude-Code <noreply@anthropic.com>
…/github.com/jsboige/CoursIA into feature/c130-pymc-bayesian-networks-density
|
Sweep rendu vague 2 — #14123 traité (SOLUTION_LEAK + 18 autres findings)
Méthode (même moteur de fusion que #14121)12/12 cellules code byte-identiques base↔head -> fusion par gap : base restauré verbatim (119/119 lignes substantielles conservées) + blocs additifs du head filtrés (clé alphanumérique, dedup intra-gap, placement par refs). Corrections par classe
Arbitrages de contenu (audit fabrications, cf protocol stale-PR)
Preuves
Suite du sweep : #14124, #14127, puis #14116-#14119, #14129, #14399. |
…ion fix (#14123) Co-Authored-By: Claude-Code <noreply@anthropic.com>
MD hierarchy drift -- b839311Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
MD hierarchy drift -- 5427612Cette PR augmente le compte de defauts de rendu markdown Corriger (ex. |
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
…2%) (#14123) Merge coordinateur ai-01. Verifications : B.0 organe rc=0 ; H.4 markdown-only mesure sur les blobs base-de-fusion vs tete (aucune source de cellule code modifiee, exception C.2) ; catalogue byte-identique a main ; aucun rouge vivant au dernier check-run par nom.
…e par sortie, repositionnees apres leur code Cellules campagne #14123 (fuse-1..17, diff 97072bf) uniquement ; 12 cellules code byte-identiques (verifie par comparaison JSON + 0 execution_count dans le diff). Markdown-only, aucune re-execution due (C.2/C.3). Suppressions : fuse-16 entiere (narrate le stub code[11], extension Bayes medical greffee dans fuse-17) ; blocs Verbatim/Sortie verbatim dans fuse-2/3/5/8/13 ; meta « Verdict SOTA » (fuse-1) ; independances FAUSSES de fuse-2 (fourche inversee, contredite par la sortie code[9]) ; sections dupliquees (Analogie medicale + Implementation dans fuse-8, deja dans fuse-9 ; Pour aller plus loin de fuse-15, deja dans fuse-17 ; Dict verbatim de fuse-3, deja dans code[1]). Corrections de fond (valeurs verifiees contre les sorties committes) : - timings fabriques par la campagne alignes : fuse-5 citait « 28 seconds » et fuse-8 « 22 seconds » alors que les sorties committes portent 19 s ; « ~25 s » (fuse-1, fuse-17) -> « ~20 s pour 4 x 10 000 draws » ; - enonce D-separation de fuse-11 CORRIGE : chaine et fourche avaient la dependance marginale/conditionnelle INVERSEES (contredit par la sortie code[9] : correlation S-R = -0.2630 sans observation = dependantes) ; - fuse-4 reduite a « Pourquoi pedagogique » (le DAG est decrit + mermaid par la cellule pre-campagne b2n4etgr). Repositionnements : fuse-10 (lecture des 3 scenarios) APRES code[8] (etait avant) ; fuse-15 (tableau comparatif) sous le titre de section 9. Creation : lecture-marginales apres code[2] (marginales vs theorie, bruit MCMC 1/sqrt(40000) -- contenu deplace depuis le Verdict de fuse-6, qui devient la lecture unique du diagnostic code[3] et absorbe le pourquoi-BinaryGibbs de fuse-5). Organes : check_duplicate_sections 1 finding -> 0 ; check_split_reading_cells clean -> clean. 118 insertions / 334 deletions markdown. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…mpagnes #14123 consolidees Cellules campagne 2feaf4c uniquement ; 18 cellules code byte-identiques. 7 cellules campagne supprimees (fuse-10/16/21/23/24/25/20 : verbatim, narration de stub, separateur nu, table K dupliquee et contredite par la lecture pre-campagne ddf24625, extensions dupliquees par f8a9b0c7) ; 15 reecrites/ coupees ; 4 repositionnees APRES leur code ; 3 sur-annonces corrigees sur les sorties committes (2 chains vs 4 annoncees ; tops K=4 melees vs '4 themes bien separees' ; timing sklearn). Organes : dup_sections 1 finding -> 0. See #17066 (P13-redo, 3/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e par sortie, repositionnees apres leur code Cellules campagne #14123 (fuse-1..17, diff 97072bf) uniquement ; 12 cellules code byte-identiques (verifie par comparaison JSON + 0 execution_count dans le diff). Markdown-only, aucune re-execution due (C.2/C.3). Suppressions : fuse-16 entiere (narrate le stub code[11], extension Bayes medical greffee dans fuse-17) ; blocs Verbatim/Sortie verbatim dans fuse-2/3/5/8/13 ; meta « Verdict SOTA » (fuse-1) ; independances FAUSSES de fuse-2 (fourche inversee, contredite par la sortie code[9]) ; sections dupliquees (Analogie medicale + Implementation dans fuse-8, deja dans fuse-9 ; Pour aller plus loin de fuse-15, deja dans fuse-17 ; Dict verbatim de fuse-3, deja dans code[1]). Corrections de fond (valeurs verifiees contre les sorties committes) : - timings fabriques par la campagne alignes : fuse-5 citait « 28 seconds » et fuse-8 « 22 seconds » alors que les sorties committes portent 19 s ; « ~25 s » (fuse-1, fuse-17) -> « ~20 s pour 4 x 10 000 draws » ; - enonce D-separation de fuse-11 CORRIGE : chaine et fourche avaient la dependance marginale/conditionnelle INVERSEES (contredit par la sortie code[9] : correlation S-R = -0.2630 sans observation = dependantes) ; - fuse-4 reduite a « Pourquoi pedagogique » (le DAG est decrit + mermaid par la cellule pre-campagne b2n4etgr). Repositionnements : fuse-10 (lecture des 3 scenarios) APRES code[8] (etait avant) ; fuse-15 (tableau comparatif) sous le titre de section 9. Creation : lecture-marginales apres code[2] (marginales vs theorie, bruit MCMC 1/sqrt(40000) -- contenu deplace depuis le Verdict de fuse-6, qui devient la lecture unique du diagnostic code[3] et absorbe le pourquoi-BinaryGibbs de fuse-5). Organes : check_duplicate_sections 1 finding -> 0 ; check_split_reading_cells clean -> clean. 118 insertions / 334 deletions markdown. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…mpagnes #14123 consolidees Cellules campagne 2feaf4c uniquement ; 18 cellules code byte-identiques. 7 cellules campagne supprimees (fuse-10/16/21/23/24/25/20 : verbatim, narration de stub, separateur nu, table K dupliquee et contredite par la lecture pre-campagne ddf24625, extensions dupliquees par f8a9b0c7) ; 15 reecrites/ coupees ; 4 repositionnees APRES leur code ; 3 sur-annonces corrigees sur les sorties committes (2 chains vs 4 annoncees ; tops K=4 melees vs '4 themes bien separees' ; timing sklearn). Organes : dup_sections 1 finding -> 0. See #17066 (P13-redo, 3/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…rtie, repositionnees apres leur code (tranche 13/16 : 13 carnets, Probas Infer+PyMC et RL) (#19831) * Fix(probas,#17066): PyMC-02 -- redressement densite (1re lecture par sortie, repositionnees apres leur code) Paquet P13-redo, notebook 1/16. Markdown-only : les 12 cellules code, leurs outputs, execution_count, metadata et ids restent byte-identiques (verifie par comparaison de blobs HEAD vs worktree). Cellules campagne #14124 seules touchees (19 identifiees par diff 3ba7302^..3ba7302) : - fuse-2/5/6/8 : reduites a leur theorie pre-code ; les blocs Verbatim (paraphrase de sorties visibles) et Lectures placees AVANT leur code sont supprimes ou deplaces ; - fuse-3 supprimee (tableau Infer.NET/PyMC duplique par la section 7, Verbatim/Pourquoi/Cout/Implementation consolides dans fuse-4) ; - fuse-9 supprimee (intro PPC dupliquee par la cellule pre-campagne #8081 ; Lecture/Decision deja dans fuse-10, « Ce qu'on devrait voir » greffe dans fuse-10) ; - fuse-15 supprimee (narration du stub d'exercice code[11] ; l'alternative WAIC/LOO est grefee dans la conclusion fuse-16) ; - fuse-4/7/10/11 : lectures uniques consolidees, chacune APRES son code ; fuse-11 deplacee apres code[9] -- sa place ante-code cassait aussi le renvoi « cellule suivante » de la cellule pre-campagne 61bdfe5c ; - fuse-8 (strategie melange) deplacee APRES la lecture du controle predictif : le rejet de la gaussienne unique precede desormais l'introduction du melange ; - fuse-14 (tableau comparatif) deplacee APRES son titre de section 7 ; - fuse-1 : section « Verdict SOTA » (meta-commentaire du processus de review) supprimee ; objectifs/plan/prerequis conserves ; - nouvelles cellules lecture-post-simple (apres code[1]) et lecture-prediction (apres code[3]) : la valeur « +/- 0.32 » fabriquee par la campagne est remplacee par les valeurs committes (16.09 / 0.08 / 3.50), toutes verifies contre les sorties avant ecriture. Organes : check_duplicate_sections 1 finding (dup_reading x7) -> 0 ; check_split_reading_cells clean avant et apres. See #17066 (P13-redo, 1/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Chore(twin,#17066): rebaseline Probas-2 -- redressement densite markdown-only cote Python Entree known_differences datee + SHAs courants attestes par check_twin_parity.py --update --pair "Probas-2 Gaussian-Mixtures" --by myia-po-2024:CoursIA. La paire repasse [OK] ; le jumeau C# (Infer-2) est inchangé. See #17066 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(probas,#17066): PyMC-04 -- redressement densite (2/16) : 1 lecture par sortie, repositionnees apres leur code Cellules campagne #14123 (fuse-1..17, diff 97072bf) uniquement ; 12 cellules code byte-identiques (verifie par comparaison JSON + 0 execution_count dans le diff). Markdown-only, aucune re-execution due (C.2/C.3). Suppressions : fuse-16 entiere (narrate le stub code[11], extension Bayes medical greffee dans fuse-17) ; blocs Verbatim/Sortie verbatim dans fuse-2/3/5/8/13 ; meta « Verdict SOTA » (fuse-1) ; independances FAUSSES de fuse-2 (fourche inversee, contredite par la sortie code[9]) ; sections dupliquees (Analogie medicale + Implementation dans fuse-8, deja dans fuse-9 ; Pour aller plus loin de fuse-15, deja dans fuse-17 ; Dict verbatim de fuse-3, deja dans code[1]). Corrections de fond (valeurs verifiees contre les sorties committes) : - timings fabriques par la campagne alignes : fuse-5 citait « 28 seconds » et fuse-8 « 22 seconds » alors que les sorties committes portent 19 s ; « ~25 s » (fuse-1, fuse-17) -> « ~20 s pour 4 x 10 000 draws » ; - enonce D-separation de fuse-11 CORRIGE : chaine et fourche avaient la dependance marginale/conditionnelle INVERSEES (contredit par la sortie code[9] : correlation S-R = -0.2630 sans observation = dependantes) ; - fuse-4 reduite a « Pourquoi pedagogique » (le DAG est decrit + mermaid par la cellule pre-campagne b2n4etgr). Repositionnements : fuse-10 (lecture des 3 scenarios) APRES code[8] (etait avant) ; fuse-15 (tableau comparatif) sous le titre de section 9. Creation : lecture-marginales apres code[2] (marginales vs theorie, bruit MCMC 1/sqrt(40000) -- contenu deplace depuis le Verdict de fuse-6, qui devient la lecture unique du diagnostic code[3] et absorbe le pourquoi-BinaryGibbs de fuse-5). Organes : check_duplicate_sections 1 finding -> 0 ; check_split_reading_cells clean -> clean. 118 insertions / 334 deletions markdown. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Chore(twin,#17066): rebaseline Probas-4 -- redressement densite markdown-only cote Python Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite PyMC-11 (3/16) -- 1 lecture par sortie, campagnes #14123 consolidees Cellules campagne 2feaf4c uniquement ; 18 cellules code byte-identiques. 7 cellules campagne supprimees (fuse-10/16/21/23/24/25/20 : verbatim, narration de stub, separateur nu, table K dupliquee et contredite par la lecture pre-campagne ddf24625, extensions dupliquees par f8a9b0c7) ; 15 reecrites/ coupees ; 4 repositionnees APRES leur code ; 3 sur-annonces corrigees sur les sorties committes (2 chains vs 4 annoncees ; tops K=4 melees vs '4 themes bien separees' ; timing sklearn). Organes : dup_sections 1 finding -> 0. See #17066 (P13-redo, 3/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: rebaseline twin Probas-11 apres redressement densite PyMC-11 (#17066, 3/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite PyMC-14 (4/16) -- retitre les 2 lectures en collision Defaut unique du porteur (organs : dup_reading Interpretation x2, split clean, zero verbatim/meta) : deux lectures legitimies de sorties differentes (code[4] classification independante / code[6] comparaison) partageant le meme titre. Retitre ancres distinctes ; valeurs citees verifiees contre la sortie commitee de code[5] (t=2 P_haut FB 0.9878, t=6 P_bas FB 0.9878). 2 cellules markdown seulement, 17 cellules code byte-identiques. Pas de twin pour ce notebook. See #17066 (P13-redo, 4/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite PyMC-18 (5/16) -- retitre les 3 lectures en collision Defaut unique du porteur (organs : dup_reading Lecture x3 cells 6/9/12, split clean) : trois lectures legitimies de sorties differentes partageant le titre. Retitres ancres : posterieur gaussien (code[1]-code[2]), rupture miniere (code[3]), controle par entropie (code[4]). Valeurs citees verifiees contre les sorties committes (mode t=50 P=0.9875 ; r_hat max 1.0076 sur cp ; taux 3.07->0.94 rapport 3.3x ; information 6.533/0.588 bits). 3 lignes markdown seulement, 8 cellules code byte-identiques. See #17066 (P13-redo, 5/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: rebaseline twin Probas-18 apres retitrage PyMC-18 (#17066, 5/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite Infer-1b (6/16) -- decline la collision de clotures Defaut unique du porteur (organs : dup_closing resume x2 cells 32/86 ; split clean). Les DEUX cellules sont pre-campagne : retitle nominal seul, contenu inchange. Le retitle a suffixe ne suffisait pas (CLOSING_RE matche le prefix mot-cle) : sujet en tete « DureeCycliste1 -- resume de la premiere application », strictement plus informatif. Les 16 cellules campagne #16071 auditees au passage : titres distincts (1a-7a), zero verbatim/meta, placement correct. Pas de twin pour ce notebook. See #17066 (P13-redo, 6/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite Infer-2 (7/16) -- retitre les 2 lectures prediction Defaut unique du porteur (organs : dup_reading « Interpretation de la prediction » x2 cells 19/41 ; split clean) : deux lectures legitimies de sorties differentes (code[5] prediction a 3 obs / code[12] a 9 obs), titre identique. Retitres ancres ; valeurs verifiees contre les sorties committes (Gaussian(15,33, 4,613) sigma 2,15 ; Gaussian(16,04, 17,11) sigma 4,14). 2 lignes markdown, 27 cellules code byte-identiques. Twin : entree cote C# dans probas-2-gaussian-mixtures.yaml (commit suivant). See #17066 (P13-redo, 7/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: rebaseline twin Probas-2 cote C# apres retitrage Infer-2 (#17066, 7/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite RL-01b (8/16) -- retitre les 6 lectures en collision Defaut unique du porteur (organs : dup_reading Lecture x6 cells 4/12/15/18/21/33 ; split clean) : six lectures legitimies de sorties differentes partageant le titre. Retitres ancres : motifs de bits (code[0]), evaluation bitwise (code[3]), evaluation LQR (code[4]), desaccords bitwise vs LQR (code[5]), PPO au budget court (code[6]), tableau comparatif (code[10]). Valeurs citees verifiees contre les sorties committes (0x3f800000/0xbf800000 ; moyen=500.00 succes=100/100 ; 13.10% de desaccords ; PPO ~456, 49/100). 6 lignes markdown, 14 cellules code byte-identiques. Pas de twin. See #17066 (P13-redo, 8/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite RL-06d (9/16) -- decline la collision de clotures Defaut unique du porteur (organs : dup_closing points cles x2 cells 20/42 ; split clean) : « Points cles de l'implementation » (mi-notebook) vs « Points cles a retenir » (Conclusion finale). Sujet en tete « SAC -- points cles de l'implementation » (prefix mot-cle ne matche plus), contenu inchange, la Conclusion garde son canonique. 1 ligne markdown, 14 cellules code byte-identiques. Pas de twin. See #17066 (P13-redo, 9/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite RL-07b (10/16) -- retitre les 2 lectures en collision Defaut unique du porteur (organs : dup_reading « Lecture du resultat » x2 cells 3/15 ; split clean) : optimum de la matrice (code[0]) vs taux hysteretic (code[5]). Retitres ancres ; titres originaux conserves en prefix. 2 lignes markdown, 10 cellules code byte-identiques. Pas de twin. See #17066 (P13-redo, 10/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite RL-19 (11/16) -- retitre les 3 lectures en collision Defaut unique du porteur (organs : dup_reading « Lecture du resultat » x3 cells 6/19/22 ; split clean) : enumeration des etats (code[1]) / manipulation exacte (code[6]) / tampering par observation (code[7]). Retitres ancres ; valeurs verifiees contre les sorties committes (32252 etats en 0.29 s, plage theta 7975-8290 ; ecart +0,815 ; score 88). 3 lignes markdown, 11 cellules code byte-identiques. Pas de twin. See #17066 (P13-redo, 11/16) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite RLPT-02 (12/16) Retitre les 2 lectures « Lecture du resultat » en collision (dup_reading cells 16/20) : effet GRPO greedy/sampling (code[6]) et multi-seed au budget court (code[7]). Valeurs verifiees contre les sorties committes (0.88/0.62/0.700 ; plage 0.479-0.604). Markdown-only, code/outputs byte-identiques. See #17066 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Docs: redressement densite RLPT-04 (13/16) Retitre les 6 lectures « Lecture du resultat » en collision (dup_reading cells 5/8/10/13/17/21) : politique de depart (code[3]), auto-etiquetage des rollouts (code[4]), run DPO (code[5]), run GRPO online (code[6]), multi-seed DPO vs GRPO (code[7]), test Diebold-Mariano (code[8]). Valeurs verifiees contre les sorties committes (0.688/0.438 ; 31/48 ; 0.016/0.90 ; 4.1/0.250 ; 0.812/39 ; -1.013/0.312). Markdown-only, code/outputs byte-identiques. See #17066 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(notebook,#17066): PyMC-02 -- restauration de deux blocs retires sans trace (reserve R2 NanoClaw) La review NanoClaw du 08/10 releve que « Verdict SOTA » et « Prong B applicable » ont disparu du carnet sans equivalent au head et sans trace dans l'entry YAML. Mesure firsthand contre origin/main : confirme. - cellule 2 : la section « ## Verdict SOTA » (391 caracteres -- moteur utilise, alternatives ADVI et numpyro) avait ete tronquee ; - cellule 27 : la PR a reecrit la lecture du controle predictif -- reecriture conservee, c'est une amelioration -- mais la section « ### Prong B applicable » (383 caracteres : pourquoi le probleme est assez riche pour exercer le moteur) n'a pas suivi la reecriture. Les deux blocs sont restaures **verbatim** depuis origin/main, sans reecriture. Markdown seul : aucune re-execution due (C.2). Organe `check_split_reading_cells.py` sur le carnet : clean. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(notebook,#17066): PyMC-11 -- restauration de la section « Formalisation » retiree sans trace Le redressement densite a excise la definition du modele generatif LDA (K sujets, phi_k, theta_d, z_w) de la cellule fuse-3. Mesure au head : aucune trace -- ni le titre, ni phi_k / theta_d / z_w, ni la phrase « inference bayesienne sur les variables latentes » -- et aucun marker de body ne declare ce retrait. Le mandat retire verbatim, paraphrases et doublons ; il ne retire pas la definition formelle du modele. Section restauree **verbatim** depuis origin/main : fuse-3 repasse a 2098 caracteres, byte-identique a la base. Markdown seul : aucune re-execution due (C.2). Cellules code inchangees (multiset byte-identique 18/18). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Chore(twin,#8057): rebaseline des 5 paires Probas deplacees par le redressement P13 Le gate « Twin parity audit (#8057) » nomme 5 paires en DRIFT introduites par la branche : Probas-2, Probas-4, Probas-11, Probas-14, Probas-18. Le mouvement est unilateral et markdown-only (le jumeau C# n'est pas touche) : chaque paire est rebaselinee cote Python via --update --by myia-po-2024:CoursIA. Cinq paires et pas une seule : la reserve R5 de NanoClaw relevait que PyMC-14 avait ete modifie sans entree d'audit. PyMC-14 (paire Probas-14) est desormais couvert. Infer-1b n'est pas une paire enregistree dans twin_pairs.d. --update est passe APRES le dernier commit de carnet : tout strip outille ulterieur deplace le blob SHA et invaliderait l'attestation (#8957). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * chore(twin,#17066): consolider les audits Probas-2 apres rebase -- un seul audit final Le rebase sur origin/main a integre le raccord de navigation #19778 (cellule 0) dans Infer-2 cote C# : les shas enregistres par les trois audits de la branche (pre-rebase) ne decrivent plus aucun blob de l'arbre, et l'index 0022 entrait en collision avec l'audit po-2027 du meme jour. Les trois fichiers branch-only sont consolides en 0025, qui porte les shas POST-rebase mesures sur cet arbre (parite rejouee [OK] avec la copie du script de la branche, comme le fait la CI). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(twin,#8057): collision d'index 0006 apres rebase -- audit unique 0007 (Probas-14) Le rebase sur main a fait cohabiter deux audits d'index 0006 pour la paire `probas-14-sequences`, tous deux du 2026-10-08 : - `0006-2026-10-08-myia-po-2027-CoursIA.yaml` (arrive par main, #19785 : accent corrige cote C#) ; - `0006-2026-10-08-myia-po-2024-CoursIA.yaml` (mon propre rebaseline P13, `8f0e6b7c8bc`). `_latest_audit` triant par NOM (`sorted(glob)`), `po-2027` l'emportait sur `po-2024` et imposait ses shas : l'organe declarait la paire en DRIFT alors que les deux cotes etaient simplement ceux du merge. Deux consequences mesurees : `Twin parity audit (#8057)` -> "1 paire(s) mise(s) en DRIFT par cette PR", et `Scripts Tests (CPU)` -> `test_audit_index_unique_and_no_identical_duplicates_per_pair` + `test_le_registre_de_la_revision_testee_ne_porte_aucun_doublon_intra_revision`. L'etat reel est un MELANGE, qu'aucun des deux audits ne decrivait : - Python `630d21e000a0` = le mien (retitrage des 2 lectures en collision du redressement densite P13, `b56d3f592bc`) ; - C# `6646e3a1cd34` = celui de po-2027 (#19785, accent). Resolution : suppression de mon `0006` (artefact de ma propre branche, jamais sur main -- le diff de la PR n'en garde aucune trace) puis rebaseline a l'index libre `0007` par l'organe lui-meme, plus une entree en tete de `known_differences`. Le fichier de po-2027 reste intact. Verifie : `check_twin_parity.py --pair "Probas-14 Sequences"` -> OK (157 paires, OK=154 DRIFT=3, les 3 restants pre-existants a origin/main, cf #8264). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(probas,#17066): lever R1 et R4 de la review NanoClaw -- PyMC-11 (PR #19831) Deux reserves de la review structurelle du 2026-10-08T01:31Z, markdown-only (18 cellules code byte-identiques, jumeau C# non touche). R1 -- « doublon structurel cree » : CONFIRME. La table de references ajoutee par la tranche (`fuse-26`) n'avait pas d'en-tete et restait collee sous la cellule `## References`, donnant deux tableaux consecutifs dont un orphelin. En-tete `### References complementaires` ajoute. Sur le chevauchement annonce : mesure faite, cette table ne porte pas le Blei-Ng-Jordan 2003 deja cite au-dessus (recherche `Blei, Ng` dans son texte -> absent) ; elle porte Blei & Lafferty 2006/2007, Mimno 2011, Griffiths & Steyvers 2004, Roberts 2016, Grootendorst 2022. Rien a dedupliquer, l'en-tete seul manquait. R4 -- « double intro » : CONFIRME. La phrase de definition du topic modeling etait repetee a l'identique entre `## 1. Introduction au Topic Modeling` et la cellule suivante ; la seconde occurrence est retiree, le contraste clustering/melange passant en tete de cellule. Trace dans `known_differences` de la paire, rebaseline a la suite du present commit (l'organe lit HEAD, pas le worktree). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Chore(twin,#8057): rebaseline Probas-11 Topic-Models apres le fix R1/R4 (blob deplace, avis 0021) L'attestation suit le commit precedent : l'organe lit HEAD, et l'edition markdown de PyMC-11 a deplace le blob. Verification : scripts/notebook_tools/check_twin_parity.py -> OK (157 paires, OK=154 DRIFT=3, les 3 restants pre-existants a origin/main, cf #8264). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Grain: MED/notebook-python -- lane myia-po-2026:CoursIA -- prev: MED/notebook-python #14121 (cycle 129)
Summary
Enrichissement markdown-only de
PyMC-04-Bayesian-Networks.ipynb(Probas/PyMC, PyMC 5.28.5, reseau Wet Grass avec MCMC et D-separation) : 785 -> 3004 c/code-cell (+282 %), plancher 1200 largement franchi, cible 1500 largement depassee (200 %).Rotation R6 (variete obligatoire) : c129 = MED/notebook-python sur PyMC-11 (Topic Models). Cycle c130 = MED/notebook-python sur PyMC-04 (Bayesian Networks) -- MEME GENRE (Python), MEME FAMILLE (Probas/PyMC), continuite pedagogique directe : les reseaux bayesiens (PyMC-04) sont le framework structurel qui sous-tend les modeles de sujets (PyMC-11). Meme protocole (umbrella #13410) : code byte-identique, anchors sur sorties kernel in-place, zero re-execution.
Changement
MyIA.AI.Notebooks/Probas/PyMC/PyMC-04-Bayesian-Networks.ipynbCellules etendues (15) : cells [0, 1, 3, 4, 6, 9, 11, 13, 15, 17, 19, 21, 23, 24, 26] - chacune ancree sur la sortie verbatim de la cellule code qui suit :
Nouvelles cellules (5) :
pm.Bernoulli(observed=1))Pourquoi ce notebook
Per mesure ground-truth direct disque :
PyMC-04-Bayesian-Networks.ipynb785 c/cell <- choisi : 12 code cells, kernel python3, sorties tres riches (PyMC 5.28.5, CPT Wet Grass 4 variables, marginales P(C)=0.494 P(S)=0.301 P(R)=0.493 P(W)=0.643, posterior avec W=1 observe, explaining away S 0.429 -> 0.194, D-separation correlations S-R -0.26/-0.74, observationnel 0.800 vs interventionnel 0.500).EPIC implicite : PyMC-04 etait le 2e notebook PyMC le plus bas en densite parmi ceux eligible (apres PyMC-11). Ce compagnon ouvre la porte aux notebooks suivants (PyMC-05 Causal Inference, PyMC-02 Gaussian Mixtures, PyMC-08 TrueSkill).
Pool cross-lane autorisation respectee (PyMC-11 c129 -> PyMC-04 c130, MEME famille + MEME genre, continuite pedagogique directe).
Validations
validate_pr_notebooks.py origin/main: 1/1 PASS (12 code cells, byte-identique, kernelpython3).scan_cell_ordering.py --check-interp-anchor: 1/1 clean (0 findings).pedagogy_density.py: 3004 c/code-cell (>= 1200 floor, cible 1500 franchie a 200 %).Anti-regression D + Stop & Repair
COURSE_CATALOG.generated.{json,md}non touche (RÈGLE HARD 1 catalog-pr-hygiene).Refs
scripts/notebook_tools/pedagogy_density.pyLiens
MyIA.AI.Notebooks/Probas/PyMC/PyMC-04-Bayesian-Networks.ipynb