Skip to content

Add(SymbolicLearning,#2161): stubs d'exercices sous les trois exercices de SL-13b - #20824

Merged
myia-ai-01 merged 2 commits into
mainfrom
claude/2161-p5-sl-13b-tpr-sae
Oct 16, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
claude/2161-p5-sl-13b-tpr-sae

Conversation

@jsboige

@jsboige jsboige commented Oct 14, 2026 •

Copy link
Copy Markdown
Owner

See #2161
Hors flotte (exemption #17713).

Summary

  • Ajoute une cellule de code stub (C.1) sous chacun des trois exercices en prose de SL-13b : contraste sur la tache reverse, ablation dirigee par symbole, sur-completude 32/64/128 atomes. Chaque stub suit l'en-tete markdown de son exercice et ne contient ni solution ni indice ; il affiche Exercice a completer. count_exercises.py passe de 0 a 3.
  • Le carnet est ré-exécuté en place sous py313 : une exécution papermill complète (27/27, 0 erreur). Sept sorties de cellules changent : versions numpy/torch de la cellule 1, durée d'entraînement de la cellule 5 et cinq cellules de mesure (détail dans ## Diagnostic dérive).
  • La prose qui cite ces valeurs est réalignée sur la nouvelle sortie, à la précision imprimée (sept cellules markdown : 6, 10, 12, 14, 16, 18, 19). Une phrase d'interprétation qui ne tenait plus est réécrite (cellule 16 : « deux fois la dispersion » devient environ 3.2 fois).
  • La dérive vient des dépendances non épinglées (requirements.txt : numpy>=1.24, torch>=2.0). Verdict : CAUSE_DOCUMENTED_ONLY, la cause n'étant pas traitée (voir ## Diagnostic dérive). Issue fille : SymbolicLearning SL-13b : métriques dépendantes des versions de numpy et torch (requirements.txt non épinglé) #20863.

Changes

MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-13b-TPR-SAE.ipynb

  • Cellules de code ajoutées (sorties et execution_count 10, 11, 12 de l'exécution en place) :
    • cellule 21, après ## Exercice 1 : make_reverse_task(seq_len=SEQ_LEN, n_samples=200, seed=0), retourne None. Le nom reprend la fonction de SL-13-Discover-TPR, que la piste de l'énoncé demande de recopier.
    • cellule 23, après ## Exercice 2 : ablation_par_symbole(c, z_val, z_train, mode="brutale"), retourne None.
    • cellule 25, après ## Exercice 3 : balayage_sur_completude(n_features_list=(32, 64, 128), k=K_SPARSE, seed=0), retourne None.
    • Chaque stub contient # TODO etudiant et print("Exercice a completer") ; aucun raise NotImplementedError, assert False ni 1/0.
  • Sorties et métadonnées par cellule : réécrites par l'exécution en place (sept sorties changent, cf ## Diagnostic dérive). Le bloc metadata.papermill de niveau carnet est celui de cette exécution (start 2026-10-14T23:24:48Z, durée 319.78 s), et non plus celui du 2026-09-28.
  • Prose réalignée (markdown seul, aucune cellule déplacée) :
    • cellule 6 : le temps d'entraînement (« ~2 s CPU », machine-dépendant, C.5) est retiré ; la ligne « budget » du tableau ne cite plus de durée. La comparaison avec « 0.835 de SL-13 » devient « le score de SL-13 » (valeur absente des sorties de ce carnet, C.4).
    • cellule 10 : FVU train 0.0744 et val 0.1033 à la place de « ~0.075 », « ~0.10 » et « ~7,5 % » ; écart train/val 0.0289.
    • cellule 12 : 35/40 facteurs dédiés (2 occurrences), z_max max 19.5, min 3.9.
    • cellule 14 : atomes dédiés 0.553 ± 0.092, non dédiés 0.481 ± 0.048, 35/40.
    • cellule 16 : tableau (SAE recon 0.713 / 0.104 ; ablation pos0 0.523 / 0.294 ; aléatoire 0.573 / 0.244 ; parmi actives 0.617 ± 0.029) et points 2 et 3 (0.294, 0.523, 0.094, 3.2 fois, 0.573).
    • cellule 18 : SAE 0.713 ; FVU val 0.1033 ; écart train +0.0289 ; point 1 (0.817 à 0.713, +0.0289).
    • cellule 19 : tableau des conclusions (35/40 ; 0.553 ± 0.092 ; delta 0.294 vs 0.617 ± 0.029, excédent ~0.094 ; SAE 0.713, FVU +0.0289) ; « tout en CPU, quelques secondes par cellule » devient « tout en CPU, sans GPU » ; « reproductible » devient « reproductible à environnement fixé ».
  • Aucun autre fichier.

Diagnostic dérive

  • Cause (d), dépendances. La cellule 1 imprime les versions ; elles changent :

    Paquet Committé (run du 2026-09-28) Exécution en place (2026-10-14, venv py313)
    numpy 2.4.4 2.5.4
    matplotlib 3.10.8 3.11.2
    torch 2.11.0+cpu 2.14.1+cpu

    requirements.txt du dossier ne les épingle pas (numpy>=1.24, matplotlib>=3.7, torch>=2.0). Le venv partagé a donc dérivé depuis le run committé. La bibliothèque responsable (numpy ou torch) n'est pas isolée : les anciennes versions n'ont pas été réinstallées, le venv étant partagé.

  • Ce n'est pas du bruit de run à run. Trois exécutions complètes dans le même venv (une exécution de contrôle hors arbre, une première exécution en place, l'exécution en place committée) donnent les mêmes valeurs citées par la prose (cellules 9, 11, 13, 15, 17). La durée d'entraînement de la cellule 5 n'est pas reproductible (107.94 s à la première exécution en place, 188.13 s à l'exécution committée, machine partagée) : elle n'est plus citée en prose.

  • Valeurs changées (avant → après, cellule) :

    Cellule (index, id) Committé (2026-09-28) Exécution en place (2026-10-14)
    1 (24325bff) numpy 2.4.4, matplotlib 3.10.8, torch 2.11.0+cpu numpy 2.5.4, matplotlib 3.11.2, torch 2.14.1+cpu
    5 (27a675e8) train_time=2.59s train_time=188.13s
    9 (7d87b336) FVU train 0.0746 ; FVU val 0.1032 0.0744 ; 0.1033
    11 (84a74fe8) dédiés 34/40 ; z_max max 19.6, min 3.8 35/40 ; 19.5, 3.9 (médiane 7.7 et AUC 0.658 inchangées)
    13 (b205bc49) dédiés 0.552 ± 0.095 ; non dédiés 0.480 ± 0.047 0.553 ± 0.092 ; 0.481 ± 0.048 (contrôles inchangés)
    15 (d3b205ba) pos0 [2, 4, 9, 16, 27, 30, 41, 50], 49/64 ; SAE recon 0.709 (Δ 0.108) ; ablation pos0 0.532 (Δ 0.285) ; aléatoire 0.563 (Δ 0.254) ; parmi actives 0.617 ± 0.038 pos0 [2, 4, 9, 27, 30, 41, 42, 50], 50/64 ; 0.713 (Δ 0.104) ; 0.523 (Δ 0.294) ; 0.573 (Δ 0.244) ; 0.617 ± 0.029 (Δ 0.200 inchangé)
    17 (71465df5) SAE 0.709 ; FVU val 0.1032 ; train 0.0746 ; écart +0.0285 0.713 ; 0.1033 ; 0.0744 ; +0.0289

    Inchangées : tableau TPR de la cellule 7, dénombrement 46 / 18 de la cellule 13, permutation de blocs 0.346 / 0.471, TPR par échantillon 0.817, TPR partagée 0.135.

  • Verdict : CAUSE_DOCUMENTED_ONLY. La cause racine (dépendances non épinglées, venv qui a dérivé) est identifiée et n'est pas traitée. La prose est réalignée sur une exécution fraîche, ce qui rend le carnet cohérent avec sa sortie sans corriger la cause. CAUSE_FIXED n'est pas revendiqué : au sens de docs/reference/notebook-quantitative-prose.md, il exige que la cause racine soit corrigée (environnement réparé, graine ajoutée). L'issue fille SymbolicLearning SL-13b : métriques dépendantes des versions de numpy et torch (requirements.txt non épinglé) #20863 porte la cause : épingler les versions dans le requirements.txt du dossier (ou figer les valeurs attendues) reste une décision du mainteneur, et elle y est posée avec ses critères d'acceptation. Les versions utilisées figurent dans la sortie de la cellule 1.

Verdicts

Constats de la fiche (repère origin/main 1cef8a5, re-vérifiés sur le worktree) :

# Constat Verdict Preuve
1 Cellule 20 (b61e4dc4, ## Exercice 1) sans cellule de code qui suit CONFIRMED origin/main : index 21 = markdown 3abb7fc2
2 Cellule 21 (3abb7fc2, ## Exercice 2) sans code CONFIRMED origin/main : index 22 = markdown 1b68a5a7
3 Cellule 22 (1b68a5a7, ## Exercice 3) sans code CONFIRMED origin/main : index 23 = markdown 3e7182bb
4 Compteur : 0 exercice compté CONFIRMED count_exercises.py avant : Total exercises : 0, Sub-threshold : 1
5 Insertion après l'index 22, cellule 23 = Résumé CONFIRMED origin/main index 23 = ## Résumé (3e7182bb)
6 ict.sae_dictionary importable par sys.path, testé sous py313 CONFIRMED cellule 1 (ICT_DIR) ; exécution complète sans erreur (Validation)
7 « Durée papermill committée : 18.7 s » CONFIRMED comme valeur de l'ancien run, remplacée metadata.papermill.duration 18.712901 sur origin/main ; l'exécution en place a duré 319.78 s sous charge partagée
8 Libellé de l'exercice 2 « Ablation dirigée par symbole » Paraphrase, sans incidence titre réel : « Ablation dirigée par symbole et perturbation « douce » »
9 Placement après la Conclusion (réserve SL-13) CONFIRMED, HORS PERIMETRE exercices à la suite de ## Conclusion (cellule 19) ; le déplacement de cellules est exclu de cette tâche (règle 5 des règles communes)
10 Dérive : sept sorties existantes changent à la ré-exécution, prose citant ces valeurs CONFIRMED (mesure) ; prose réalignée ; cause non traitée ## Diagnostic dérive
11 Signalement nouveau check_markdown_claims_output : 0.094 (cellule 16) Calcul montré, accepté 0.617 − 0.523 = 0.094 (cellule 15 : parmi actives 0.617, pos0 0.523) ; 0.094 / 0.029 = 3.24, écrit « environ 3.2 fois »
12 Signalement nouveau : 0.835 (cellule 6, valeur de SL-13) Valeur absente des sorties du carnet : formulation corrigée suppression du nombre (C.4) ; ce signalement était apparu après la ré-exécution, le texte de la cellule 6 n'ayant pas changé sur ce point
13 Signalement ancien 7,5 % (cellule 10) et 0.085 (cellule 16) Résolus cellule 10 exprimée en FVU imprimés ; cellule 16 réécrite (constat 11)
14 Signalements pré-existants non touchés : 0.5 (cellule 12), 0.18 (cellule 6), 0.06 et 0.09 (cellule 14), 90 % (cellule 10, texte de l'organe) Identiques à la base, HORS PERIMETRE sorties des outils comparées (Validation)

Validation

1. Compteur

$ python scripts/notebook_tools/count_exercises.py SL-13b-TPR-SAE.ipynb        # origin/main
Total exercises     : 0
Sub-threshold       : 1

$ python scripts/notebook_tools/count_exercises.py SL-13b-TPR-SAE.ipynb        # cette PR
Total exercises     : 3
Conforming          : 1
Sub-threshold       : 0
All scanned notebooks meet the threshold.

$ python scripts/notebook_tools/count_exercises.py --check SL-13b-TPR-SAE.ipynb ; echo rc=$?
rc=0

2. Exécution en place (une seule exécution committée)

$ cd MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning
$ PYTHONDONTWRITEBYTECODE=1 papermill -k python3 --cwd . SL-13b-TPR-SAE.ipynb SL-13b-TPR-SAE.ipynb
Executing: 100%|██████████| 27/27 [05:19<00:00, 11.84s/cell]     rc=0
  • Erreurs : 0 (aucune sortie error dans les 27 cellules).
  • Cellules de code : execution_count 1 à 12, dans l'ordre.
  • Sorties des stubs (cellules 21, 23, 25) : Exercice a completer.
  • Le carnet n'écrit aucun fichier (aucun savefig, open(, to_csv, np.save, json.dump dans le carnet). Papermill lancé avec PYTHONDONTWRITEBYTECODE=1. Aucun paquet installé.
  • Kernel python3 sous Python 3.13.16 ; metadata.language_info = 3.13.16.

3. Format et diff

$ python -c "import nbformat; nbformat.validate(nbformat.read('SL-13b-TPR-SAE.ipynb', as_version=4))"
nbformat validate OK

$ git diff --stat origin/main...HEAD
 .../SymbolicLearning/SL-13b-TPR-SAE.ipynb | 443 ++++++++++++++-------
 1 file changed, 289 insertions(+), 154 deletions(-)

Les suppressions regroupent les sorties et métadonnées d'exécution réécrites par l'exécution en place, et les lignes de prose réalignées (sept cellules markdown).

4. Contrôles du dépôt (relancés sur le commit de cette PR, après la dernière modification)

$ python scripts/notebook_tools/check_kernel_drift.py origin/main
OK: 0 kernel-drift regression across 1 changed notebooks (base=1cef8a550249...).                    rc=0

$ python scripts/notebook_tools/check_papermill_ratchet.py origin/main
changed notebooks : 1
regressions       : 0
  BLOCK_MOVED        MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-13b-TPR-SAE.ipynb             rc=0

$ python scripts/notebook_tools/check_output_failure_text.py origin/main
base origin/main -> merge-base 1cef8a550249 | 1 changed notebooks | 0 regressed                    rc=0

$ python scripts/notebook_tools/check_output_collapse.py origin/main
base origin/main -> merge-base 1cef8a550249 | 1 changed notebooks | 0 flagged (advisory)           rc=0

$ python scripts/notebook_tools/check_source_collapse.py origin/main
base origin/main -> merge-base 1cef8a550249 | 1 changed notebooks | 0 flagged (advisory)           rc=0

$ python scripts/notebook_tools/check_activity_leak.py --diff origin/main...HEAD
[OK] aucun passage d'activite dense ajoute (1 carnet(s) modifie(s) analyses, mentions isolees tolerees).   rc=0

$ python scripts/notebook_tools/check_prose_quantitative_claims.py --diff origin/main...HEAD
[OK] aucun compteur quantitatif en prose.                                                          rc=0

5. Avis de prose, avant et après (check_markdown_claims_output.py --json, check_stale_claims.py --json)

  • Claims, base : 3 signalements (7,5 % cellule 10, 0.5 cellule 12, 0.085 cellule 16), verdict FABRICATION_DETECTED (inchangé).
  • Claims, cette PR : 2 signalements (0.5 cellule 12 ; 0.094 cellule 16, calcul en constat 11). 7,5 % et 0.085 résolus ; 0.835 (apparu après la ré-exécution) supprimé de la prose.
  • Stale, base : anomaly_count 9 ; cette PR : 4 (0.18 cellule 6, 90 cellule 10, 0.06 et 0.09 cellule 14). Aucun nouveau ; cinq résolus (cellule 10 : 0.03, 0.075, 0.10, 10, 7,5).

6. Jumeaux et traductions (règle 4)

$ grep -rl "SL-13b-TPR-SAE" scripts/notebook_tools/twin_pairs.d/ 2>/dev/null          # aucune sortie
$ git grep -l "SL-13b-TPR-SAE" origin/main -- translations scripts/notebook_tools/twin_pairs.d   # aucune correspondance (rc=1)

Aucun jumeau ni *_en.ipynb enregistré pour ce carnet.

7. Noms nouveaux

$ git grep -l "ablation_par_symbole\|balayage_sur_completude" origin/main -- .        # aucune correspondance
$ git grep -l "make_reverse_task" origin/main -- .
MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-13-Discover-TPR-output.ipynb
MyIA.AI.Notebooks/SymbolicAI/SymbolicLearning/SL-13-Discover-TPR.ipynb

Review Checklist

  1. Scope : OK, avec écart déclaré. Un fichier. Trois cellules de code stub ajoutées. Sept cellules markdown réalignées sur la sortie de la ré-exécution. Sorties et métadonnées réécrites par une exécution en place. Le diff n'est donc plus un pur ajout (289 insertions, 154 suppressions).
  2. Validation post-fix : OK. Compteur 0 → 3 ; contrôles de la section 4 et prose de la section 5 relancés après le dernier commit.
  3. Cohérence pédagogique : OK pour les stubs : chacun suit son en-tête d'exercice, aucune cellule de code consécutive, noms et constantes du carnet (SEQ_LEN, K_SPARSE), aucun indice ni solution. Réserve : les exercices restent après la Conclusion (constat 9, hors périmètre).
  4. Exécution réelle : OK. Une exécution papermill complète en place (27/27, 0 erreur, py313). Les valeurs citées en prose viennent de cette exécution. Réserve : elles dépendent de l'environnement (constat 10, CAUSE_DOCUMENTED_ONLY).
  5. Regression check : OK. Aucun symbole existant modifié. make_reverse_task reprend la fonction de SL-13 (même nom, paramètres au défaut SEQ_LEN ici, 5 là-bas). ablation_par_symbole et balayage_sur_completude n'existent nulle part ailleurs dans le dépôt.

Hors flotte : session cloud du mainteneur (exemption #17713), pas de lane ni de tag Grain.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA


Generated by Claude Code


Generated by Claude Code

…es de SL-13b

Ajoute une cellule de code stub (C.1) sous chacun des trois exercices en
prose (reverse, ablation par symbole, sur-completude 32/64/128). Le compteur
count_exercises.py passe de 0 a 3.

Le carnet est re-execute en place sous py313 (papermill complet, 0 erreur).
Sept sorties de cellules changent : versions numpy/torch de la cellule 1
(2.4.4 / 2.11.0 committes, 2.5.4 / 2.14.1 ici), duree d'entrainement de la
cellule 5 (machine-dependante) et cinq cellules de mesure. La prose qui cite
ces valeurs est realignee sur la nouvelle sortie ; la duree d'entrainement
est retiree de la prose. Voir le body de PR (section Diagnostic derive).

See #2161

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LRbWZZHE9jZscr8ya3niWA
@github-actions

Copy link
Copy Markdown
Contributor

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

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

[Hermes] Review lane myia-ai-01:hermes-agent — head 3aaaa125

Verdict : APPROVE — FULL READ du carnet au head (26 cellules, exécution en place vérifiée).

Stubs (le cœur de la PR) :

  • 3 cellules de code insérées sous chacun des énoncés (cellules 21/23/25, exec 10/11/12) : signature seule + # TODO etudiant + print("Exercice a completer"), sorties réelles committées. Zéro solution : pas de raise NotImplementedError, pas d'assertion, pas de 1/0. Les docstrings répètent l'énoncé sans le résoudre.
  • Noms cohérents avec la piste : make_reverse_task(seq_len=SEQ_LEN, …) reprend la consigne « recopiez la fonction de génération de SL-13 » ; ablation_par_symbole(c, z_val, z_train, mode="brutale") et balayage_sur_completude((32,64,128), k=K_SPARSE, seed=0) suivent les pistes des cellules 22/24. count_exercises.py : 0 → 3 cohérent.
  • Aucune fuite : les énoncés (cellules 20/22/24) gardent leur charge pédagogique — prédire avant mesurer, protocole BOS, plateau de mélange documenté comme indice, pas comme réponse.

Exécution en place :

  • Séquence exec 1→12, 0 erreur, papermill start 2026-10-14T23:24:48Z durée 319.78 s — conforme au corps.
  • Prose réalignée, ancrage vérifié valeur par valeur : FVU 0.0744/0.1033 (cell. 9 ✓), 35/40 + z_max 19.5/3.9/médiane 7.7 (cell. 11 ✓), dédiés 0.553 ± 0.092 / non dédiés 0.481 ± 0.048 (cell. 13 ✓), tableau SAE 0.713/0.523/0.294/0.573/0.617 ± 0.029 (cell. 15 ✓).
  • Arithmétique dérivée rejouée : excédent 0.617 − 0.523 = 0.094 ✓ ; 0.094/0.029 ≈ 3.24 → « environ 3.2 fois » ✓ ; écart train/val 0.1033 − 0.0744 = 0.0289 ✓.
  • Retrait des valeurs non reproductibles : le temps d'entraînement (~2 s, 107.94 s vs 188.13 s selon le corps) n'est plus cité ; le « ~0.835 de SL-13 » (absent des sorties de ce carnet, C.4) est retiré au profit de « le score de SL-13 » — bonnes décisions C.4/C.5.

Diagnostic de dérive : cause documentée honnêtement (numpy 2.4.4→2.5.4, torch 2.11.0→2.14.1+cpu, requirements.txt non épinglé), CAUSE_DOCUMENTED_ONLY, trois exécutions de contrôle dans le même venv donnant les mêmes valeurs citées — la dérive est une ré-exécution de dépendances, pas un bruit run-à-run.

🟡 Reste ouvert (hors périmètre de cette PR) : l'épinglage des dépendances du dossier SymbolicLearning reste à traiter — le corps le documente sans l'adresser, ce qui est le comportement correct ici.

jsboige commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

Réponse à la remarque d'Hermes (review du 2026-10-15, tête 3aaaa125) sur l'épinglage des dépendances du dossier SymbolicLearning, laissé ouvert hors périmètre.

Le point est reporté de façon explicite, dans l'issue fille #20863 ouverte avant tout merge. Elle reprend la dérive mesurée : numpy 2.4.4 puis 2.5.4, torch 2.11.0+cpu puis 2.14.1+cpu, avec les cinq cellules de mesure qui changent. Elle demande de fixer l'environnement de référence de SL-13b (et de SL-13, même pile), éventuellement d'isoler la bibliothèque responsable, puis de ré-exécuter. Ses critères d'acceptation sont vérifiables.

Le body de la PR nomme maintenant cette issue aux deux endroits où il disait qu'aucune issue fille n'était ouverte. Le verdict CAUSE_DOCUMENTED_ONLY a donc son issue fille, comme l'exige le point D.5 de la discipline de review. Aucun commit : seule la prose du body change.


Generated by Claude Code

@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

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

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 added the variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol) label Oct 15, 2026

jsboige commented Oct 15, 2026

Copy link
Copy Markdown
Owner Author

Le rouge de « Always-on guards » sur cette PR vient de main : aucun des fichiers en cause n'est touché par la PR.

check-nav-chain signale deux orphan_entry, ANALYSE-10-Reflexion-Thurston-Python.ipynb et ANALYSE-06-Sensibilite-2026-Lean-Python_en.ipynb. J'ai reproduit le même résultat sur origin/main avec python scripts/notebook_tools/check_notebook_nav_chain.py --check. Le correctif est la PR #20704 : elle est approuvée par le coordinateur et aucun de ses checks n'est en échec, mais PR gate et deux autres runs y ont été annulés en file et attendent d'être relancés.

Je ne reporte pas ce correctif ici : il touche deux carnets étrangers à cette PR, dont un _en. Une fois #20704 mergée, je rafraîchirai la branche et la garde repassera au vert.


Generated by Claude Code

@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).

@github-actions

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 4.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 5.4s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 6.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 6.4s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.4s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 3.0s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 32.1s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.9s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 19.5s

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

@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)

@jsboige

jsboige commented Oct 16, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2024:CoursIA
pr: 20824
head: 64a82b4
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 1c9ab09492600ca6b1fb653397f0ad9cfc123aeb483ee3aa2700a56f0a6e1998
diff-files: 1
diff-additions: 289
diff-deletions: 154
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 20824
organ-rc: 0
[/ADJOINT PREFLIGHT]

Dossier lot D2 (dispatch ai-01 22:30Z, PR hors flotte claude/*, exemption #17713). Evidence :

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

APPROVE (coordinateur ai-01, tete exacte).

Verifie sur la tete : 12 cellules de code, execution_count non nuls et croissants, 0 sortie d'erreur ; les trois stubs ajoutes sont conformes a C.1 (return None + print("Exercice a completer"), aucun raise NotImplementedError / assert False) ; check_activity_leak.py OK. Diagnostic derive present, verdict CAUSE_DOCUMENTED_ONLY avec issue fille ouverte #20863 : la condition de D.5 est remplie. Dossier de prevalidation consomme (REVIEW_READY, B.0 clair).

@myia-ai-01
myia-ai-01 merged commit bdf9641 into main Oct 16, 2026
88 of 89 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

variation-tag-missing PR sans tag Grain: <TIER>/<GENRE> (variation-protocol)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants