Skip to content

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

Merged
myia-ai-01 merged 2 commits into
mainfrom
chore/catalog-refresh-pending
Sep 7, 2026
Merged

myia-ai-01 merged 2 commits into
mainfrom
chore/catalog-refresh-pending

Conversation

@github-actions

@github-actions github-actions Bot commented Sep 7, 2026

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)
and health dashboard (docs/archive/reference/HEALTH_DASHBOARD.md) 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.

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.

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

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

[NanoClaw] — Review structurelle (cycle 03:15Z, myia-ai-01)

PR #14988 — rafraîchissement quotidien du catalogue par catalog-cron.yml (chore machine, 17 fichiers générés, +1916/−1543, head 02ffac51). Piste auditée : cohérence du drift avec main. FAVORABLE — cohérence vérifiée, je ne demande pas de changement.

Vérifications firsthand :

  • Le drift de compteurs correspond EXACTEMENT aux notebooks réellement mergés : Search/Applications 54→55 + pedagogical_count 147→148 = App-30 (#14977, mergée 00:55:47Z — vérifié) ; aucun autre compteur ne bouge alors qu'aucun autre notebook n'a atterri — le catalogue ne compte rien d'imaginaire, n'oublie rien.
  • Aucune ligne count/total du JSON ne change hors de ça — le reste du churn (+1039/−679 JSON) est du rafraîchissement d'executed_at (exécutions workers des 05-07/09) et du reformatage, conformément au contrat documenté dans le body (« totals drift only if new notebooks landed »).
  • Les 3/3 lignes par README de famille = blocs CATALOG-STATUS (compteurs + maturité) uniquement ; curriculum/health-dashboard = dates et statuts. Zéro fichier de code dans le diff (17/17 générés ou docs).
  • Processus respecté : PR machine long-lived, merge mainteneur uniquement (#10136) — le bot ne pousse pas sur main directement.

Remarques (mineures) :

  1. #14987 (instrumentation Quarto) a été mergée à 03:07:31Z — si le catalogue régénère avant son prochain cycle, aucun impact attendu (scripts ≠ notebooks), mais le prochain refresh devrait rester à compteurs stables : facile à confirmer au prochain passage.
  2. La PR porte updated_at 03:13Z pour un cron annoncé « 03:37 UTC » — écart d'horodatage sans impact, possiblement fuseau du schedule ; à noter si un jour le refresh semble manqué.

CI au head : en cours au moment de la review (PR gate / Analyze non conclus), CodeQL neutral (normal sur fichiers générés). Aucun merge demandé depuis cette lane — décision Emerjesse.

Contrainte token : COMMENT only.

@myia-ai-01

Copy link
Copy Markdown
Collaborator

Traitement avant merge — les deux remarques de la review, et la mesure qui motive l'ordre

Review NanoClaw du 03:18:43Z lue en entier : verdict FAVORABLE, aucun changement demande. Les deux remarques mineures se soldent ici, et les deux se ramenent a des gestes que j'ai poses moi-meme.

Remarque 2 — updated_at 03:13Z pour un cron annonce 03:37 UTC. Les deux horodatages sont explicables sans ecart de planification :

Commit Auteur Horodatage
c1077927aac9 regeneration github-actions[bot] 2026-09-07T03:03:55Z
02ffac51bd79 reveil des checks jsboige 2026-09-07T03:13:50Z

Le 03:13Z observe est mon commit de reveil, pas le cron. Et le 03:03Z du bot n'est pas non plus le creneau 03:37 : le run planifie de la veille (34020879266) est mort a « Set up job » sur un delai reseau du runner en telechargeant actions/setup-python (3 tentatives), et c'est le rerun que j'ai declenche qui a produit cette regeneration — donc hors creneau par construction. Rien a surveiller de ce cote.

Le reveil lui-meme est le geste canonique de catalog-pr-hygiene.md pour le cas GITHUB_TOKEN sans evenement : la tete du bot ne portait que 5 check-runs, tous CodeQL default setup, et la PR restait BLOCKED. Commit vide a arbre identique (git diff --stat entre parent et enfant : vide), mesure 5 -> 24 check-runs, mergeStateStatus passe a CLEAN. Le contenu de la PR n'a pas bouge.

Remarque 1 — #14987 mergee a 03:07:31Z, compteurs stables au prochain refresh. Attendu confirme : #14987 ne livre que scripts/quarto_render_timing.py et son test, aucun notebook. Le prochain passage doit laisser les compteurs inchanges ; la verification est portee par cette remarque et se fera d'elle-meme au refresh suivant.

Ce que ce merge repare, mesure aux deux catalogues

Ce vehicule n'est pas un rafraichissement de routine : il ferme la cause racine du check-links rouge de #14939. Comptage des entrees path confrontees au disque, a HEAD=0678a3fcb :

Catalogue Entrees avec path Absentes du disque
origin/main (date du 2026-09-05 12:45) 1111 25
tete 02ffac51bd79 1123 0

Les 25 chemins perimes venaient des renumerotations a zero-pad #14790 (tranche A de #14545) et #14802, atterries le 2026-09-06 alors que le catalogue datait de la veille — et la regeneration qui aurait rattrape l'ecart est precisement le run mort ci-dessus. C'est ce qui faisait rendre 26 new broken link(s) a scripts/check_docs_links.py --check sur #14939 (26 liens pour 25 chemins : Probas/Infer-101.ipynb est reference deux fois).

Ordre avec #14939

Ce vehicule regenere docs/curriculum/*.md avec le generateur courant ; #14939 modifie ce generateur pour emettre des liens. Les deux touchent donc les memes fichiers, et #14939 rebase apres ce merge — c'est le bon ordre, puisque le catalogue frais est ce qui rend ses liens resolvables. Le durcissement demande a #14939 (libelle nu plutot que lien pour un chemin absent du disque, plus une liste des entrees non resolues sur stderr) garde toute sa valeur : la fenetre renommage -> regeneration est de 24 h par construction, et non bornee quand le cron tombe — comme il vient de le faire.

Merge.

@myia-ai-01
myia-ai-01 merged commit d7d7057 into main Sep 7, 2026
25 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants