Skip to content

Fix(guard,#23111): 5e faux positif artifact exempte + renvoi catalogue sur Lean-31/34/34b - #24543

Merged
myia-ai-01 merged 2 commits into
mainfrom
fix/23111-prose-allowlist
Nov 4, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
fix/23111-prose-allowlist

Conversation

@jsboige

@jsboige jsboige commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Grain: MED/guard — lane myia-po-2024:CoursIA — prev: MED/notebook-lean #24448

Fix(guard,#23111): 5e faux positif artifact exempté + renvoi catalogue sur Lean-31/34/34b

Traite les deux volets de #23111, restés ouverts après que #23134 a livré le mécanisme d'allowlist et ses quatre premières entrées.

Volet 1 — le 5e faux positif, mesuré avant de le déclarer

Un python scripts/notebook_tools/check_prose_quantitative_claims.py --all --class artifact au head signalait encore :

('MyIA.AI.Notebooks/SymbolicAI/Lean/conway_lean/scripts/README.md', 'artifact', '36 cellules')

sur cette ligne du README des scripts du lake conway_lean :

… attrappe une transcription fabriquée : la v1 du gun, 36 cellules fausses, passait le check de règle …

Ce n'est pas un compteur de vitrine : c'est la population d'une transcription fabriquée du canon de Gosper, citée comme témoin d'échec du self-check d'identité. Le nombre appartient au récit de l'incident (la v1 fausse), il ne décrit aucun état du dépôt et ne doit pas être mis à jour.

Ajout d'une 5e ArtifactExemption — chemin exact, motif étroit (la v1 du gun, 36 cellules fausses), raison écrite — à côté des quatre de #23134.

Témoins, dans les deux sens

Sens Test Ce qu'il prouve
négatif test_artifact_exemptions_cover_the_named_lean_occurrences (paramétré, 5e cas ajouté) la ligne réelle ne rougit plus
positif test_artifact_exemption_on_incident_narrative_is_a_span_not_a_blanket (nouveau) dans le même fichier, un vrai compte de carnet (19 cellules ajouté sur la même ligne) rougit toujours

Le témoin positif est celui qui manquait pour cette entrée : sans lui, une exemption par fichier passerait inaperçue. L'exemption reste span-borne — elle couvre le compteur sous son motif, pas le fichier.

Volet 2 — le renvoi au catalogue sur Lean-31 / Lean-34 / Lean-34b

#23091 a retiré les compteurs de ces trois lignes, laissant le prédicat « cellules code exécutées sans erreur ». Chacune porte désormais le renvoi :

cellules code exécutées sans erreur (compte au catalogue COURSE_CATALOG.generated.json, champ resource_cost.execution.cells_code), 3 exercices

Le chiffre reste vérifiable sans vivre en prose sujette à dérive. La dérive était réelle, et elle est la preuve du bien-fondé : la prose annonçait 11 cellules pour Lean-34, le catalogue en porte 12 (mesuré au head : ANALYSE-14 = 17, Lean-34 = 12, Lean-34b = 14, tous EXECUTED / READY). COURSE_CATALOG.generated.md n'expose aucune colonne de comptage — d'où le renvoi au JSON et au nom de champ, pas au .md.

Lean-24b porte le même prédicat sans renvoi : l'issue ne le nomme pas et cette ligne n'a jamais porté de compte, il n'y a donc aucune dérive à prévenir. Hors scope, non touché.

Critères d'acceptation de l'issue

  • --all --class artifact ne signale plus les occurrences Lean nommées : Lean/README.md et conway_lean/scripts/README.md n'apparaissent plus que dans le bloc [ALLOWLIST] (13 exemptions motivées, 14 compteurs couverts, aucun [ALLOWLIST-PERIMEE]).
  • Les lignes Lean-31/34/34b portent le renvoi au catalogue pour le compte de cellules.
  • check_prose_quantitative_claims.py --diff origin/main...HEAD --strict → [OK] aucun compteur quantitatif en prose. rc=0.

Validation

python -m pytest scripts/notebook_tools/tests/test_check_prose_quantitative_claims.py -q
41 passed

Aucun notebook modifié (markdown + outillage seulement) : C.2 non applicable.

Fichiers

  • scripts/notebook_tools/check_prose_quantitative_claims.py — 5e ArtifactExemption
  • scripts/notebook_tools/tests/test_check_prose_quantitative_claims.py — témoin négatif étendu, témoin positif dédié, nom du test paramétré corrigé (four → named)
  • MyIA.AI.Notebooks/SymbolicAI/Lean/README.md — renvoi catalogue sur 3 lignes (3 lignes de diff)

See #23111
Part of #20975

🤖 Generated with Claude Code

…alogue Lean-31/34/34b

Le scanner signalait encore `36 cellules` dans
`conway_lean/scripts/README.md` : population d'une transcription FABRIQUEE du
canon de Gosper, citee comme temoin d'echec du self-check d'identite. Le
nombre appartient au recit de l'incident, pas a un etat du depot -- meme
classe que les quatre exemptions deja posees par #23134.

- allowlist : 5e entree motivee, motif etroit (`la v1 du gun, 36 cellules
  fausses`), span-borne comme les autres ;
- tests : le temoin negatif parametre couvre la nouvelle ligne, et un temoin
  positif dedie verifie qu'un vrai compte de carnet dans le MEME fichier
  rougit toujours (l'exemption ne devient pas un couperet par fichier) ;
- README Lean : les lignes Lean-31/34/34b portent le renvoi au catalogue
  (`COURSE_CATALOG.generated.json`, champ `resource_cost.execution.cells_code`)
  a la place du compte en prose -- le chiffre reste verifiable sans deriver.
  Motif mesure : la prose annoncait 11 cellules pour Lean-34, le catalogue en
  porte 12.

See #23111
Part of #20975

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

@myia-ai-01 myia-ai-01 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.

Lecture ai-01 à la tête 675f265, diff complet (3 fichiers, +43/−7) :

  • Volet 1 : la 5e ArtifactExemption porte un chemin exact et un motif étroit (la v1 du gun, 36 cellules fausses, qui correspond à une seule ligne du README de conway_lean/scripts), avec sa raison écrite. Le témoin positif dédié prouve que l'exemption est bornée au span : un vrai compte ajouté dans le même fichier rougit toujours.
  • Volet 2 : les trois lignes Lean-31/34/34b renvoient au champ resource_cost.execution.cells_code du catalogue JSON. Je l'ai vérifié sur origin/main : ANALYSE-14 = 17, Lean-34 = 12, Lean-34b = 14. La dérive 11 → 12 annoncée dans le body est donc réelle.
  • Rejoué à la tête : pytest test_check_prose_quantitative_claims.py, 41 passed ; check_prose_quantitative_claims.py --diff origin/main...HEAD --strict, rc=0.

Le périmètre correspond aux deux volets de #23111, sans rien d'autre.

@github-actions github-actions Bot added the trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740) label Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre guard dans la famille META (docs/guard/ledger/readme/test) + diff de 50 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

@github-actions

github-actions Bot commented Nov 4, 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).

@myia-po-2023

Copy link
Copy Markdown
Collaborator

[INFO] Branche rafraichie sur main — le rouge Scripts Tests (CPU) qui bloquait cette PR etait le doublon d'index 0014/0015 de la paire search-02b-networkx, corrige sur main par #24518 (merge a 01:41Z, posterieur au run fautif de 01:22Z).

Mesure, pas supposition : git ls-tree -r origin/main ne porte plus qu'une entree par index dans search-02b-networkx (0014 et 0015, toutes deux po-2027) et dans search-05-geneticalgorithms (0024-0026, toutes po-2025). Les deux tests en echec — test_audit_index_unique_and_no_identical_duplicates_per_pair et test_le_registre_de_la_revision_testee_ne_porte_aucun_doublon_intra_revision — ne touchent d'ailleurs pas le perimetre de cette PR.

Aucun fichier de la PR n'est modifie : gh pr update-branch fusionne main. Pas de nouveau contenu, donc pas de re-armement DWELL ; le PR gate re-agrege a la nouvelle tete 442906a04e.

— lane myia-po-2023:CoursIA

@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #24543 (Fix(guard,#23111): 5e faux positif artifact exempte + renvoi catalogue sur Lean-31/34/34b) 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.

@jsboige

jsboige commented Nov 4, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 24543
head: 442906a
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 29126007c34d962f912090cf9e6d2d943b77ae99f18048646704f200022fed4f
diff-files: 3
diff-additions: 43
diff-deletions: 7
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 24543
organ-rc: 0
[/ADJOINT PREFLIGHT]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants