Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/reference/scripts-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Les scripts `scripts/fix_*.py` / `scripts/recycle_*.py` à la racine sont des on
| `batch_reexecute.py` | Re-exécution Papermill en lot |
| `dotnet_executor.py`, `exec_dotnet_persist.py`, `exec_single_cell.py` | Exécution .NET Interactive : moteur cell-by-cell canonique (`dotnet_executor.py`), wrapper CLI historique (`exec_dotnet_persist.py`) et exécution ciblée |
| `execute_qcpy_docker.py`, `qc_quantbook_execute.py` | Exécution QuantConnect (Quantbooks via Docker/QC Cloud) |
| `_exec_bdd_csharp.py` | Exécution C# BDD interne |
| `_exec_bdd_csharp.py` | **Archivé** 2026-10-01 (palier 1 #18153) — voir `scripts/notebook_tools/_archive/README.md` |

#### `notebook_tools.py execute` — Options avancées

Expand Down Expand Up @@ -140,7 +140,7 @@ La migration Plotly-CDN → SVG inline `text/html` (canon ai-01 `svg-6927-canon.
| `qc_classify.py` | Classification stratégies QC (BROKEN/NEEDS_IMPROVEMENT/HEALTHY) |
| `epita_prcon_autograde.py` | Autograde EPITA Programmation par Contraintes |
| `weekly_digest.py` | Digest hebdomadaire d'activité |
| `fix_audio_dependencies.py`, `optimize_dvs.py` | Dépendances audio / optimisation |
| `fix_audio_dependencies.py` | Dépendances audio ; `optimize_dvs.py` **archivé** 2026-10-01 (palier 1 #18153) |
| `_alpha_diag.py`, `generate_16e.py` | Diagnostics ponctuels |

## Audit, coûts & fidélité — `scripts/audit/`
Expand Down Expand Up @@ -221,7 +221,7 @@ Pipeline d'audit qualité et de **matrice de coût** (EPIC #8056) + audit séman
| **smartcontracts/** | 2 | validate_sc_notebooks.py |
| **extract-titles (top-level)** | 4 | extract_pptx_titles.py, extract_slidev_titles.py, extract_titles.py, extract_readme_figures.py |
| **ml/** | 1 | garch_baseline |
| **autres (top-level + misc)** | 27 | check_docs_links, convert_print_to_deploy, regen_quarto_render, quarto_render_timing (mesure phases #14597), render_envs (secrets), scan_student_forks, series_progress_manager, update_navigation, validate_qc_projects, execute_sudoku_python, execute_qcpy_docker, translation_sync, translate_csv, detect_{ascii_workaround,blank_figures,svg_decimal_commas}, verify_{prosody,transcript}, audit_exposed_services, auth_manager, configure_max_quantization, container_startup, download_yfinance, manage_crypto_archive, notebook_tools_pure, repair_genai_notebooks, validation_dispatch |
| **autres (top-level + misc)** | 26 | check_docs_links, regen_quarto_render, quarto_render_timing (mesure phases #14597), render_envs (secrets), scan_student_forks, series_progress_manager, update_navigation, validate_qc_projects, execute_sudoku_python, execute_qcpy_docker, translation_sync, translate_csv, detect_{ascii_workaround,blank_figures,svg_decimal_commas}, verify_{prosody,transcript}, audit_exposed_services, auth_manager, configure_max_quantization, container_startup, download_yfinance, manage_crypto_archive, notebook_tools_pure, repair_genai_notebooks, validation_dispatch |

Lancer la suite : `python -m pytest scripts/tests/ -v` (depuis la racine du repo).

Expand Down
6 changes: 3 additions & 3 deletions scripts/notebook_tools/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ complement. L'inventaire ci-dessous remplace la lecture en aveugle de
| **Catalogue & dashboards** | `generate_catalog.py`, `verify_catalog_readme.py`, `catalog_coverage.py`, `fix_catalog_drift.py`, `generate_health_dashboard.py`, `weekly_digest.py`, `extract_readme_figures.py` | Artefacts catalogue (#2632) + figures README + dashboards |
| **Audit & regression** | `audit_c1_c3.py`, `audit_solution_leaks.py`, `regression_scan.py`, `forensic_scan.py`, `diagnose_broken.py` | Audits structurels C.1/C.3 + fuite solution (#4970) + regression cluster + diagnostics |
| **Extraction & parsing** | `notebook_tools.py`, `notebook_helpers.py`, `notebook_lint.py`, `extract_notebook_skeleton.py`, `count_exercises.py`, `count_notebooks_by_series.py`, `expand_catalog_markers.py`, `golden_set.yml`, `golden_set.lock.txt` | CLI multi-famille + helpers parsing + golden set |
| **C# / .NET persistence** | `_exec_bdd_csharp.py`, `_fix_gt15b_compilation.py`, `_fix_lean34_unused_vars.py` | Diagnostic + fix cibles C# specifiques (GT-15, Lean34) |
| **Leak-fix batch (legacy)** | `_fix_leaks_batch{1,2_probas,3_sudoku,4_remaining}.py`, `restructure_sw_2613.py` | Migration SW (#2613) + de-leak batchs legacy 2026 |
| **Divers** | `_alpha_diag.py`, `cell_order_ci.py`, `fix_audio_dependencies.py`, `flatten_import_notebook.py`, `generate_16e.py`, `generate_parcours.py`, `optimize_dvs.py`, `epita_prcon_autograde.py`, `sudoku_validate_outputs.py` | Cibles specifiques (diagnostics, EPITA autograde, parcours 16e) |
| **C# / .NET persistence** | — (archivés : `_exec_bdd_csharp.py`, `_fix_gt15b_compilation.py`, `_fix_lean34_unused_vars.py` → `scripts/notebook_tools/_archive/`) | Diagnostic + fix cibles C# specifiques (GT-15, Lean34) ; voir `_archive/README.md` (palier 1 #18153, 2026-10-01) |
| **Leak-fix batch (legacy)** | `_fix_leaks_batch1.py` (archivé), `restructure_sw_2613.py` | Migration SW (#2613) + de-leak batch 1 legacy 2026 ; batches 2-5 archivés 2026-10-01 (`_archive/README.md` palier 1 #18153) |
| **Divers** | `_alpha_diag.py`, `cell_order_ci.py`, `fix_audio_dependencies.py`, `flatten_import_notebook.py`, `generate_16e.py`, `generate_parcours.py`, `epita_prcon_autograde.py`, `sudoku_validate_outputs.py` | Cibles specifiques (diagnostics, EPITA autograde, parcours 16e) ; `optimize_dvs.py` archivé 2026-10-01 (`_archive/README.md` palier 1 #18153) |

Tests unitaires dans `scripts/notebook_tools/tests/`.

Expand Down
40 changes: 32 additions & 8 deletions scripts/notebook_tools/_archive/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,43 @@ S'applique au sous-dossier `_archive/` de `scripts/notebook_tools/`. Référence
[`docs/reference/_archive-convention.md`](../../../docs/reference/_archive-convention.md) (modèle ML-Training-Pipeline généralisé,
4 critères d'éligibilité, header disposition per-function).

## État au 2026-09-01
## État au 2026-10-01

1 fichier archivé. Origine : sous-grain `#13745` (umbrella « 92 orphelins notebook_tools/ + fusions sélectives V3 »),
claim `myia-po-2026:CoursIA-2` du 2026-09-01 (paths: `scripts/notebook_tools/_fix_leaks_batch1.py`,
`scripts/notebook_tools/_archive/**`). Pool des autres candidats discriminés first-hand :
2 fantômes (`c785_insert_ackley.py`, `c786_insert_lean_descvisuelle.py` — jamais existé sur disque) ;
1 vivant critique (`hopf_s6_reproduction.py` — référencé ×6 par Lean-30 notebook + 2 README, INTRINSIC v4.32.1) ;
1 gris (`optimize_dvs.py` — successeur à nommer avant archivage, hors scope de cette PR).
Archive alimentée par deux origines (voir table ci-dessous pour la liste nominative).

### Origine 2026-09-01 (sous-grain `#13745`, claim `myia-po-2026:CoursIA-2`)

- Le fichier `_fix_leaks_batch1.py` est archivé.
- Pool des autres candidats discriminés first-hand :
- Fantômes déclarés (`c785_insert_ackley.py`, `c786_insert_lean_descvisuelle.py` — déclarés « jamais existé sur disque ») ;
- Vivant critique (`hopf_s6_reproduction.py` — référencé depuis la série Lean + READMEs, INTRINSIC v4.32.1) ;
- Gris (`optimize_dvs.py` — successeur à nommer avant archivage, hors scope de cette PR).

### Origine 2026-10-01 (sous-grain `#18153` palier 1, claim `myia-po-2023:CoursIA-2`)

- Lots palier 1 vérifiés par ai-01 dans #18153 (axe D #16473) :
- Batches successeurs de `_fix_leaks_batch1.py` (`_fix_leaks_batch{2,3,4,5}_*.py`) — terminaux absolus, leurs produits sont sur `main` ;
- Insertions déclarées temporaires (`_fix_gt15b_compilation.py`, `_fix_lean34_unused_vars.py`) — produits sur `main`, codepath machine-local ;
- Insertions Ackley et Lean descvisuelle (`c785_insert_ackley.py`, `c786_insert_lean_descvisuelle.py`) — pas des fantômes (le README du 2026-09-01 se trompait ; ajoutés le 2026-07-22 par #7993) ;
- One-shots machine-local (`_exec_bdd_csharp.py`, `optimize_dvs.py`).

Correction du chapeau 2026-09-01 : les `c785/c786` ne sont pas des fantômes — ce sont des one-shots temporaires, archivés ici en 2026-10-01.

## Table 4 colonnes (convention `_archive/`)

| Script | Verdict | Superseded by | Verdict recorded in |
|--------|---------|---------------|---------------------|
| `_fix_leaks_batch1.py` | NO BEATS (one-shot batch terminé ; 70 leaks `Exercice → Exemple guide` posés sur 27 notebooks Search) | none (closed dead-end ; batch 2+ absorbed by `detect_solution_leaks.py` gate — PRs #8407, #10049, #10004, #8294, #8900, #12390, etc.) | PR `0cd10575d` "fix(search): relabel 70 solution leaks as Exemple guide (#1205 Batch 1)" ; commentaire dashboard `[issue #13745]` |
| `_fix_leaks_batch2_probas.py` | NO BEATS (one-shot batch terminé ; probas solution leaks posés) | none (closed dead-end ; absorbed by `detect_solution_leaks.py` gate — PR #8900) | PR #8900 « fix(search): relabel solution leaks as Exemple guide (#1205 Batch 2) » ; #13745 thread |
| `_fix_leaks_batch3_sudoku.py` | NO BEATS (one-shot batch terminé ; Sudoku solution leaks posés) | none (closed dead-end ; absorbed by `detect_solution_leaks.py` gate — PR #10049) | PR #10049 « fix(sudoku): relabel solution leaks as Exemple guide (#1205 Batch 3) » ; #13745 thread |
| `_fix_leaks_batch4_remaining.py` | NO BEATS (one-shot batch terminé ; remaining solution leaks posés) | none (closed dead-end ; absorbed by `detect_solution_leaks.py` gate — PR #12390) | PR #12390 « fix: relabel remaining solution leaks as Exemple guide (#1205 Batch 4) » ; #13745 thread |
| `_fix_leaks_batch5_c874.py` | NO BEATS (one-shot batch terminé ; c874 Lean solution leaks posés) | none (closed dead-end ; absorbed by `detect_solution_leaks.py` gate — PR #14071) | PR #14071 « fix(lean): relabel c874 solution leaks as Exemple guide (#1205 Batch 5) » ; #13745 thread |
| `_fix_gt15b_compilation.py` | NO BEATS (one-shot compilation fix for GameTheory-15b ; header « temporary ») | none (closed dead-end ; produit sur `main`) | #18153 palier 1 + #13745 umbrella |
| `_fix_lean34_unused_vars.py` | NO BEATS (one-shot unused var cleanup in Lean-34 ; header « temporary », codepath machine-local) | none (closed dead-end ; produit sur `main`) | #18153 palier 1 + #13745 umbrella |
| `c785_insert_ackley.py` | NO BEATS (one-shot Ackley insertion ; codepath machine-local) | none (closed dead-end ; insertion sur `main` via PR #7993) | PR #7993 + #18153 palier 1 |
| `c786_insert_lean_descvisuelle.py` | NO BEATS (one-shot Lean descvisuelle insertion ; codepath machine-local) | none (closed dead-end ; insertion sur `main` via PR #7993) | PR #7993 + #18153 palier 1 |
| `_exec_bdd_csharp.py` | NO BEATS (one-shot BDD C# execution driver ; codepath machine-local) | none (closed dead-end ; pas de consommateur survivant) | #18153 palier 1 + #13745 umbrella |
| `optimize_dvs.py` | NO BEATS (one-shot DVS optimizer ; codepath machine-local) | none (closed dead-end ; pas de consommateur survivant — successeur non nommé, archive décidée sur constat d'usage nul) | #18153 palier 1 + #13745 umbrella |

## Pourquoi ce standard

Expand All @@ -44,8 +67,9 @@ référence durable (PR mergée, commit, commentaire dashboard) citée.

- Convention parente : [`docs/reference/_archive-convention.md`](../../../docs/reference/_archive-convention.md)
- Claim parent : `#13745` « [consolidation] notebook_tools/ : 92 orphelins sur 152 + fusions sélectives (V3) »
- Sous-grain palier 1 : `#18153` « scripts/ : 71 candidats a l'archivage ou au cablage (audit haiku du 27/09, axe D de #16473) »
- Pipeline de détection successor : `scripts/notebook_tools/detect_solution_leaks.py` (PR #12390 + suite)

---

`Grain: LIGHT/refactor — lane myia-po-2026:CoursIA-2 — prev: MED/research-code #14137`
`Grain: LIGHT/refactor — lane myia-po-2023:CoursIA-2 — prev: MED/notebook-python #18598`
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — codepath machine-local; BDD execution driver with no surviving consumer)
# - Verdict recorded in : issue #13745 umbrella 'notebook_tools orphans' + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

"""
Execute Sudoku-14-BDD-CSharp.ipynb cell-by-cell via .net-csharp kernel.
Uses jupyter_client to connect to the kernel, execute each code cell,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — one-shot compilation fix for GameTheory-15b notebook; declared temporary in header)
# - Verdict recorded in : issue #13745 umbrella 'notebook_tools orphans' + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

"""
One-shot fixer for GameTheory-15b-Lean-CooperativeGames-Lean.ipynb compilation errors.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — batch 2 of #1205, `detect_solution_leaks.py` gate covers; PR #8900 absorbed)
# - Verdict recorded in : PR #8900 'fix(search): relabel solution leaks as Exemple guide (#1205 Batch 2)' + #13745 thread + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

"""Batch fix Probas/Infer solution leaks — Issue #1205 Batch 2.

Strategy: Same as Batch 1 (Search series).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — batch 3 of #1205, `detect_solution_leaks.py` gate covers; PR #10049 absorbed)
# - Verdict recorded in : PR #10049 'fix(sudoku): relabel solution leaks as Exemple guide (#1205 Batch 3)' + #13745 thread + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

"""Batch fix Sudoku series solution leaks — Issue #1205 Batch 3.

Strategy: Same as Batch 1 (Search) + Batch 2 (Probas/Infer).
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — batch 4 of #1205, `detect_solution_leaks.py` gate covers; PR #12390 absorbed)
# - Verdict recorded in : PR #12390 'fix: relabel remaining solution leaks as Exemple guide (#1205 Batch 4)' + #13745 thread + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

"""Batch fix remaining solution leaks — Issue #1205 Final Batch.

8 HIGH leaks remaining across 3 series:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — batch 5 of #1205, `detect_solution_leaks.py` gate covers; PR #14071 absorbed)
# - Verdict recorded in : PR #14071 'fix(lean): relabel c874 solution leaks as Exemple guide (#1205 Batch 5)' + #13745 thread + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

"""Batch fix solution leaks tranche #c874 — Issue #8053.

6 confirmed HIGH leaks across 5 families (FP Lean-17 cell#14 removed - was
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — one-shot unused var cleanup in Lean-34 notebook; declared temporary in header, codepath machine-local)
# - Verdict recorded in : issue #13745 umbrella 'notebook_tools orphans' + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

"""
One-shot fix script for Lean-3 and Lean-4 notebooks unused variable warnings.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — one-shot Ackley insertion; codepath machine-local; insertion already on main via PR #7993)
# - Verdict recorded in : PR #7993 (insertion target) + #13745 thread + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

#!/usr/bin/env python3
"""
c.785 — Insere 2 cellules (markdown + code) dans MGS-7b-LandscapeMultidim.ipynb
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — one-shot Lean descriptive visuelle insertion; codepath machine-local; insertion already on main via PR #7993)
# - Verdict recorded in : PR #7993 (insertion target) + #13745 thread + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

#!/usr/bin/env python3
"""
c.786 — Insere le champ canonique **Description visuelle** dans les 6 sections du
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Archive header (standard _archive convention, 2026-08, docs/reference/_archive-convention.md)
# - Date archived : 2026-10-01
# - Superseded by : none (closed dead-end — codepath machine-local; DVS optimizer with no surviving consumer)
# - Verdict recorded in : issue #13745 umbrella 'notebook_tools orphans' + #18153 palier 1 (axe D #16473)
#
# Per-function disposition :
# - main body : abandoned — one-shot terminated, no consumer; kept verbatim for forensic replay

"""Optimize DynamicVIXSpyRegime-QC notebook for faster execution."""
import json
import sys
Expand Down
Loading
Loading