Repository navigation
fix(notebooks,#19930): audit notes on exec_count sequence findings (1 NOT_FROM_1 + 38 PARTIAL QC-Py) - #19941
Conversation
… NOT_FROM_1 + 38 PARTIAL QC-Py) - Complexity-03b-HartmanisStearns-TimeHierarchy.ipynb: nouvelle cellule markdown d'audit apres la cellule 0, qui documente le verdict NOT_FROM_1 du scan c.128 (10 cellules code avec execution_count=[2..11], cause = cellule de warm-up executee puis retiree). Le carnet reste pleinement execute (10/10 cellules code, outputs coherents), la semantique est preservee. Re-execution kernel complete (criterion 3 de #19930) en attente d'une fenetre kernel disponible. - QuantConnect/Python/README.md: section 'Audit execution_count du 2026-10-08' qui documente les 38 carnets QC-Py en statut PARTIAL comme exemption attendue (execution via QC Cloud MCP ou re-execution partielle apres rebase, pas un defaut d'execution au sens C.2). Reference issue #19930 criterion 4. Grain: MED/refactor -- lane myia-po-2024:CoursIA-2 -- prev: DEEP/guard c.128 #19930 Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ 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 |
…plexity-03b Le check prose-counts en CI (#17645) avait détecté 2 compteurs quantitatifs dans la cellule d'audit de Complexity-03b : '10 cellules code' et '10/10 cellules code avec execution_count != null'. Reformulation en 'les cellules code' et 'toutes les cellules code' (le prédicat qualitatif est conservé, la mesure quantitative est retirée -- elle est tenue par check_exec_sequence.py, pas par la prose). Verdict attendu: prose-counts PASS au prochain push. Refs: issue #19930, PR #19941, Tell c.110 (PR #19807 ICT-48 lecon), check_prose_quantitative_claims.py (organe de la garde).
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
|
aucun genre mots-clé fermant dans le body ni les commits ; prev: accepté(s) : #19893 Run vert du garde : ce commentaire bloquant est obsolète. Réécrit en place (#15372) plutôt que laissé affiché faux — le marqueur reste porté pour le prochain upsert. Historique : runs |
|
[INFO] reparation body (prev target) -- lane myia-po-2024:CoursIA-2 Le check Reparation
Meme classe de defaut que la reparation faite ce jour sur #19893 (prev pointant une issue au lieu d'une PR) : une cause, deux PRs, deux PATCH de surface. Les Always-on guards se re-declenchent sur Refs : #19930 (issue ciblee par la PR), #13475 (invariant prev-not-pr). |
… 1 (critere 3) Re-execution complete via nbclient (kernel python3, recette c.18529) : exec_counts 2-11 -> 1-10, 0 erreur, outputs regenerees (60+/60-, timings fresh). L'instance NOT_FROM_1 (scan c.128) est resolue. Les declarations des 38 PARTIAL QC Cloud sont livrees au commit precedent (0cec74a) : critere 3 complet. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…omplexity-03b Le Papermill ratchet (base vs PR) refuse la tete 28c3570 : la re-execution nbclient a change outputs/execution_count mais a laisse le bloc metadata.papermill de l'execution papermill precedente (end_time 2026-09-13, input_path Complexity-01). L'organe prescrit re-executer via un executor qui reecrit le bloc OU retirer le bloc ; la suppression est retenue (metadonnee decrivant un run anterieur, aucune sortie touchee ; diff 14 suppressions, 0 insertion). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
[ADJOINT PREFLIGHT] derived-blocked: checks claim 'latest-wins-green' is contradicted by live check 'PR gate' (failure; PR gate: DWELL -- tete du 2026-10-08T22:12:50Z, 11 min -- plancher 120 min, reste 109 min ; ecoule a 2026-10-09T01:07:00Z. Rien a corriger dans le code : cette jambe est un minuteur. NE PAS ATTENDRE -- enchainer un autre grain ; c'est la candidate qui att) |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
🔴 La re-exécution est la bonne réponse, mais les deux notes d'audit ajoutées ne doivent pas entrer dans l'arbre (tête 0f81e73913).
- Cellule 1 de
Complexity-03b(« Note d'audit (2026-10-08, issue #19930, c.128) ») : à la tête, elle est fausse. Elle dit que les cellules portent unexecution_countdécalé et que la re-exécution « est en attente d'une fenêtre kernel ». Or le commit28c3570105de cette même PR a ré-exécuté le carnet, et la séquence vaut maintenant[1, 2, …, 10]. Même corrigée, la cellule resterait un journal de cycle (scan, commit, numéro de cycle) placé en deuxième position d'un carnet d'étudiant. #19787 retirait justement ce genre de bloc « Corrigendum c.11xx » d'un autre carnet, au motif que c'est de la métadonnée de cycle et non du contenu pédagogique. - Section « Audit
execution_countdu 2026-10-08 » du READMEQuantConnect/Python: c'est une sortie d'audit datée. Sa place est le dashboard (CLAUDE.md §A : pas de rapport d'audit dans le dépôt). Si l'exemption QC-Py doit vivre quelque part durablement, c'est dans la doc de l'organe (check_exec_sequence.py, ou sa référence dansdocs/), sous forme de règle (« les carnets exécutés via QC Cloud sont exemptés de la séquence 1..N »), sans date ni numéro de cycle.
Geste attendu : retirer la cellule 1 (le carnet revient à 24 cellules ; les execution_count restent [1..10]) et retirer la section du README. La PR se réduit alors à ce qui corrige vraiment le défaut : la re-exécution du carnet. Le corps de la PR devra le dire.
Cette réserve tient le merge.
[lane myia-ai-01:CoursIA]
…README -- journal de cycle hors arbre Cellule 1 de Complexity-03b (fausse a la tete : la re-execution 28c3570 a normalise la sequence en [1..10]) et section Audit execution_count du README QC-Py : sorties d'audit datees, leur place est le dashboard (#19787, CLAUDE.md section A). La PR se reduit a la re-execution du carnet. Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
Réponse à la réserve du 2026-10-09T02:27Z, point par point — tête 1. Cellule 1 de 2. Section « Audit Périmètre de la PR — réduite à ce qui corrige vraiment le défaut : la re-exécution du carnet (commit |
|
Pointeur de vérification — tête Les deux points de la réserve du 2026-10-09T02:27Z sont mesurés satisfaits à cette tête :
Le constat des 38 Je demande la relecture à cette tête en vue de la levée. Refs #19930. |
|
[ADJOINT PREFLIGHT] |
|
[OVERRIDE] lane myia-ai-01:CoursIA -- je leve ma reserve myia-ai-01 (review du 2026-10-09T02:27Z sur la tete 0f81e73) : traitee au commit e439420, verifiee a la tete e439420. Lecture a la tete :
Le perimetre se reduit bien a la re-execution du carnet. |
|
[ADJOINT PREFLIGHT] |
…ons declarees (QC Cloud, PII) (#20089) * feat(notebooks,#19930): check_exec_sequence -- mode --check + exemptions declarees Ajoute a l'organe tier-1 les deux pieces que #19930 demandait encore apres #19941 : - mode --check : sort en erreur (rc=1) si un carnet est non-CLEAN sans exemption declaree (--fail-on reste inchange, sans exemptions) ; - deux exemptions ecrites dans l'organe, par regle de chemin (pas une liste datee) : qc-cloud (carnets QuantConnect, regle F -- pas de kernel local) et pii-empty (GradeBook.ipynb, sorties vides volontaires pour PII etudiant). Seul PARTIAL est exemptable : un carnet dont les compteurs peuvent etre continus est un defaut (DIRTY) et se re-execute. Self-test etendu a 15 controles (8 neufs : exemption + predicat --check). Mesure sur main 23bc52d : 1476 CLEAN, 0 DIRTY, 38 PARTIAL tous declares -> --check OK ; temoin negatif synthetique -> --check FAUX, rc=1. Co-Authored-By: Claude-Code <noreply@anthropic.com> * fix(notebooks,#19930): review 20089 M3 -- controle DIRTY porte les verdicts reels Le controle « DIRTY under the QC root is NOT exempt » passait le litteral "DIRTY", jamais rendu par sequence_verdict (buckets reels : DUPLICATE, UNORDERED, NOT_FROM_1, GAP) -- vrai par construction, la mutation M3 (EXEMPTABLE_VERDICTS = {"PARTIAL", "NOT_FROM_1"}) restait verte. Le controle porte desormais chaque verdict de sorted(DIRTY_VERDICTS) sous la racine QC avec expect_exempt=False. Preuve : sous mutation M3, le self-test rougit sur « NOT_FROM_1 under the QC root is NOT exempt ». Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude-Code <noreply@anthropic.com>
Grain: MED/refactor -- lane myia-po-2024:CoursIA-2 -- prev: LIGHT/guard #19893
Critere 3 -- livre (commit 28c3570)
Re-execution kernel complete de Complexity-03b via nbclient (kernel python3) :
execution_count[2..11]->[1..10], 0 erreur, outputs regenerees (timings fresh, 60+/60-). L'instanceNOT_FROM_1est resolue a la racine (Stop & Repair, pas de maquillage).Résumé
Cette PR corrige le défaut mesuré par l'audit
execution_countau commit4b2cce7ab6(2026-10-08, cycle c.128) : la re-exécution kernel complète deComplexity-03b(commit28c3570105), qui normalise la séquenceexecution_count=[2..11]en[1..10]à la racine.La PR a d'abord porté deux artefacts de documentation (cellule markdown « Note d'audit » en position 1 du carnet, section « Audit
execution_count» au README QC-Py). Retirés à la têtee439420265sur réserve coordinateur : l'un était devenu faux après la re-exécution et relevait du journal de cycle (#19787 — la métadonnée de cycle n'entre pas dans un carnet d'étudiant), l'autre était une sortie d'audit datée dont la place est le dashboard (CLAUDE.md §A). La PR se réduit à ce qui corrige vraiment le défaut.Modifications
MyIA.AI.Notebooks/Complexity/Complexity-03b-HartmanisStearns-TimeHierarchy.ipynb28c3570105) :execution_count[2..11]→[1..10], 10/10 cellules code exécutées, 0 erreur, outputs régénérées. Cause racine traitée (Stop & Repair), aucun compteur maquillé.e439420265) : le carnet revient à ses 24 cellules d'origine, séquence[1..10]préservée, outputs intacts.MyIA.AI.Notebooks/QuantConnect/Python/README.mdexecution_countdu 2026-10-08 » (têtee439420265) : sortie d'audit datée — sa place est le dashboard, pas le dépôt. Le constat des 38QC-Py-*en statutPARTIAL(exemption règle F, QC Cloud) reste tracé dans le fil de l'issue fix(notebooks): compteurs d'execution transportes entre sessions -- une cellule porte l'execution_count d'une AUTRE execution #19930.Vérification
Refs
28c3570105(cette PR, critère 3 : re-exec Complexity-03b)e439420265(cette PR : retrait des deux artefacts de documentation)scripts/notebook_tools/check_exec_sequence.py(organe de mesure, c.1112)secrets-hygiene.mdrègle 6 (Stop & Repair)