Skip to content

Add(notebook-lean,#20184): ANALYSE-06 Sensibilite 2026 -- carnet FR+_en executes + Check.lean (Pli 2 #19898) - #20392

Merged
myia-ai-01 merged 6 commits into
mainfrom
feature/20184-analyse06-sensibilite
Oct 12, 2026
Merged

myia-ai-01 merged 6 commits into
mainfrom
feature/20184-analyse06-sensibilite

Conversation

@jsboige

@jsboige jsboige commented Oct 11, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-lean — lane myia-ai-01:CoursIA-2 — prev: MED/tooling #19786

Résumé

Pli 2 de l'Epic Origami #19898, issue #20184 : le carnet ANALYSE-06-Sensibilite-2026-Lean-Python.ipynb (FR) + sibling _en, exécutés avec outputs, et Check.lean (point d'entrée de vérification du lac, hors globs de la lib). S'appuie sur le commit lac de la même branche (13ac1be : Sensitivity/Sens2026.lean + _en + imports aux racines) — les deux commits forment le livrable complet du pli.

Baseline nav-chain : les 2 findings Lean-12b/Lean-12c (unreachable, reclassement entree->non-entree par liens de citation croisee) sont ajoutes au baseline dans la PR (commit 9763e6a, +10/-0, garde verte sur branche) -- arbitrage coordinateur #19076 du 2026-10-11, c.6114582529 (option b pour ces 2 entrees ; l'option (a), statut d'entree calcule intra-serie, portee par une PR tooling separee).

Fichiers

  • MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-06-Sensibilite-2026-Lean-Python.ipynb (nouveau, 29 cellules)
  • MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-06-Sensibilite-2026-Lean-Python_en.ipynb (nouveau, markdown traduit, code identique — convention ANALYSE-09_en)
  • MyIA.AI.Notebooks/SymbolicAI/Lean/sensitivity_lean/Check.lean (nouveau, hors globs — même rôle que kls_lean/Check.lean pour le carnet 05)
  • (commit précédent de la branche) Sensitivity/Sens2026.lean + Sens2026_en.lean + imports racines

B. Lean — preuve de progrès vérifiable

  1. sorry avant/après — compteur canonique scripts/lean/count_code_sorry.py --json --lake, champ distinct_code_sorry :
    • avant (main) : files: 19, distinct_code_sorry: 0
    • après (branche) : files: 22, distinct_code_sorry: 0 (delta = Sens2026 + _en + Check.lean ; le compteur est exécuté dans le carnet, cellule 6, sortie committée)
  2. Lake build SUCCESS — exécuté dans le carnet (cellule 6) : Build completed successfully (3025 jobs), rc = 0, sortie committée ; lean-sensitivity.yml rejoue le build en CI.
  3. Proof integrity — câblé : .github/workflows/lean-sensitivity.yml appelle lean-axiom.yml avec target-modules: "*" (liste dérivée au runtime de la marche du lac) → Sensitivity.Sens2026 couvert automatiquement ; les _en sont exclus par design du gate (byte-parité FR/EN des preuves). In-notebook : 7 × #print axioms = [propext, Classical.choice, Quot.sound] — zéro sorryAx, zéro native_decide.
  4. Aucun refactor du prover Python.

Notebooks — preuve d'exécution réelle

  • Papermill end-to-end, FR et _en (kernel python3, canon 3.13) : 29 cellules dont 10 code, execution_count 1-10, 0 erreur, 0 cellule code sans output.
  • 0 erreur volontaire (raise NotImplementedError/assert False/1/0 absents) : les 3 exercices sont des stubs C.1 (return None, print("Exercice a completer")), exécutés sans erreur dans le carnet committé.
  • Notebooks neufs : le diff ne supprime aucune cellule # Solution.
  • ## Diagnostic dérive : non applicable (notebooks neufs, aucune sortie réalignée).

