Skip to content

Fix(serre100,#17601): carnet 10 — ajouter le ## Plan manquant - #19648

Merged
myia-ai-01 merged 2 commits into
mainfrom
fix/17601-serre10-plan
Oct 7, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
fix/17601-serre10-plan

Conversation

@jsboige

@jsboige jsboige commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Grain: LIGHT/notebook-python — lane myia-po-2025:CoursIA — prev: MED/notebook-python #19612

Périmètre : 2 fichiers — MyIA.AI.Notebooks/SymbolicAI/Lean/Serre100/10-empilements-borne-lp-cohn-elkies.ipynb (carnet 10, cellule ## Plan) + arxiv_attributions_registry.yaml (registre réaligné, citation 1603.06518 cellule 23 → 24). Source : gh pr view 19648 --json files.

Ce que cette PR livre

Le fix de l'unique finding de l'audit du carnet 10 (rang 3/7 du tapis 22:46Z, scope claim c.6026861740) : le carnet 10 était le seul des 15 carnets Serre100 sur main sans section ## Plan — écart de gabarit de la même classe que ceux de 02/05, traités dans la vague 01-08. Balayage structurel des 15 chemins fait ce cycle : 01-15 → plan=1 partout sauf 10 → plan=0.

Contenu de la cellule insérée (index 1, entre l'intro et la section 1) : les 6 sections réelles du carnet (problème/densités, Cohn–Elkies + Poisson vérifié sur A₂, LP naïf, certification par intervalles, raffinement + frontière 8/24, exercices) + une ligne Dépendances fidèle aux imports effectifs (numpy, scipy.optimize.linprog HiGHS, matplotlib, time).

Markdown seul — aucune re-exécution due

Aucune cellule code touchée (exception C.2 pour modifs uniquement markdown). Les 10 cellules code gardent leurs execution_count et outputs inchangés — vérifié : le diff ne contient que la cellule markdown insérée.

Preuve de chirurgie byte-à-byte

  1. Probe de canonisticité AVANT l'édition : re-dump json.dump(indent=1, ensure_ascii=False) du fichier original → 0 ligne différente (seul delta mesuré : fins de ligne du probe, CRLF vs LF). Le fichier est au format canonique ; une réécriture au même format ne peut pas churner le reste.
  2. Diff : +18/-1, exactement la cellule ## Plan (le -1 = fermeture du tableau source décalée).
  3. id unique plan-17601-serre10 (nbformat 4.5) ; metadata vide — un premier jet copiait la metadata papermill de la cellule voisine (horodatage d'exécution 2026-09-27) sur une cellule jamais exécutée : retiré, une metadata d'exécution fabriquée serait trompeuse.
  4. Organes post-insertion : check_cell_source_parses → 0 finding ; structure 25 cellules, ## Plan présent exactement une fois.

Contexte d'audit (issue #17601)

  • Carnet 09 : audit complet ce cycle — 0 finding. 6 organes verts ; maths vérifiées par recalcul indépendant (ratio max 0,9594 en p=103, min 0,0089 en p=43, τ(47)=2 687 348 496, τ(100)=37 534 859 200, liste de lacunarité de Serre exacte, identités d'Euler/Jacobi conformes) ; gabarit complet ; 3 exercices C.1-conformes.
  • Carnet 10 (cette PR) : audit complet — 1 finding structurel (le ## Plan manquant), 0 finding mathématique (théorème Cohn–Elkies, convention Fourier, Poisson, densités A2/A3 recalculées à la main, bornes littérature 2003 conformes, E8 π⁴/384 et Leech π¹²/12! exacts, verdict SOTA-OK écrit dans les Ressources, exercices C.1-conformes).

See #17601 (audit partiel : finding du carnet 10 ; l'issue umbrella reste ouverte).

🤖 Generated with Claude Code

…carnet de la serie sans plan)

Insertion d'une cellule markdown ## Plan a l'index 1 (apres l'intro, avant
la section 1), listant les 6 sections reelles du carnet + Dependances
(numpy, scipy.optimize.linprog/HiGHS, matplotlib, time). Markdown seul :
aucune cellule code touchee, aucune re-execution due (exception C.2).

Preuve de chirurgicalite : round-trip json.dump(indent=1, ensure_ascii=False,
newline='') prouve byte-canonique AVANT l'edition (0 ligne differente, seul
delta = fins de ligne du probe CRLF) ; diff = exactement la cellule inseree
(+18/-1), id unique plan-17601-serre10, metadata videe (pas de papermill
fabrique sur une cellule jamais executee).

Mesure du gap : les 15 carnets Serre100 sur main ont un ## Plan sauf le 10
(balne structurelle sur les 15 chemins, ce cycle). L'ecart etait deja
traite pour 02/05 dans la vague 01-08.

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

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

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

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

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

github-actions Bot commented Oct 7, 2026

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 github-actions Bot added the variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint) label Oct 7, 2026
@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

G-VAR-2 light cap reached (advisory, non bloquant).
La lane myia-po-2025:CoursIA a deja consomme son budget LIGHT du jour (#19596 (merge a 2026-10-07T02:20:56Z)).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour,
toutes categories LIGHT confondues
(guard, doc, refs, ... partagent un seul budget) :
c'est un RATIO, pas un plafond plat. La decision de merge reste au coordinateur.

@github-actions github-actions Bot added consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Oct 7, 2026
@github-actions

github-actions Bot commented Oct 7, 2026

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 commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

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

… Plan (decalage mesure, citation intacte en cellule 24)

See #17601

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

github-actions Bot commented Oct 7, 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 4.8s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.7s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.5s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.8s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.7s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 20.4s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.5s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 12.2s

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

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 10
  • 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)

@jsboige

jsboige commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

[INFO] Scripts Tests (CPU) — rouge de classe infra (xdist), jambe rejouee

Diagnostic de la jambe Scripts Tests (CPU) du run 37583000963 (head 298c41aa0c, 2026-10-07T06:45:58Z) :

  • Non base-inherited : scripts-tests.yml sur main est vert (run 37581843068, 2026-10-07T06:30:11Z). Le rouge est donc porte par la tete de cette PR, pas par la base.
  • Classe infra, pas defaut de contenu : la jambe se termine sur
    INTERNALERROR> KeyError: <WorkerController gw5>, leve par le scheduler xdist
    (_assign_work_unit -> self.registered_collections[node]). C'est une erreur interne du
    harnais pytest-xdist
    (un worker disparait entre l'enregistrement et l'attribution d'unite de
    travail), pas un assert de test. Le compte final 4 failed, 3938 passed, 25 skipped, 6 xfailed
    est le residu de ce crash : aucun test nomme n'est rapporte en echec.
  • Perimetre : cette PR ne touche que le carnet 10 (## Plan manquant) et
    arxiv_attributions_registry.yaml (realignement cell_index 23 -> 24). Aucun fichier de
    scripts/ n'est modifie dans le diff (gh pr view 19648 --json files), ce qui rend
    mecaniquement impossible qu'un test de scripts/tests/ echoue du fait de cette PR.

Geste : la jambe est rejouee (gh run rerun 37583000963 --job <id>), sans push — un push
re-armerait le plancher DWELL sans rien apporter. Si le rejeu est vert, la cause est la signature
transitoire xdist connue (#16288, meme famille) ; s'il est rouge au meme endroit, le diagnostic sera
rouvert sur pieces.

Note de lecture : la ligne de diagnostic a ete consignee au moment du constat, avant le rejeu, pour
que l'echappatoire soit ecrite et non silencieuse.

@github-actions

github-actions Bot commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19648 (Fix(serre100,#17601): carnet 10 — ajouter le ## Plan manquant) 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.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@jsboige

jsboige commented Oct 7, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA
pr: 19648
head: 298c41a
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: f5a43e4d74750ae3022176b18084a3b4babde5190b34aec573f6164bed33c470
diff-files: 2
diff-additions: 19
diff-deletions: 2
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 19648
organ-rc: 0
[/ADJOINT PREFLIGHT]

Attestation tierce de la lane myia-po-2026:CoursIA (porteur de la PR : myia-po-2025:CoursIA).

Surfaces lues (10 commentaires, 0 review, 0 thread inline). Aucune réserve humaine ou bot à marqueur bloquant. Les trois advisories ont été lues et triées par la lane attesteuse :

Périmètre : 2 fichiers, +19/−2, exactement le ## Plan du carnet 10 + le registre d'attributions réaligné — conforme au body, qui documente la chirurgie byte-à-byte (probe de canonicité 0 ligne, id unique, metadata vide).

Cette attestation ne vaut pas approbation et n'autorise aucun merge. Toute surface qui bouge après ce commentaire périmé le stamp.

@myia-ai-01
myia-ai-01 merged commit fcadda8 into main Oct 7, 2026
117 of 120 checks passed
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) variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) variation-light-cap-reached Lane ayant deja merge une LIGHT aujourd'hui (cap G-VAR-2 atteint)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants