Repository navigation
feat(notebook-tools,#14327): md solution-protocol detection, class (h) - #14332
Merged
Merged
Conversation
Pattern 5 in audit_solution_leaks.py: FLAG md cells carrying a complete Lean proof protocol (fenced block with `:= by` goal + closing tactic) in the window of an exercise anchor (md ### Exercice N, Python # Exercice, Lean -- Exercice N / -- TODO etudiant). Final "Annexe - solutions des exercices" section exempt (sanctioned pattern, PR #14161). 7 regression tests, golden set = pre-fix SL-1b structure at 016fbd4. Repo-wide smoke: 2 FLAG candidates on main (Lean-11-TorchLean, Lean-16b-Conway) for manual review; inline indices and interpretation fences measured non-triggers. Co-Authored-By: Claude-Code <noreply@anthropic.com>
Contributor
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
clusterManager-Myia
left a comment
Collaborator
There was a problem hiding this comment.
[NanoClaw] — review structurelle (+280/−9, 3 fichiers ; lecture ciblée fonction + bloc regex + tests)
Artefacts de vérification (head fe76f211) :
detect_markdown_solution_candidateslue en entier (L322-381) + bloc Pattern 5 (L65-100) : la fenêtre 3-cellules en amont des ancres, le carve-out annexe, et le déclencheur double-signal (:= byET ligne de tactique fermante dans le même bloc fenced) sont conformes à l'issue #14327. Intégration vérifiée aux 3 points (extend L464, compteur L482, ligne de rapport L537) + README.- Choix FLAG-pas-verdict étayé par des mesures : indices backtiqués nus (10 FP mesurés sur main) et « sortie attendue » seul (11 cellules légitimes du golden set) exclus par construction — la tactique doit vivre dans un bloc fenced ET être fermée par un
:= by. C'est la bonne granularité pour un jugement exemple-vs-fuite. - 7 tests dédiés couvrant chaque bord : golden set (3/3), exemption annexe postfix, indice inline non-déclencheur, fence sans preuve complète, borne de fenêtre 3 cellules, ancre Python, intégration via audit_notebook — contenu Lean réaliste (PacLearning.trueError). 0 secret, 0 leak de chemin.
Notes (mineures) :
LEAN_FENCE_BLOCK=```(?:lean|mathlib)\b— le\bne matche pas une fencelean4. La convention du golden set et des tests estlean (3/3, zéro mathlib/lean4), mais le mot « lean4 » apparaît 249× dans le repo : si une fence ```lean4 existe quelque part avec une preuve complète en fenêtre d'exercice, elle est invisible. Élargir àlean[4]?coûte un mot.- La borne de fenêtre (3 cellules) est une heuristique testée mais arbitraire — une solution à ≥4 cellules en amont reste invisible. Acceptable pour une couche FLAG (revue manuelle), à garder en tête si un FN de cette forme apparaît.
Fond solide — l'aveuglement structurel de la classe (h) est comblé avec des non-déclencheurs mesurés plutôt qu'un verdict automatique. Prêt pour la décision Emerjesse.
6 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Grain: MED/tooling -- lane myia-po-2023:CoursIA -- prev: MED/tooling #14320
Summary
Fix de #14327 (classe (h), constatée sur PR #14161) :
audit_solution_leaks.pylisait le markdown uniquement pour repérer les en-têtes d'exercice (EXERCICE_MD_MARKERS) — toutes ses détections sont conditionnées aux cellulescode. Une solution vivant dans une cellule markdown en fenêtre d'exercice (protocole de preuve complet en bloc ```lean, sortie attendue, coût) lui était structurellement invisible : son silence n'était pas un verdict.Golden set vérifié firsthand au SHA pré-fix
016fbd4410(SL-1b-LogicalLearning-Lean-Native) : les cellules md 24/26/28 portaient### Exercice N+ bloc ```lean avecexact PacLearning.trueError_self Dcoin (fun _ => true)+ Sortie attendue + Coût, juste avant les cellules code `-- Exercice N : a completer` / `-- TODO etudiant` (25/27/29). Post-fix `98bc201d3` : exercices nettoyés, protocoles regroupés dans md 31 `## Annexe — solutions des exercices`.Geste
Pattern 5 —
detect_markdown_solution_candidates(md_solution_protocol, sévérité FLAG) :### Exercice N(regex existante), cellules code Python# Exercice(première ligne), et cellules code Lean-- Exercice N/-- TODO etudiant(3 premières lignes) — l'ancre du golden set, qu'aucune regex existante ne matchait (#= Python,//= C#).:= by+ ligne de tactique de clôture `exact`/`simp`/`rw`/`decide`/... en début de ligne indentée).Annexe … solution/corrigé/exerciceouSolutions des exercices— le pattern sanctionné (établi enrich(SL-1b-LogicalLearning-Lean-Native): density 721 -> 3235 c/cell (+349 %) #14161).Décisions mesurées sur données (prototype sur les 1206 notebooks de main, 2026-09-02) :
Indice : \exact theorem_x h``) tirent 10×, toutes indices pédagogiques légitimes dans des en-têtes d'exercice → volontairement exclues.solution_leak_delta.pyne compte que HIGH → comportement du gate inchangé (14/14 tests delta verts).Tests
test_audit_solution_leaks.py::= bynon signalée ;audit_notebook.test_audit_solution_leaks.py+ 14/14test_solution_leak_delta.py.audit_notebooksur le notebook extrait à016fbd4410→ 3/3 flagged (cellules 24/26/28 exactement) ; à98bc201d3→ 0.Lean-11-TorchLean.ipynbcell 31 (contient des-- Solution (groupe …)étudiants adjacents à### Exercice 1, vrais positif probable) etLean-16b-Conway-Game-of-Life-Lean.ipynbcell 27 (interprétation scaffold, FP probable). Précision ≈ 1/2 sur les hits du jour → FLAG confirmé.Test plan
EXERCISE_MD_MARKERS)Residuel
scripts/notebook_tools: l'entrée disait « 3 patterns » (déjà périmée depuis le pattern 4 C#) — mise à jour vers 5 patterns dans cette PR.Closes #14327
See #14161