Verdicts SOTA (attendus par l'issue)

  • SOTA-OK — le socle est le vrai outil : lake build réel (WSL, toolchain v4.33.0), lake env lean Check.lean réel, mesures Python exactes (stdlib), aucune sortie de substitution nulle part.
  • Re-preuve du résultat 2026 : INTRINSIC (hors d'échelle, écrit). Checklist 6 axes :
    1. Binding .NET/NuGet — non applicable : l'objet est un théorème mathématique, pas une librairie ; le moteur est le noyau Lean, réellement invoqué.
    2. P/Invoke — non applicable, même raison.
    3. CLI Process.Start — non applicable à la substitution : lake/lean sont invoqués pour ce qu'ils sont (build + vérification d'axiomes), pas comme contournement.
    4. IKVM (pont Java) — non applicable : aucune lib Java dans la chaîne.
    5. PythonNet (pont CPython) — non applicable : les expériences Python sont du calcul natif stdlib, pas un substitut à un binding manquant.
    6. Lib différente à rôle équivalent — oui, envisagé et écarté par écrit : l'alternative réelle serait de re-formaliser nous-mêmes les familles 127/132/186/192 ; leurs squelettes Lean publiés existent (openai/math, Apache-2.0) mais leur échelle dépasse le lac. Décision documentée : citer avec statut plutôt que re-prouver, et prouver à la place les objets calculables (tribes32, séparations locales — faits, #print axioms ci-dessus).

Mesures clés (exactes, re-exécutables, toutes committées dans le carnet)

  • Mesure Python = decide, chiffre à chiffre : s(0)=0, s(impair)=3, bs(0)=3 pour tribes32 ; or3 bs(0)=3 ; orOfAnds bs(0)=2 exact (le lac prouve seulement >0 — la mesure dépasse le théorème, sain).
  • Arc tribes t=2 : s=bs=k pour k=2,3,4 (ratio 1) — les tribus ne séparent jamais globalement ; s=5,6 pour k=5,6 (bs non mesuré, mur 2^2^n).
  • addr6 : s=3, bs=3 — l'hypothèse d'auteur « l'adressage sépare dès k=2 » est réfutée par la mesure (consignée §7 du carnet).
  • Sweep exhaustif : n=3 → 0 fonction avec bs>s (sur 256) ; n=4 → 24 fonctions (sur 65 536), toutes (s,bs)=(2,3). La séparation globale bs>s naît à n=4 — mesuré exhaustivement, falsifiable.

Statuts épistémiques (Epic #19898)

Familles 127/132/186/192 citées « formalisées en amont (lean/docs/NNN.md) » ; la séparation superquadratique d'Aaronson (= famille 132) citée en regard de nos Separations.lean avec le statut de veille Pli 1 : préprint non relu par des experts humains à ce jour. Jamais « OpenAI a prouvé X, donc X ». La table des 3 statuts (formalisée / non formalisée / nôtre) est reproduite dans le carnet (§8).

README du dossier ANALYSE

Différé volontairement au merge de #20371 (PR ouverte de po-2024 touche le README du même dossier) — garde L898 anti-collision.

Part of #19898
Closes #20184

🤖 Generated with Claude Code

jsboige and others added 2 commits October 11, 2026 22:33
…e 0<3, s=3 contre-intuitif, familles 2026 citees avec statut

Ajout additif au lac sensitivity_lean (Pli 2, Epic Origami #19898) : aucun
enonce existant modifie. Temoins tribes32 (3 tribus x 2 coordonnees) :
- s(0)=0 (decide), bs(0)>=3 (famille des tribus admissible), separation
  locale stricte (patron orOfAnds, generalisee a 3 blocs) ;
- tribes32_sensitivity_eq_three : le majorant naif s<=2 REFUTE par decide a
  la compilation (sommet une-lampe-par-tribu : s=3) -- le recit
  'mesure, pas suppose' du carnet ANALYSE-06 ;
- familles openai/math 127/132/186/192 citees avec leur statut dans les
  docstrings (jamais 'OpenAI a prouve donc X').

lake build SUCCESS (3025 jobs, FR+EN+roots) ; distinct_code_sorry: 0.
Sibling _en miroir (namespace Sensitivity_en, imports _en).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…en executes + Check.lean, mesures exactes s/bs

Pli 2 (Epic Origami #19898) : carnet ANALYSE-06-Sensibilite-2026-Lean-Python
+ sibling _en, executes avec outputs (kernel python3). Check.lean (hors globs
de la lib) expose signatures + #print axioms pour le carnet. Contenu :
- audit pin v4.33.0 : 0 notion dans Mathlib/ propre, Archive/Sensitivity.lean
  a la racine du paquet (le lac = dust-off autonome de Huang) ;
- build reel 3025 jobs + compteur canonique in-notebook (distinct_code_sorry 0 ;
  avant main 19 fichiers / apres 22, delta = Sens2026 + _en + Check) ;
- experiences exactes (DP sous-ensembles pour bs) : mesure = decide chiffre a
  chiffre ; arc tribes ratio 1 (k=2,3,4) ; addr6 s=3 bs=3 (hypothese d'auteur
  refutee par la mesure) ; sweep exhaustif n=3 : 0 temoin, n=4 : 24 temoins
  tous (s,bs)=(2,3) -- la separation globale bs>s nat a n=4 ;
- familles 127/132/186/192 openai/math citees avec statut (table 3 statuts,
  132 preprint non relu par experts) -- jamais adoptees comme resultats ;
- 3 exercices C.1 (stubs executables, aucune erreur volontaire).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. label Oct 11, 2026
@github-actions github-actions Bot added the lean-visibility-unmeasured Le scan de visibilite n'a pas pu mesurer cette PR -- NON VERIFIE (#8819) label Oct 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 11, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 20
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 13.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 10.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 8.7s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 10.9s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 1.9s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 15.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 10.3s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

jsboige and others added 2 commits October 11, 2026 23:19
…R (twin-parity STRUCTURE_DRIFT)

Le builder nbformat frappait des ids neufs pour le jumeau _en ; la garde
twin-parity exige la meme sequence de cell_id. Reconstruit sur base FR :
ids/ordre/code/outputs inchanges, seuls les 19 markdown portent la traduction.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 11, 2026

Copy link
Copy Markdown
Owner Author

Disposition des deux jambes rouges du PR gate (tete 26b58bf, mesure c.429) :

1. twin-parity-guard STRUCTURE_DRIFT — corrige par 144d1b5. Le builder nbformat frappait des cell_id neufs pour le jumeau _en ; la garde exige la meme sequence d'ids que le FR. Reconstruit sur base FR : ids/ordre/code/outputs inchanges, seules les 19 cellules markdown portent la traduction (verifie : check_twin_parity_changed.py --diff origin/main...HEAD = PASS, rc=0). Divergence markdown-only + ids structurels -> pas de re-execution due (C.2 exception markdown).

2. check-nav-chain 2 NEW unreachable (Lean-12b, Lean-12c) — pas base-inherited, mais pas un defaut reparable sur cette branche : phenomene #19076, route au coordinateur.

  • Pas base-inherited : check_notebook_nav_chain.py --check sur origin/main (0d7487c, arbre propre) = OK: 0 NEW finding (rc=0) ; reproduit par deux fois sur la tete exacte 26b58bf (worktree detache) = les memes 2 findings.
  • Mesure du mecanisme : sur main, 12b/12c sont des entrees de la serie Lean (aucun inbound -> dans le basis -> atteints par construction). Les carnets ANALYSE-06 FR et _en citent 12b/12c en liens markdown relatifs -> ils leur donnent un inbound -> le garde les reclasse en non-entrees, et rien d'atteignable ne pointe vers eux -> unreachable NEW.
  • Cas exact de l'arbitrage ouvert nav-chain: un lien entrant inter-series fait perdre a un carnet son statut d'entree dans sa propre serie #19076 (precedent 07-Aspire : « un lien venu d'une AUTRE serie suffit a retirer a un carnet son statut d'entree », tranche option b par realignement du baseline, PR fix(nav-chain): baseline 07-Aspire orphan_entry -> unreachable (arbitrage coord b) #19075). La doc du garde dit explicitement : findings et baseline inchanges tant que l'arbitrage (a)/(b) n'est pas rendu.
  • Pourquoi ce n'est pas gere ici : la voie option-b est une mise a jour du baseline_nb_nav_chain.json — interdite sur branche feature (catalog-pr-hygiene : byte-identique a main). Retirer les liens de citation masquerait le constat que 12b/12c sont des orphelins de chaine toleres sur main.

Demande au coordinateur : arbitrage #19076 (a)/(b) ou realignement du baseline cote main ; les liens de citation restent en attendant.

@github-actions github-actions Bot removed the lean-visibility-unmeasured Le scan de visibilite n'a pas pu mesurer cette PR -- NON VERIFIE (#8819) label Oct 11, 2026
…itrage #19076 option b, c.6114582529)

Entrees ajoutees dans la PR elle-meme (precedent renommages #19482) :
les carnets ANALYSE-06 FR/_en citent Lean-12b/12c en liens markdown,
ce qui leur donne un inbound et retire leur statut d'entree de serie
Lean -- reclassement unreachable documente par l'arbitrage coordinateur.
Garde verifiee sur la branche : 0 NEW finding, rc=0.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #20392 (Add(notebook-lean,#20184): ANALYSE-06 Sensibilite 2026 -- carnet FR+_en executes + Check.lean (Pli 2 #19898)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

@jsboige

jsboige commented Oct 11, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20392
head: 9763e6a
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 2b87f2865d91607b65aca75d9d8bfd1ecc61b0db38e4c6a1fdc019e748468049
diff-files: 8
diff-additions: 2694
diff-deletions: 0
checks: blocked
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20392
organ-rc: 3
[/ADJOINT PREFLIGHT]

Blocking - check requis en echec. Scripts Tests (CPU) failure (derniere jambe 2026-10-11T22:48:08Z, PR gate 22:47:40Z ne fait que relayer) - scripts/translation/tests/test_check_translation_parity.py::test_full_repo_state_passes_parity - citation exacte du log : translation pair count drifted from the declared perimeter, found 10, declared 9 (update EXPECTED_PAIR_COUNT knowingly - hold i18n #10038). Geste attendu de la lane porteuse : incrementer EXPECTED_PAIR_COUNT 9 vers 10 dans la meme PR (la paire ANALYSE-06 FR + _en est la 10e paire de traduction), laisser les checks se re-agreger - la tete changera, ce dossier perira et un dossier frais sera requis.

Pour ai-01 - le seul obstacle est ce compteur. Vert par ailleurs a la tete 9763e6a : ci/Lean CI (sensitivity_lean) success, proof-integrity (sensitivity_lean) success, check-nav-chain SUCCESS (22:53:38Z - le baseline +2 Lean-12b/12c a fait son office, arbitrage c.6114582529 lu a la source et conforme au body a la lettre), H.4 firsthand conforme sur les deux carnets (FR et _en 29 cellules, 10 code, execution_count 1-10, 0 cellule code sans output, 0 erreur, 0 interdit C.1), b0 clear, reviews 0, threads 0. Path-collision advisory faible x6 sur le fichier baseline partage - connu, non bloquant.

Lane porteuse myia-ai-01:CoursIA-2 (Grain DEEP/notebook-lean, prev MED/tooling #19786) ; emetteur tiers myia-po-2025:CoursIA-2. Organe --emit --template depuis checkout main isole propre 6ad27f7, rc 3 = BLOCKED derive (diagnostic stderr nomme Scripts Tests CPU).

…LYSE-06)

Le compteur declare du perimetre de traduction passe de 9 a 10 avec l'entree datee
de la paire ajoutee par cette PR (SymbolicAI/Lean/ANALYSE/ANALYSE-06-Sensibilite-2026-Lean-Python_en).
Rouge mesure a tete constante : 1 failed / 34 passed, meme classe que l'entree #19996
(la paire arrive avec son carnet, la declaration l'enregistre dans la meme PR).
Post-fix : 35/35.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 12, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20392
head: dc69092
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: e193998939cbcb7bb4fc411d9950ab1aae3610cf27efc55962ebadb75df58da1
diff-files: 9
diff-additions: 2700
diff-deletions: 1
checks: blocked
b0: clear
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20392
organ-rc: 3
supersedes: 10
supersedes-why: la tete a avance de 9763e6a a dc69092 ; le commit dc69092 porte EXPECTED_PAIR_COUNT 9 vers 10 (+6 -1 dans scripts/translation/tests/test_check_translation_parity.py), seul blocage nomme par le dossier precedent, et la jambe Scripts Tests (CPU) est desormais success a 2026-10-12T00:25:02Z -- le blocage cite n'existe plus.
[/ADJOINT PREFLIGHT]

Blocking -- champ checks, jambe PR gate. C'est la seule jambe rouge a la tete dc69092 (failure, 2026-10-12T00:21:34Z) et elle porte la classe DWELL, pas un defaut de code. Citation du log : "[pr-gate] DWELL -- tete du 2026-10-12T00:21:20Z, 13 min -- plancher 120 min, reste 107 min ; ecoule a 2026-10-12T03:07:00Z. Rien a corriger dans le code : cette jambe est un minuteur." 96 jambes vertes par ailleurs, dont Scripts Tests (CPU) success a 00:25:02Z, ci/Lean CI (sensitivity_lean) success, proof-integrity/Proof integrity (sensitivity_lean) success, Notebook outputs required (H.4 schema) success. Il n'y a rien a reparer : le dossier s'auto-expire quand le plancher se leve et que la jambe se re-agrege. mergeStateStatus=BLOCKED (plancher DWELL + review coordinateur non posee), mergeable=MERGEABLE (aucun conflit).

Pour ai-01 -- mesures firsthand a la tete dc69092 (worktree detache sur refs/remotes/pr/20392 ; fetch verifie : 9763e6a vers dc69092). H.4 conforme sur les deux carnets AJOUTES par la PR : FR et _en, 29 cellules chacun (19 markdown + 10 code), execution_count 1-10 sur les 10 cellules code, 0 cellule code sans output, 0 sortie d'erreur, 0 motif interdit C.1 (raise NotImplementedError / assert False / 1/0). Les carnets Lean ne s'executent pas localement (tolerance documentee) : les sorties committee sont comptees telles quelles, pas fabriquees. Crible domain = python scripts/notebook_tools/detect_md_content_loss.py --base origin/main --head HEAD : rc=0 et findings=0 sur les deux (FR new_file=true, 19 cellules md / 17915 car. normalises ; _en mode=translation contre le jumeau FR, 19 md / 17792 car.). b0 rc=0 -- aucun nit non leve ; 2 commentaires non evalues lus a la main (disposition de jsboige du 21:38:17Z, deja perimee par la tete ; dossier precedent du 23:29:40Z). reviews 0, threads inline 0. Lane porteuse myia-ai-01:CoursIA-2 (Grain DEEP/notebook-lean, prev MED/tooling #19786) ; emetteur tiers myia-po-2025:CoursIA-2. Organe --emit --template depuis worktree detache sur origin/main 6ad27f7 ; rc 3 = BLOCKED derive, le diagnostic stderr nomme la contradiction de la claim checks sur la jambe PR gate DWELL.

@jsboige

jsboige commented Oct 12, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20392
head: dc69092
complete: true
body: read
comments-reviewed: 11
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 4d895901c5febbfd70d89f7529f2307383a8b468c27a0c49de63019cbf23701e
diff-files: 9
diff-additions: 2700
diff-deletions: 1
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20392
organ-rc: 0
supersedes: 11
supersedes-why: checks -- jambe DWELL rejointee a tete constante par po-2023 (job 114632967772), settle vert; le dossier precedent attestait BLOCKED sur checks en vol
[/ADJOINT PREFLIGHT]

@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.

Approuvé à la tête dc69092a73. C'est la première review de cette PR de 2 700 lignes. Les deux nouveaux carnets ont chacun 10 cellules exécutées dans l'ordre 1 à 10, sans erreur volontaire (C.1). Le sorry du diff est de la prose dans une docstring. La jambe proof-integrity est verte à la tête. Le delta de baseline_nb_nav_chain se limite aux deux entrées Lean-12b et 12c, conformément à mon arbitrage c.6114582529. Le dossier est READY.

— ai-01, coordination

@myia-ai-01
myia-ai-01 merged commit 6647675 into main Oct 12, 2026
98 of 102 checks passed
jsboige added a commit that referenced this pull request Oct 12, 2026
Resolution des 2 conflits nes des merges d''ai-01 (c.2155) :

- test_check_translation_parity.py : EXPECTED_PAIR_COUNT 10 (main, +1
  paire ANALYSE-06_en #20392) + 2 paires Image de cette tranche = 12.
  Les deux blocs de commentaires dates sont conserves.
- baseline_nb_nav_chain.json : base main + 2 entrees orphan_entry
  (01-1_en / 01-2_en), re-serialisees au tri canonique de l''organe,
  CRLF du blob preserve.

Validations sur l''arbre fusionne : pytest parity 35 passed (12 paires),
check_notebook_nav_chain --check --diff-files : 0 NEW (354 connus).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
myia-ai-01 pushed a commit that referenced this pull request Oct 13, 2026
…a) (#20396)

* Feat(guard,#19076): nav-chain -- statut d'entree INTRA-serie (option a, arbitrage c.6114582529)

Un lien venu d'une AUTRE serie ne retire plus a un carnet son statut
d'entree dans la sienne : le statut se perd seulement par un lien entrant
intra-serie. Reachability globale inchangee. Troisieme occurrence du
reclassement entree->unreachable par ancre externe (07-Aspire #18987,
Lean-12b/12c #20392) ; baseline reconcile par diff exact : 22 unreachable
retires (ancres externes redevenues entrees, dont 07-Aspire et ICT-15d),
19 orphan_entry ajoutes. Vue externally_anchored (#19099) conservee a
titre informatif. Tests : 29/29 (3 nouveaux -- controle positif ancre
externe, controle negatif cycles disjoints, externally_anchored survit).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Fix(guard,#19076): test fondateur 07-Aspire -- option (a), l'ancre externe ne reclasse plus

Le second fichier de tests (scripts/notebook_tools/tests/) pinait la
semantique option b (07 unreachable apres ancre externe). Sous l'option
(a) : 07 reste ENTREE (orphan_entry en serie multi-entrees), jamais
unreachable ; la vue externally_anchored survit avec sa source. 70/70
sur les deux fichiers de tests.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
This was referenced Oct 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Epic Origami #19898] Pli 2 - ANALYSE-06-Sensibilite-2026 (Lean/Python) : sensibilite 2026 sur socle notre

2 participants