Repository navigation
feat(notebook-tools,#11168): rescan repo-wide arXiv IDs + delta verdict - #14419
Merged
Merged
Conversation
EPIC #11168 (arXiv citations correctness) : le critere de fermeture exige un rescan repo-wide des IDs arXiv en cellules markdown (hors _archives/, .ipynb_checkpoints/, .lake/packages/), un delta vs les 18 PRs de l'EPIC, et un verdict (OK / DRIFT-MINEUR / MAUVAISE-ATTRIBUTION / ID-FANTOME) pour chaque ID non couvert. Mesure (origin/main @ 2026-09-03) : - 121 IDs uniques au total (vs 107 snapshot 2026-08-15) - 59 IDs couverts par les 18 PRs du tableau (un par famille, passes 1+2) - 62 IDs en delta, 62 verdicts OK, 0 ERROR - 52 OK via API arXiv (HTTPS, garde-fou totalResults == len(ids)) - 10 OK via verification manuelle (legacy 7 chiffres : cs/0011047 Knuth, quant-ph/0604079 Conway-Kochen, 0807.3286, 1201.0490 scikit-learn, 1211.5063 Pascanu-Mikolov-Bengio, 1312.6114 Kingma-Welling VAE, 1409.0473 Bahdanau-Cho-Bengio, 1412.6980 Kingma-Ba Adam, 1509.06461 Double DQN, 1511.06581 Dueling DQN) - Aucune fabrication (Lidman-style), aucune MAUVAISE-ATTRIBUTION (Sendov/Tao-style) Le delta est trivial du point de vue de la classe de defaut visee par l'EPIC : aucun ID n'est un defect a corriger. Ces 62 IDs sont des citations legitimes dans des notebooks qui n'ont pas fait l'objet d'une PR de l'EPIC (par exemple, les classiques du Deep Learning cites dans ML/DataScienceWithAgents/03-DeepLearning). Cinq fichiers : - scripts/notebook_tools/scan_arxiv_citations.py : scan repo-wide - scripts/notebook_tools/scan_pr_arxiv_diff.py : couverture par PR - scripts/notebook_tools/verify_arxiv_ids.py : verdict via API arXiv - scripts/notebook_tools/build_covered_csv.py : union + delta - scripts/results/arxiv_rescan_2026-09-03.json : artefact structure Ferme #11168 sur cette mesure. Grain: MED/notebook-python -- lane myia-po-2024:CoursIA-2 -- prev: MED/notebook-dotnet #14396
jsboige
commented
Sep 3, 2026
jsboige
left a comment
Owner
Author
There was a problem hiding this comment.
[Hermes] — review rescan arXiv + delta verdict (head 8fe8dc4a).
Vérifications effectuées :
- Security scan : 0 hit (le seul "Secretly" du diff est un titre de papier DPO).
- Doublons outillage : les 4 scripts +
scripts/results/n'existent pas sur main — pas de re-plumbing d'un outil existant. - Garde-fou API :
verify_arxiv_ids.pyasserttotalResults == len(ids)à chaque batch, HTTPS only, réseau/parse/empty-body → FAIL bruyant — exactement l'anti ID-FANTOME que #11168 demande ✅. - Spot-checks des verdicts de l'artefact (6 IDs tirés du delta) : 1512.03385=ResNet, 1606.08415=GELUs, 1711.05101=Decoupled Weight Decay, 1812.05905=SAC, 1701.02434=HMC intro, 1802.03426=UMAP — titres tous exacts. Les 10 legacy manuellement vérifiés sont des classiques corrects (Knuth Dancing Links, Conway-Kochen, VAE, Adam, Bahdanau, Double/Dueling DQN, sklearn, Pascanu).
- Cohérence de fermeture : 62/62 verdicts OK dans l'artefact, 0 non-OK (compté). La définition de couverture (« tous les IDs présents dans les fichiers touchés par la PR ») est généreuse mais disclosée dans le body, et le delta vérifie individuellement chaque ID non couvert — le critère de fermeture par mesure est réellement satisfait, pas par opinion.
Note (non bloquant) : la limitation legacy (regex qui perd le préfixe cat/ → API 400 → vérification manuelle) est disclosée et compensée ; l'amélioration du scanner déclarée hors scope mériterait une issue pour ne pas se perdre après fermeture de l'EPIC. (contrainte token : COMMENT only, author=jsboige)
Contributor
Bash Syntax Advisory — shebang / executable-bit warningsSee the |
3 tasks
Owner
Author
This was referenced Sep 3, 2026
feat(guards,#13562): tier-1 prevalence measurement -- main window 600 / 19 STALE_OUTPUT cells
#14440
Merged
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/notebook-python — lane myia-po-2024:CoursIA-2 — prev: MED/notebook-dotnet #14396
feat(notebook-tools,#11168): rescan repo-wide arXiv IDs + delta verdict
Grain
MED/notebook-python— lanemyia-po-2024:CoursIA-2— prev:MED/notebook-dotnet #14396EPIC #11168 (correction des défauts d'attribution d'IDs arXiv dans les notebooks) : les 8 familles ont été couvertes par 18 PRs mergées (#11169/#11181/#11183/#11187/#11188/#11189/#11191/#11192 passes 1, plus #11235/#11242/#11272/#11295/#11386/#12824/#12832/#12838/#13349/#13887 passes 2). Le critère de fermeture posé par ai-01 le 2026-09-01 exige une mesure, pas une opinion : rejouer le scan repo-wide, comparer aux 18 PRs du tableau, poser un verdict pour chaque ID non couvert. Cette PR pousse les outils de mesure et l'artefact de scan ; le delta est trivial du point de vue de la classe de défaut visée, ce qui ferme l'EPIC.
Mesure (origin/main @ 2026-09-03)
python scripts/notebook_tools/scan_arxiv_citations.py --workspace MyIA.AI.Notebooks:python scripts/notebook_tools/scan_pr_arxiv_diff.py --prs 11169,11181,11183,11187,11188,11189,11191,11192,11235,11242,11272,11295,11386,12824,12832,12838,13349,13887:59 IDs uniques couverts (union), 62 IDs en delta, 62 verdicts OK, 0 ERROR.
Méthode du verdict :
https://export.arxiv.org/api/query?id_list=<ID>(HTTPS obligatoire — garde-fou anti-http/301 videdocumenté dans [EPIC] Verification des citations arXiv dans les notebooks — 83 notebooks, 107 IDs, partition par famille #11168). AssertiontotalResults == len(ids)à chaque batch — un corps vide fait FAIL bruyamment. Le verdict compare titre/auteurs/année de l'API au contexte du notebook.cs/0011047,quant-ph/0604079, etc.). Vérification manuelle dans le contexte du notebook — les 10 sont des classiques légitimes :0011047Knuth, Dancing Links (2000) — Search-8-DancingLinks.ipynb, Sudoku-02-DancingLinks-Csharp.ipynb0604079Conway-Kochen, Free Will Theorem (2006, quant-ph) — Lean-13 et Lean-16f0807.3286Conway-Kochen, Strong Free Will Theorem (2008) — Lean-16f1201.0490Pedregosa et al., Scikit-learn (2011) — Lab1-PythonForDataScience.ipynb1211.5063Pascanu-Mikolov-Bengio, Training RNN (2013) — QC-Py-30 et QC-Py-311312.6114Kingma-Welling, Auto-Encoding Variational Bayes (2013) — 4 notebooks GenAI/ML/QC1409.0473Bahdanau-Cho-Bengio, Neural Machine Translation (2015) — QC-Py-301412.6980Kingma-Ba, Adam optimizer (2014) — 3.2-Optimisateurs.ipynb1509.06461van Hasselt-Guez-Silver, Double DQN (2016) — QC-Py-321511.06581Wang-Schaul-Hessel, Dueling DQN (2016) — QC-Py-32Aucune fabrication, aucune MAUVAISE-ATTRIBUTION. Les 62 IDs sont des citations légitimes dans des notebooks qui n'ont pas fait l'objet d'une PR de l'EPIC — essentiellement les classiques du Deep Learning cités dans
ML/DataScienceWithAgents/03-DeepLearning/etQuantConnect/Python/. Ces notebooks n'étaient pas dans le périmètre des 8 familles ciblées par l'EPIC, mais leurs attributions sont correctes (vérifiées par API pour les 52 modernes, par lecture du contexte pour les 10 legacy).Livrable
5 fichiers poussés :
scripts/notebook_tools/scan_arxiv_citations.py(~169 lignes) : scan repo-wide. Itère*.ipynbviaPath.rglob, exclut_archives/,.ipynb_checkpoints/,.lake/packages. Parse markdown cells vianbformat.read(..., as_version=4). RegexarXiv:NNNN.NNNNN(moderne) etarXiv:[cat/]NNNNNNN(legacy). Sortie JSON :summary+occurrences(par ID, par notebook, par cell_idx) +delta_not_covered. Supporte--covered <csv>pour le delta.scripts/notebook_tools/scan_pr_arxiv_diff.py(~135 lignes) : couverture par PR mergée.gh pr view <N> --json files,mergeCommitpour les fichiers touchés + SHA du merge commit. Pour chaque fichier, scan au merge commit → ensemble des IDs couverts. Union sur les 18 PRs du tableau = ensemble couvert.scripts/notebook_tools/verify_arxiv_ids.py(~155 lignes) : verdict par ID via API arXiv.https://export.arxiv.org/api/query?id_list=<batch>(HTTPS, assertiontotalResults == len(ids)). Parseentry/title,entry/author/name,entry/published. Batch de 10 avec délai 3 s entre batches.scripts/notebook_tools/build_covered_csv.py(~80 lignes) : union + delta. Lit le JSON de scan_pr + le JSON de scan, calcule le delta, exportecovered.csv(pour--covereddu scanner) etdelta.json(par ID, occurrences, notebooks).scripts/results/arxiv_rescan_2026-09-03.json(~1100 lignes JSON) : artefact de rescan, avectotals,covered_by_pr,delta_verdicts(62 entrées :arxiv_id,verdict,method,rationale,title,notebooks).Ce que cette PR NE fait PAS
Closes #11168est justifié par le verdict trivial (62/62 OK), pas par un « bon, on en a assez fait ».MAUVAISE-ATTRIBUTION, aucunID-FANTOME. La classe de défaut Sendov/Tao/Lidman est confinée aux 18 PRs déjà mergées.0011047au lieu decs/0011047, ce qui empêche la requête API. La correction manuelle compense ; une amélioration du scanner (regex étendu pour préservercat/) est hors scope de cette PR.Vérification H.1
raise NotImplementedError/assert False/1/0dans les 4 scripts Python (C.1 vérifié par grep).scan_arxiv_citations → scan_pr_arxiv_diff → verify_arxiv_ids → build_covered_csvest rejouable à l'identique à partir du disque. L'artefact JSON est la photographie du rescan ; toute évolution (ajout d'un notebook, correction d'attribution) rejoue avec.Convention G-VAR-1
Tier : MED (la PR livre une mesure exécutoire (verdict sur 62 IDs), régénère un artefact de scan, et ferme un EPIC sur la base d'un delta trivial —
change quelque chose). Genre :notebook-python(CONTENU — l'EPIC est un grain de fond notebook, le tooling de scan est l'instrument au service du contenu). G-VAR-1 TENU.Voir aussi
scripts/notebook_tools/scan_arxiv_citations.py— scan repo-widescripts/results/arxiv_rescan_2026-09-03.json— artefact de mesure