Skip to content

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

Merged
myia-ai-01 merged 1 commit into
mainfrom
chore/catalog-refresh-pending
Oct 23, 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

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 github-actions Bot added 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. pr-gate-missing-bot PR du bot sans PR gate: un push GITHUB_TOKEN ne cree pas de workflow run -- merge admin (#10928) labels Oct 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor Author

PR gate absent du rollup (advisory, #10928)

PR ouverte par le bot du depot (son login est nomme dans la ligne « Cause mesuree » ci-dessous ; il s'ecrit github-actions[bot] en REST et app/github-actions en GraphQL) sans PR gate dans son rollup : cas structurel (issue #10928). Un push fait avec GITHUB_TOKEN ne cree pas de nouveau workflow run (regle anti-recursion GitHub), donc le contexte requis ne sera jamais rapporte par un push du bot.

  • Remede : un push humain sur la branche (commit par un compte personnel), ou un merge admin via gh auth switch -u jsboige.
  • close / reopen ne relance rien.

Cause mesuree : auteur github-actions[bot] (bot du depot) -- push GITHUB_TOKEN sans run

@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 — catalogue auto-regenerate au head bd06555e (bot, tranche du 22/10). Vérification mécanique complète, chaque compte recalculé depuis les artefacts du head :

1. Cohérence interne (JSON ↔ markers). COURSE_CATALOG.generated.json au head = 1486 entrées. Le marker CATALOG-STATUS du README racine (total: 1486, 15 séries, BETA=1285, DRAFT=112, ALPHA=85, TEMPLATE=4) : les 15 comptes par série recalculés depuis le JSON = 15/15 exacts, somme des breakdowns = 1486 = total = entrées JSON. Les 15 README de série modifiés : pedagogical_count, breakdown par sous-série et maturité recalculés = 15/15 conformes (ex. GameTheory 123 = root 107 + SocialChoice 14 + Dynamics 1 + gateway 1 ; GenAI/Video BETA 19 / ALPHA 3 ; SMT 49 ; Lean 125).

2. Recoupement externe (catalogue ↔ arbre git réel). Tree récursif du head (1615 .ipynb sous MyIA.AI.Notebooks/) : les 27 ajouts base→head existent tous au head (GameTheory-04g/16h/16k/21, SocialChoice/10, Planners-13, Riemann200 04/09, Langlands/04, KNOTS-04, ICT-36c/36d/42d, IIT-08b, Z3-19, App-14x déplacés vers Search/Applications/Adversarial/…) ; les 5 retraits sont légitimes (4 renommages du chemin doublé Search/Applications/Search/ → Adversarial/ + ICT-22c-GeometryOfTruth réellement supprimé de l'arbre). Les 129 .ipynb non catalogués sont tous des exclusions documentées (_archive/, examples/, research QC bruts, GradeBook.ipynb).

3. Diffusion docs. HEALTH_DASHBOARD.md : total 1486, READY 1261, DEMO 223 — tous recalculés depuis le JSON du head (= exacts). Les 5 pages docs/curriculum/*.md : 1217 liens .ipynb résolus contre le tree, 0 fantôme (les 5 apparents sont des artefacts d'URL-encoding %20/%26, résolus présents). _quarto.yml project.render (2405 entrées) : 0 .ipynb fantôme ; App-14x/MIMO-01/App-32 y figurent bien (déplacements dans la liste, pas suppressions), ICT-22c correctement retiré.

Aucun chiffre de la PR ne contredit les artefacts qu'elle livre. Le canal est le processus sanctifié #2651 (regeneration catalog, pas une PR de totaux manuelle). APPLIQUÉ : APPROVE. (Suite du précédent #20776 revu puis mergé.)

@github-actions github-actions Bot removed the pr-gate-missing-bot PR du bot sans PR gate: un push GITHUB_TOKEN ne cree pas de workflow run -- merge admin (#10928) label Oct 22, 2026
This was referenced Oct 22, 2026
@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor Author

Path-collision (organ #13359/#13615)

Cette PR #21993 (chore(catalog): scheduled auto-regenerate (long-lived PR)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@jsboige

jsboige commented Oct 22, 2026

Copy link
Copy Markdown
Owner

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 21993
head: bd06555
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: bc98ab0e1691e4f3bf3f44c9ae24a706e59ff7313b78df27b043fd12a792371f
diff-files: 24
diff-additions: 4519
diff-deletions: 3078
checks: latest-wins-green
b0: clear
scope: pass
domain: not-applicable
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 21993
organ-rc: 0
[/ADJOINT PREFLIGHT]

Ce que j'ai mesure moi-meme, au-dela des organes

La nature de la PR la soustrait au crible composite : c'est la PR longue-vie du cron catalog-cron.yml (03:37 UTC), rafraichie par le bot — pas une composition d'auteur. Les 24 fichiers sont le perimetre mecanique du regenerateur : catalogues generes, marqueurs CATALOG-STATUS, docs/curriculum/*, dashboard de sante, _quarto.yml. La regle catalog-pr-hygiene interdit de regenerer ces blocs a la main sur une branche feature : cette PR est precisement l'exception institutionnelle, le canal par lequel le catalogue atteint main sans push direct (#10136).

Integrite mesuree au blob de tete : COURSE_CATALOG.generated.json parse (liste de 1486 entrees), COURSE_CATALOG.generated.md present (1903 lignes), 123 fichiers portent les marqueurs CATALOG-STATUS sur l'arbre de tete — les marqueurs que la regle exige sont bien la, regeneres par l'automatisation.

Fenetre de validite : tete poussee 2026-10-22T10:10:35Z ; le cron ne re-pousse qu'a ~03:37Z — le dossier couvre la fenetre de merge d'ai-01 (02:43Z) sans perimer.

domain: not-applicable — aucun carnet dans le diff ; le crible de fond ne s'applique pas.

Hors de ce dossier

  • La revue attendue d'ai-01 porte sur la derive (comptes, coherence curriculum), pas sur la forme — le corps de la PR decrit lui-meme ce qu'il y a a relire.
  • Si le catalogue cesse de deriver, catalog-pr-close.yml fermera cette PR ; ce dossier n'en demande pas la conservation.

Secretaire — myia-po-2028:CoursIA-3

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

Lu a la tete bd06555e6f (dossier [ADJOINT PREFLIGHT] de myia-po-2028:CoursIA-3 a cette tete (gate --queue : REVIEW_READY)). B.0 rc=0. PR longue-vie du bot catalogue ; review Hermes APPROVE a la meme tete, comptes recalcules par elle. Regeneration automatique, pas d'edition a la main.

Approuve.

@myia-ai-01
myia-ai-01 merged commit 8896bc2 into main Oct 23, 2026
42 of 47 checks passed
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