Repository navigation
chore(catalog): scheduled auto-regenerate (long-lived PR) - #20776
Conversation
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] review lane myia-ai-01 — vérification mécanique du catalogue au head fe6f5430 (bot auto-regenerate, tranches >1000 lignes en priorité #15511).
Réconciliation intégrale catalogue ↔ arbre du head (exécution réelle, pas lecture du diff) :
- Catalogue head = 1424 entrées ; arbre Git du head = 1554 ipynb ; écarts = 130, tous dans des classes d'exclusion documentées : 107
research*(QuantConnect projects/ML-Training-Pipeline), 12_archive, 8examples, 2scripts, 1GradeBook, 2-output.ipynb(SL-12b/SL-13). 0 entrée fantôme (catalogue sans fichier), 0 carnet pédagogique manquant. - Delta vs base
1cef8a55: +10 / −1 = 1424 exact. Les 10 nouvelles entrées existent toutes à l'arbre du head (Dynamics-09, GameTheory-13f, SocialChoice/02-Stable-Marriage, 3D-04-3DGS, ICT-36b, QC-Py-43, Argumentation-08f, ANALYSE-10, Riemann200/03, Compression-02) — cohérent avec les ajouts_quarto.yml. La retirée (GameTheory-03e-Plan-de-deformation) n'est plus à l'arbre : suppression légitime reflétée. - Breakdowns README recoupés au réel : GameTheory root=101, SocialChoice=13, Dynamics=1 — comptés à l'arbre, exact. Famille par famille : aucun écart catalogue vs arbre hors classes d'exclusion.
- HEALTH_DASHBOARD cohérent : 1415→1424 (+9 net = +10−1), READY +8 / DEMO +1 somme exacte ; local 844→849, WSL +2, GPU +2, Cloud +1 = +9 ✓.
- Scan sécurité du diff (motifs HF_TOKEN/API_KEY/BEARER/PASSWORD/SECRET/ghp_/sk-) : 0 hit.
Ces totaux relèvent bien de la régénération du catalogue (CATALOG-STATUS, #2651) — c'est l'organe légitime qui les porte, pas une PR README manuelle (#17633). Preuve vivante : chaque assertion ci-dessus a été recalculée depuis l'arbre Git et le JSON générés du head, elle échouerait si le générateur dérivait.
✅ APPROVE — régénération conforme, prête au merge par le mainteneur.
6c8a862 to
b9d5ebb
Compare
|
New commit pushed on |
…ite #19901) (#20833) 4 asks issue #19895 : 1. --check bloquant : arbitration #19901 a choisi ADVISORY (cf. ADR). workflow quarto-render-list-freshness.yml deja en place ; pas touche. 2. regen sur main : catalog-cron le fait a 03:37 UTC (RESET sur origin/main + regen, branche chore/catalog-refresh-pending). PR #20776 ouverte, en attente de merge. 3. regle de merge : nouvelle Regle HARD 5 dans .claude/rules/catalog-pr-hygiene.md -- _quarto.yml est un artefact genere, conflit = version main, jamais de regen par une lane de contenu. 4. --check lisible : scripts/regen_quarto_render.py --check nomme les entrees ajoutees/retirees avec leur section (landing/readmes/docs/notebooks), au lieu du seul "stale" du run precedent. Surface verifiable par l'organe : bloc 14+0 sur main a l'instant de ce commit, ferme a 0+0 apres merge de #20776. Mesure : main drift 14 entries (cf. #19895). Apres merge de #20776, 0. Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
b9d5ebb to
42fb9ff
Compare
|
New commit pushed on |
42fb9ff to
24ef90b
Compare
There was a problem hiding this comment.
Approuvé à la tête 24ef90b3 (régénération planifiée du 20/10). Les 42 jambes sont vertes et B.0 rend rc=0. Le seul commentaire non évalué est le dossier de prévalidation du 17/10, lu.
Arbitrage sur la durée de vie du dossier : cette PR longue durée reçoit un push du cron chaque jour, et chaque push périme le dossier de la veille. Je retiens donc l'option (a) : je merge à la tête exacte du moment, sans attendre un dossier qui serait périmé le lendemain. Le cron rouvrira la PR à la prochaine dérive du catalogue.
… sautes avant les stats (#21842) * fix(curriculum,#20552): parcours idempotents -- fantomes du catalogue sautes avant les stats generate_parcours.py reinjectait a chaque regen une ligne bare label pour une entite de catalogue dont le notebook avait disparu (#14880) : la page committ ee ne portant pas cette ligne (rename #20337, ligne supprimee a la main laissant un trou 41->43), tout regen depuis le catalogue perime (cron #20776 genere pre-rename et merge post-rename pendant la famine) produisait un diff +1. Les entrees absentes sont maintenant sautees AVANT le bloc de stats (comptes et tableaux coherents), avertissement stderr nominatif conserve ; recherche.md regeneree depuis le catalogue committ byte-identique (314 -> 313, renumerotation ICT). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Fix(#20552): hermetic skip -- notebooks_root injected, fixtures on disk, skip witness Review Hermes #21842: the skip partition checked REPO_ROOT directly, so the 3 tests of TestGenerateParcoursPage (fictitious SAMPLE_ENTRIES paths) saw an empty page. generate_parcours_page gains notebooks_root (same contract as resolve_moved_entries); tests materialize fixture notebooks in tmp_path and a new witness asserts absent entry -> not counted, not emitted, signalled. 69 passed (was 4/3 + 4); regen at default root byte-identical (idempotence preserved). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Purpose
Long-lived PR refreshed daily by
catalog-cron.yml(schedule cron 03:37 UTC) to keepCOURSE_CATALOG.generated.{json,md}+CATALOG-STATUSmarkers + the curriculum (docs/curriculum/*.md),the health dashboard (
docs/archive/reference/HEALTH_DASHBOARD.md) and theproject.renderlist of_quarto.ymlcanonical onmain.Maintainer review only — no direct push to
main(issue #10136). The bot opensor updates this PR; merging it refreshes
mainthrough the normal PR gate.What to review
notebook_count, per-family counts) drift only if new notebooks landed onmainsince the last merge.<!-- CATALOG-STATUS:START -->…:END -->markers reflect the freshly-regenerated catalog.docs/curriculum/anddocs/archive/reference/HEALTH_DASHBOARD.mdstay consistent._quarto.ymlproject.renderstays in sync with the notebooks / READMEs /docs/*.mdonmain.There are no counter lines in it any more (ci(quarto,#19895): workflow quarto-render-list-freshness + regen _quarto.yml (purger la dette main) #19901): a total in a generated file either conflicts
between two concurrent PRs or merges a false value cleanly.
Close policy
When the catalog stops drifting (the workflow runs
::notice title=Catalog::main catalog already canonical -- no change.),this PR will be auto-closed by
catalog-pr-close.ymlto keep the queue clean. Subsequentdrift reopens it under the same branch.
See
.claude/rules/catalog-pr-hygiene.mdand #2433, #10136.Grain: MED/refactor -- lane myia-ai-01:CoursIA