Skip to content

fix(notebook,#20087): ICT-23 cellule 24 -- maillage du tore via torus_points - #20117

Merged
myia-ai-01 merged 1 commit into
mainfrom
fix/20087-ict23-torus-points
Oct 10, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
fix/20087-ict23-torus-points

Conversation

@jsboige

@jsboige jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2024:CoursIA-2 — prev: MED/docs #19958

Ce qui est deduplique

ICT-23-PersonaCatastrophe-Python.ipynb, cellule 24, derivait a la main le plongement du tore (3 equations Xs / Ys / Zs) alors que ict.catastrophe.torus_points(theta, phi, R, r) les porte deja.

Remplace par l'organe natif :

Xs, Ys, Zs = torus_points(V, U, R=2.0, r=1.0)

U est l'angle du tube (phi), V celui du grand cercle (theta) -- d'ou l'ordre (V, U). torus_points est ajoute aux imports de la cellule (plus de dependance a l'etat du noyau laisse par une cellule anterieure).

Pourquoi pas torus_surface (remede suggere par la review Hermes de #19590) : torus_surface trace une surface ombree (plot_surface, alpha=0.18, color="0.55"), alors que la cellule trace un fil de fer (plot_wireframe, lw=0.4, alpha=0.25). Les substituer change la figure. La deduplication identique passe par l'entree bas niveau.

Figure inchangee -- deux mesures

  1. Bit-a-bit : maillage ancien vs nouveau, np.array_equal sur X / Y / Z, max abs diff = 0.0.
  2. Pixel-a-pixel : sur la figure re-executee, l'image decodee est identique (seul le chunk IDAT compresse differe de quelques octets -- meme image). Idem pour les 6 autres figures du carnet, non touchees par cette PR.

Criteres de sortie (#20087)

  • La cellule 24 ne derive plus aucune equation du tore a la main : elle consomme torus_points.
  • Le rendu de la figure est inchange (meme grille 40x40, meme plot_wireframe, memes couleurs) -- verifie bit-a-bit et pixel-a-pixel.
  • Carnet re-execute de bout en bout, outputs committes (C.2).

Validation

  • notebook_tools.py execute : SUCCESS (37.4 s), 11 cellules code, execution_count 1..11, 0 erreur.
  • check_exec_sequence.py : CLEAN (1..N).
  • check_c2_compliance.py --path : 1/1 compliant.
  • validate_pr_notebooks.py origin/main : 1/1 passed.
  • Chemins papermill absolus scrubes au basename (scrub_papermill_paths.py).

Le diff porte le churn attendu d'une re-execution (horodatages metadata.papermill par cellule + re-encodage zlib des PNG, pixel-identiques) en plus des 4 lignes de source.

See #20087
Part of #19333

🤖 Generated with Claude Code

…_points

La cellule 24 derivait a la main le plongement du tore sur 3 equations
(Xs/Ys/Zs) alors que ict.catastrophe.torus_points les porte deja. Remplace
par un appel a l'organe natif : torus_points(V, U, R=2.0, r=1.0).

Ordre des arguments : U est l'angle du tube (phi), V celui du grand cercle
(theta) -- d'ou torus_points(V, U). torus_points est ajoute aux imports de la
cellule (plus de dependance a l'etat du noyau laisse par une cellule
anterieure).

Figure inchangee, verifie par deux mesures :
  - egalite bit-a-bit du maillage ancien/nouveau (max abs diff = 0.0) ;
  - pixel-identique sur la figure re-executee (seul l'octet IDAT compresse
    differe, meme image).

Carnet re-execute de bout en bout (C.2) : 11 cellules code, execution_count
1..11, 0 erreur. Chemins papermill absolus scrubes au basename.

Signale par la review Hermes de #19590 (point secondaire) ; le remede
propose (torus_surface) n'etait pas equivalent (surface ombree au lieu du
fil de fer) -- la deduplication passe par l'entree bas niveau torus_points.

See #20087
Part of #19333

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

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #20117 (fix(notebook,#20087): ICT-23 cellule 24 -- maillage du tore via torus_points) 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.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 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 9, 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 5.2s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.3s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.4s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.3s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 19.2s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.4s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 10.3s

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

@github-actions

github-actions Bot commented Oct 9, 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 9, 2026

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

github-actions Bot commented Oct 9, 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 commented Oct 9, 2026

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 9, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2023:CoursIA
pr: 20117
head: 31f4b0e
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 1dac9ae7a380fe18c9792e6ea58c814aa0cf0e0c734742f6e435364b8009e8f6
diff-files: 1
diff-additions: 152
diff-deletions: 153
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 20117
organ-rc: 0
[/ADJOINT PREFLIGHT]

Etat a la tete exacte 31f4b0e2 :

  • Reviews : aucune review humaine ou bot posee (reviews-reviewed: 0) — la lecture B.0 finale reste integrale au coordinateur ; ce dossier atteste les surfaces, pas une approbation.
  • B.0 : check_unaddressed_nits.py 20117 rc=0 — « aucun nit non leve ». Les 8 commentaires sont des attestations d'organes (path-collision, genre-signals, golden-set, outputs-required).
  • Checks : 98 jambes / 98 noms, toutes vertes latest-wins (check_run_state.py --pr 20117, source commits/<head>/check-runs), jambes fraiches du 2026-10-09 17:31-17:36Z. mergeable: UNKNOWN = recompute GitHub transitoire.
  • Execution : Notebook outputs-required H.4 PASS (chaque cellule code porte ses outputs, 19:16Z) ; Notebook PR Validation PASS (1 carnet, 20:51Z).
  • Scope : 1 fichier, +152/−153 — fix cible de la cellule 24 (maillage du tore via torus_points) sur ICT-23, conforme au titre et a l'issue ICT-23 cellule 24 : dedupliquer le maillage du tore via torus_points (le remede torus_surface n'est pas equivalent) #20087. Aucun autre fichier touche.

@myia-ai-01
myia-ai-01 merged commit f21b7a8 into main Oct 10, 2026
98 of 100 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants