Skip to content

Feat(notebooks,#13410): fournée 2 RE-SEED — lectures ancrées Serre100/28 (652->1276) et App-18b (664->1314) - #24899

Open
jsboige wants to merge 2 commits into
mainfrom
feature/13410-fournmee-2
Open

jsboige wants to merge 2 commits into
mainfrom
feature/13410-fournmee-2

Conversation

@jsboige

@jsboige jsboige commented Nov 5, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python — lane myia-po-2024:CoursIA — prev: MED/notebook-python #24896

Fournée RE-SEED #13410 — fournée 2 : Serre100/28 et Search/App-18b

Application du contrat RE-SEED (ai-01, 2026-11-05T20:31Z) : 2 carnets de 2 séries différentes, markdown-only, cellules code byte-identiques à main, densité la plus basse d'abord. Têtes du scan sautées sur conflit vérifié : IIT-08 (553, PR #24449 ouverte) et GameTheory-11e (604, PR #24261 ouverte, check_lane_claim BLOCKED) ; SL-8 écarté (relais #24653). Claim borné par [CLAIMED-AMEND] c.6672383836 sur les deux chemins.

Densités (avant → après)

Carnet Série prose code avant après Plancher 1200
28-inversion-mobius-phi-euler.ipynb SymbolicAI/Lean/Serre100 3915 → 7660 6 (inchangé) 652 1276 franchi
App-18b-HyperparameterTuning-Python.ipynb Search/Part3-Cas-pratiques 8639 → 17091 13 (inchangé) 664 1314 franchi

Serre100/28 : 3 réécritures + 3 atterrissages d'exercices

Les 3 sorties principales portaient déjà une ### Lecture du résultat : le contrat STOP impose de les réécrire, jamais de doubler.

  1. exec 1 (tableau μ, n = 1..30) : le signe alterne avec la parité du nombre de facteurs premiers (μ(30) = -1, trois facteurs) ; 19 valeurs non nulles sur 30 comptées sur la sortie, avant-goût de la densité 6/π² ≈ 0.608.
  2. exec 2 (identité 60/60) : mécanisme de cancellation par paires (d, pd) avec μ(pd) = -μ(d) ; lecture en convolution de Dirichlet μ * 1 = ε.
  3. exec 3 (table φ) : coïncidence sur toutes les lignes (φ(1000) = 400, φ(84) = 24) ; la formule d'Euler comme conséquence de ∑ φ(d) = n — le schéma de déconvolution universel.

Trois cellules ### Lecture — le repère de l'exercice N ancrées sur les sorties stub (= None) : repères de vérification sans dévoiler la réponse (proportion asymptotique 6/π², compte 19/30 dérivable du tableau affiché, bornes σ(n) ≥ n+1, μ des diviseurs de 30 lus dans la sortie de la section 1).

App-18b : 8 lectures nouvelles + 2 réécritures

  1. exec 1 (dataset) : chevauchement ~45% ⇒ bande de jeu en centièmes, choix pédagogique d'un objectif rugueux à faible signal.
  2. exec 2 (sanity) : 0.700 = barre de référence ; plafond réaliste 0.758 ; rôle mécanique du sanity-check.
  3. exec 3 (Grid 0.733/125 evals) : k=15 contre-intuitif (lissage), granularité a priori, la faille structurelle « entre les nœuds ».
  4. exec 4 (Random 0.733/50 evals) : Bergstra-Bengio en acte ; p=2.7, wb=0.30 déjà plus proche du coin gagnant que la grille.
  5. exec 6 (Bayes 0.725) : réécriture de la lecture existante (forme ### Lecture), enrichie du symptôme wb=1.00 (borne).
  6. exec 8 (GA 0.758/50) : le coin anisotrope (wb=0.08, p=3.09) que la population concentre ; élitisme = le 0.758 n'est plus perdu.
  7. exec 10 (PSO 0.758/31) : corroboration — deux mécanismes sans rapport atterrissent sur le même pic, donc le pic est réel.
  8. exec 11 (Optuna 0.733, gap +1.1%, SOTA-OK) : TPE frôle le coin (p=3.36) sans l'attraper ; parité algorithmique, écart de moteur.
  9. exec 12 (tableau récap + courbe) : deux plateaux (0.733/0.758), cinq budgets ; la lecture pré-annoncée dans l'intro de section migre après le tableau (scission de la cellule d'intro, conformément à l'ordre cell-interpretation-ordering).
  10. exec 13 (carte 2D) : l'anisotropie lisible — bandes chaudes le long de k, crêtes sur distancePower ; pourquoi cette géométrie condamne Grid.

Preuves

  • Code byte-identique : probe python comparant (cell_type, execution_count, source, outputs) entre HEAD et origin/main — byte-identical: True sur les deux carnets (6 et 13 cellules code). Diff : 151 insertions, 19 suppressions, 2 fichiers (les suppressions = anciens corps des 5 cellules réécrites).
  • C.2 : exception markdown-only — aucune cellule code modifiée, aucune sortie touchée, aucune re-exécution due. H.3 passé (hooks pre-commit : tous verts, commit 27754bcb950).
  • Organes : pedagogy_density.py avant/après cités ci-dessus ; check_split_reading_cells.py --fail-on-findings → clean ×2 ; check_prose_quantitative_claims.py --diff origin/main...HEAD --strict → [OK] aucun compteur quantitatif en prose.
  • Fix de cohérence au passage : l'intro de la section 9 d'App-18b disait « CV 5-fold » alors que l'objectif du carnet est CV 3-fold (cellules 1 et 4). La mention erronée vivait dans le paragraphe « Lecture attendue » supprimé lors de la scission — l'incohérence disparaît avec lui. Aucun autre fichier touché.
  • Style : les deux carnets utilisent les accents en markdown (convention respectée) ; valeurs citées verbatim des sorties (décimots en points).

See #13410

🤖 Generated with Claude Code

…/28 (652->1276) et App-18b (664->1314)

Markdown-only : 6 cellules code byte-identiques sur chaque carnet, aucune
sortie touchée. Serre100/28 : 3 lectures existantes réécrites (STOP mandate)
+ 3 atterrissages d'exercices ancrés sur les stubs. App-18b : 8 lectures
nouvelles + réécriture de la lecture Bayes (forme header) + scission de
l'intro section 9 (la lecture pré-annoncée migre après le tableau).

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

github-actions Bot commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 2
  • Code cells validated: 19
  • 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

github-actions Bot commented Nov 5, 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 Nov 5, 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 Nov 5, 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 Nov 5, 2026

Copy link
Copy Markdown
Contributor

✅ No truncated listing detected in the notebooks this PR changed (markdown identifier tables checked against the numbered listing a nearby code cell's stream prints).

Scope = notebooks CHANGED in this PR, not the whole corpus. The listing-coherence-report run artifact holds the structured JSON.
Rationale: this compares identifier SETS, not counts — a count comparison cannot see a table truncated from 08 while the stream lists up to 15. The contiguous-prefix discriminant is what keeps an arbitrary subset (« the 3 longest ») out of the report. See python scripts/check_listing_coherence.py --help.

@github-actions

github-actions Bot commented Nov 5, 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 added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Nov 5, 2026
@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Verdict reutilise pour la cle 64fc422429f2bf98 — run 42131908397 sur refs/pull/24899/merge (8a0c77555291) ; aucune execution ce tour.

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 7.2s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.6s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.7s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 60.1s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.4s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 16.9s

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

@github-actions

github-actions Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359) — résolue

La collision de chemins signalée sur #24899 n'existe plus au passage du 2026-11-06T20:51Z : aucune autre PR ouverte ne partage désormais de chemin de fichier avec elle. Note laissée en place de l'avertissement (retraction non destructive).

…nés dans « 4. Exercices » (markdown-only)

Le cliquet check_split_reading_cells (mode --base-ref) flaguait 2 cellules
EXERCISE_READING (repères 1 et 3 ; le repère 2, non flaggé, portait la même
classe et reçoit le même geste pour cohérence) : les « Lecture — le repère
de l'exercice N » ajoutées juste après les stubs montrent l'interprétation
d'une sortie que l'étudiant n'a pas encore produite.

Geste : corps des 3 repères fusionnés dans la cellule « ## 4. Exercices »
(sous un lead par exercice), phrases « La sortie affiche ... = None : stub
à compléter » retirées (elles citaient la sortie du stub), cellules
orphelines supprimées. 20 -> 17 cellules. Contenu intégralement conservé,
markdown-only -- pas de re-exécution due (C.2).

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

jsboige commented Nov 6, 2026

Copy link
Copy Markdown
Owner Author

[ACTION] Fix EXERCISE_READING — repères post-stub fusionnés dans « 4. Exercices » (markdown-only)

La PR fournée 2 portait le même défaut que les fournées 3/4 : les « Lecture — le repère de l'exercice N » ajoutées juste après les stubs montrent l'interprétation d'une sortie que l'étudiant n'a pas encore produite (2 findings du cliquet check_split_reading_cells en CI ; reproduits localement en mode --base-ref avant le fix).

Geste (commit 36f21e24458) : corps des 3 repères fusionnés dans la cellule « ## 4. Exercices » (lead par exercice), phrases « La sortie affiche … = None : stub à compléter » retirées (elles citaient la sortie du stub), cellules orphelines supprimées. Le repère 2, non flaggé par la CI (exemption de slot), portait la même classe et reçoit le même geste pour cohérence. 20 → 17 cellules. Contenu intégralement conservé, markdown-only — pas de re-exécution due (C.2).

Validation locale post-fix (base c3c960f4931, mode ratchet identique à la CI) :

  • check_split_reading_cells : 2 findings avant → 0 après (les 2 carnets de la PR OK)
  • check_output_collapse : 0 flagged · check_source_collapse : 0 flagged · check_output_failure_text : 0 regressed

Lane myia-po-2024:CoursIA

This branch has not been deployed

No deployments
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.

1 participant