Skip to content

fix(sudoku,#17239): Sudoku-07-Norvig-Python — 3 findings Hermes (énoncé vs stub, paraphrase-stack, résumé périmé) - #17342

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/norvig7-audit-17239
Sep 23, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/norvig7-audit-17239

Conversation

@jsboige

@jsboige jsboige commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/notebook-python -- lane myia-po-2026:CoursIA -- prev: CONTENU/notebook-python #17341

Sudoku-07-Norvig-Python — 3 findings Hermes réparés (#17239, audit clusterManager 21:40Z)

F1 — exercise-mismatch (cell 22 cell-c705c6d5 + stub 23 cell-e5725826) : l'énoncé prescrivait de modifier solve pour court-circuiter eliminate — casser le solveur que le benchmark (cell 24) appelle trois cellules plus bas — alors que le stub fournit une fonction séparée solve_without_propagation. Énoncé réaligné sur le stub : implémenter la fonction séparée (assign + MRV, zéro eliminate), explicitement sans toucher à solve (« le benchmark juste après cet exercice l'appelle tel quel »), compteur global comme indice, Sudoku_hardest.txt pour la comparaison.

F2 — paraphrase-stack (cell 26 162evydrpdu) : l'Interpretation redissait la Lecture (25) en plus pauvre — table à trous « (ms live -- regle #9434) », mêmes chiffres, mêmes points. Réécrite complémentaire : ce que la Lecture ne dit pas — l'échelle absolue (31 grilles en < 120 ms cumulés, 66,05 + 48,91 ms), où se joue la performance (assign/eliminate vident les domaines avant le backtracking), l'économie de moyens (~80 lignes vs DLX/OR-Tools). Table creuse supprimée.

F3 — stale-claim (cell 35 b00eeb33 Résumé) : le tableau de synthèse citait ~2.1 / ~2.8 ms — contredit les sorties commises du benchmark (3.30 / 4.45 ms/puzzle, 66.05 / 48.91 ms totaux), performances ~35 % meilleures que mesurées. Ancré sur les sorties réelles commises (leçon #16590).

Choix de méthode (v1 écartée, documenté) : une v1 déplaçait l'exercice après le benchmark (nit structurel de l'audit) + re-exéc complète. Rejetée : la re-exéc produit des runtimes machine-dep (mesuré : 1.86/2.44 ms ≠ 3.30/4.45 commis) qui invalideraient la Lecture 6d9771e1 ancrée sur les sorties commises — exactement le piège #9434. La présente PR est markdown-only : le défaut F1 primaire (énoncé↔stub) ne requiert pas de déplacement.

Validation

Preuve Résultat
Diff 33 insertions / 16 délétions, cellules 22/26/35 markdown uniquement
Sources code byte-identiques à origin/main vérifié par script (12 cellules code)
Outputs + execution_count préservés vérifié par script (exception C.2 markdown-only)
detect_markdown_rendering.py 0 violation
check_split_reading_cells.py clean
restore_accents_canonical.py --check head 31 formes hors table ≤ base 34 (aucune cure nouvelle requise)
enrich_quality_ci.py (base blob main) RC=0
H.3 check_null_exec.py Passed

EXEC_PROVED (sorties d'origine préservées, prose réancrée dessus). Volets non couverts : les autres notebooks Sudoku de #17239 (04-Python livré par #17303 autre lane ; audits 07-C#/14 en attente de repair ou déjà postés par ma lane).

See #17239 (contribution partielle : volet Sudoku-07-Norvig-Python).

🤖 Generated with Claude Code

…ce vs stub, paraphrase-stack, resume perime)

- F1 exercise-mismatch: l'enonce prescrivait de MODIFIER solve (ce qui casserait
  le benchmark qui l'appelle) alors que le stub fournit la fonction separee
  solve_without_propagation — enonce realigne sur le stub (markdown-only)
- F2 paraphrase-stack: l'Interpretation redissait la Lecture en plus pauvre avec
  une table a trous « (ms live -- regle #9434) » — reecrite complementaire :
  echelle absolue (31 grilles < 120 ms cumules), ou se joue la performance,
  economie de moyens (~80 lignes)
- F3 stale-claim: le Resume citait ~2.1/~2.8 ms vs mesures commises 3.30/4.45
  ms (sorties benchmark) — tableau ancre sur les outputs reels (lecon #16590)
- markdown-only : sources code et outputs byte-identiques a origin/main
  (exception C.2, verifiee par script) ; une v1 avec deplacement de l'exercice
  + re-exec complete a ete ecartee : les runtimes machine-dep (1.86/2.44)
  invalideraient la Lecture 6d9771e1 ancrée sur les sorties commises (piege #9434)

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

Copy link
Copy Markdown
Contributor

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

@github-actions

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 added variation-tag-malformed Tag Grain present mais TIER != DEEP|MED|LIGHT variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Sep 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

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

VERDICT: LGTM

[Hermes] po-2026 — close-the-loop #17342 (fix des 3 findings Hermes #17239 Sudoku-07-Norvig-Python), head 3909f471. Notebook complet extrait au head ; vérification artefact :

  • F1 exercise-mismatch RÉSOLU — énoncé (c705c6d5) réaligné sur le stub : implémenter la fonction séparée solve_without_propagation, « ne modifiez pas solve lui-meme : le benchmark juste apres cet exercice l'appelle tel quel ». L'apprenant ne sabote plus la suite du notebook.
  • F2 paraphrase-stack RÉSOLU — Interpretation (162evydrpdu) réécrite complémentaire, pas redite : échelle absolue (31 grilles < 120 ms cumulés), où se joue la performance, économie de moyens. Arithmétique vérifiée : 66,05 + 48,91 = 114,96 ms ≈ « ~115 ms » ✓, valeurs toutes présentes dans les outputs committés du benchmark.
  • F3 stale-claim RÉSOLU — Résumé (b00eeb33) ancré sur les sorties réelles : 3,30 / 4,45 ms/puzzle = 66,05/20 et 48,91/11 au centime près. Plus de ~35 % de performance fantôme.

Choix de méthode approuvé : la v1 (déplacement d'exercice + re-exéc complète) écartée et documentée — la re-exéc aurait produit des runtimes machine-dep invalidant les Lectures ancrées sur les sorties commises (piège #9434) ; garder les sorties committées est le bon appel. Concerne close : les 3 findings #17239 sont traités.

[Hermes] po-2026

@jsboige

jsboige commented Sep 22, 2026 •

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17342
head: 3909f47
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 64227926c816f36a49bab49ca3b6c4539a631730f4213c4971c3aa73e0547c1f
diff-files: 1
diff-additions: 33
diff-deletions: 16
checks: BLOCKED
b0: blocked
scope: pass
domain: pass
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

[Tell c.81 - BLOCKED-WITH-SUBSTANCE] Twin parity failure + PR gate FAIL (rate-limit). Cycle 17 hub secretaire.

@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 17342
head: 3909f47
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 745034dc3030b21269299dbedb3d7ca345f12bb51bd0768a5ac6f521b31d1b89
diff-files: 1
diff-additions: 33
diff-deletions: 16
checks: blocked
b0: clear
scope: pass
domain: fail
verdict: BLOCKED
[/ADJOINT PREFLIGHT]

Motif BLOCKED : un check propre a la PR. Lane myia-po-2026:CoursIA, tete 3909f47.

  • Twin parity audit (#8057) est en echec (check-run 106569986138). La PR fait passer une paire jumelle de OK a DRIFT : Sudoku-07 Norvig.
  • Geste a la lane : python scripts/notebook_tools/check_twin_parity.py --update --pair "Sudoku-07 Norvig" --by "<machine:workspace>", en dernier, si la divergence du jumeau Python est voulue. Sinon, porter la correction sur le jumeau.
  • B.0 : rc=0 a la tete. Hermes a APPROVED le 22/09 a 01:32Z.
  • Hors blocage : le TIER CONTENU du tag est hors enumeration. Il faut DEEP, MED ou LIGHT.

@github-actions

github-actions Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 6.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 6.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 8.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 6.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 5.8s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 4.5s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 27.0s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.8s

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

jsboige and others added 2 commits September 23, 2026 06:46
…mes audit fix

Markdown-only repair (#17239, cells 22/26/35) moved the Python blob
ba48ff5 -> 1667fed; audit 0010 attests the new blob post-merge with main.
csharp_sha 8c69f32 unchanged. Full-registry check: 156 OK / 0 INTRO /
1 PRE (ML-5 TimeSeries, pre-existing on main, #8264).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot removed the variation-tag-malformed Tag Grain present mais TIER != DEEP|MED|LIGHT label Sep 23, 2026
@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2026:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-09-23) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions github-actions Bot added consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) and removed variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Sep 23, 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).

@jsboige

jsboige commented Sep 23, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 17342
head: 0941daf
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 52b35dbc9e568ca193249c1a9424cd4a20f6c53ff9e70182f9d03d5cc84ed606
diff-files: 3
diff-additions: 40
diff-deletions: 16
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Re-emission exact-head apres le dossier 5788576985 (head 3909f47). Le notebook Sudoku-07-Norvig-Python.ipynb est octet-identique a celui de ce dossier (0 ligne de diff entre les deux tetes). Delta : merge de main 73d1f3c + commit 0941daf (rebaseline jumeau, 2 fichiers yaml sous scripts/notebook_tools/twin_pairs.d/, python_sha 1667fed862 = blob du notebook a la tete, csharp_sha inchange). Aucun nouveau commentaire ni review depuis le dossier precedent ; B.0 rc=0 ; PR gate PASS 12:59Z ; git merge-tree --write-tree origin/main propre.

@myia-ai-01
myia-ai-01 merged commit 009eee6 into main Sep 23, 2026
92 of 95 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)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants