Skip to content

chore(catalog): scheduled auto-regenerate (long-lived PR) - #20776

Merged
myia-ai-01 merged 1 commit into
mainfrom
chore/catalog-refresh-pending
Oct 20, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
chore/catalog-refresh-pending

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Purpose

Long-lived PR refreshed daily by catalog-cron.yml (schedule cron 03:37 UTC) to keep
COURSE_CATALOG.generated.{json,md} + CATALOG-STATUS markers + the curriculum (docs/curriculum/*.md),
the health dashboard (docs/archive/reference/HEALTH_DASHBOARD.md) and the project.render list of
_quarto.yml canonical on main.

Maintainer review only — no direct push to main (issue #10136). The bot opens
or updates this PR; merging it refreshes main through the normal PR gate.

What to review

  • Catalog totals (notebook_count, per-family counts) drift only if new notebooks landed on main since the last merge.
  • README <!-- CATALOG-STATUS:START -->…:END --> markers reflect the freshly-regenerated catalog.
  • Curriculum pages under docs/curriculum/ and docs/archive/reference/HEALTH_DASHBOARD.md stay consistent.
  • _quarto.yml project.render stays in sync with the notebooks / READMEs / docs/*.md on main.
    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.yml to keep the queue clean. Subsequent
drift reopens it under the same branch.

See .claude/rules/catalog-pr-hygiene.md and #2433, #10136.

Grain: MED/refactor -- lane myia-ai-01:CoursIA

@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 — 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, 8 examples, 2 scripts, 1 GradeBook, 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.

This was referenced Oct 14, 2026
@github-actions

Copy link
Copy Markdown
Contributor Author

New commit pushed on chore/catalog-refresh-pending by catalog-cron (run 39110895657).
Last commit SHA: d8b20091722c.
Catalog drift detected; the bot has nothing else to do here. Maintainer: please review + merge when convenient.

myia-ai-01 pushed a commit that referenced this pull request Oct 18, 2026
…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>
@github-actions
github-actions Bot force-pushed the chore/catalog-refresh-pending branch from b9d5ebb to 42fb9ff Compare October 19, 2026 10:07
@github-actions github-actions Bot added pr-gate-missing-bot PR du bot sans PR gate: un push GITHUB_TOKEN ne cree pas de workflow run -- merge admin (#10928) pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477) labels Oct 19, 2026
Refresh COURSE_CATALOG.generated.{json,md} + CATALOG-STATUS markers.

Catalog is owned by automation; agents must not regenerate it on feature branches (see .claude/rules/catalog-pr-hygiene.md, #2433, #10136).
@github-actions

Copy link
Copy Markdown
Contributor Author

New commit pushed on chore/catalog-refresh-pending by catalog-cron (run 39396242860).
Last commit SHA: 9969209182e4.
Catalog drift detected; the bot has nothing else to do here. Maintainer: please review + merge when convenient.

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

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.

@myia-ai-01
myia-ai-01 merged commit 0f63d01 into main Oct 20, 2026
42 of 43 checks passed
myia-ai-01 pushed a commit that referenced this pull request Oct 22, 2026
… 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automation catalog-refresh markdown-table-syntax Table syntax defect in changed files (CODE_SPAN_PIPE, NO_SEP, ...). Advisory. See #10097. paragraph-length Paragraph > 2000 chars (wall-of-text, #15405). Resorb before merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants