Repository navigation
[EPIC] Site GitHub Pages jsboige.github.io/CoursIA — audit & refonte (navigation, parcours, rendu notebooks) #10921
Description
État mesuré au 2026-10-05 — consolidation de l'EPIC (#10921)
Ce bloc préfixe sans refermer l'EPIC. Cinq PRs mergées depuis le 2026-10-01 ne sont pas consignées dans le corps ci-dessous (signal vérifié à l'organe
scripts/epic_body_staleness.py, fenêtre 26/09 → 05/10). Posture non contredite — l'EPIC reste guidé par les 4 axes de travail initiaux ; les 5 PRs s'y insèrent sans contredire la pose.Cinq PRs non consignées dans le corps ci-dessous :
PR Date merge Sujet Axe de rattachement #18970 2026-10-04 Fix(site,#18911): moulinette ipynb_links + garde CI bloquante STALE_LINK#10922 (liens de séries), #10925 (audit moteur Quarto) #18912 2026-10-03 feat(site,#18423): couverture résiduelle complète + garde zéro-non-couvert #10923 (notebooks servis en JSON brut → couverture résiduelle) #18765 2026-10-04 feat(preflight,#18208): learner_preflight.pypar profil parcours#10924 (navigation / parcours) #18710 2026-10-02 fix(site,#18422): étendre regen_quarto_render.pypour rendredocs/*.mden HTML#10925 (audit moteur Quarto : .mdservis bruts)#18429 2026-10-01 fix(site,#18421): 58 notebooks hr-bloques convertis ---vers***+ regen_quarto.yml(1181 rendus)#10923 (notebooks servis), #10925 (moteur) Portée vérifiée : la correction ne touche ni le constat user 2026-08-14 (« site mauvais »), ni la méthode obligatoire (Playwright + vision), ni les 4 axes initiaux. Les 5 PRs livrées s'inscrivent dans les axes existants comme des clôtures d'axes ou des gardes associées. Aucune ne ferme l'EPIC : les axes restent à honorer au complet (Playwright, visionneuse, parcours guidé, audit moteur).
L'EPIC reste OPEN — le critère « Chaque notebook est consultable via une visionneuse » (#10923) demande la bascule
notebook-preview: trueou un wrapper équivalent ; le critère « Parcours guide l'apprenant » (#10924) attendlearner_preflight.pyactivé par parcours ; le critère « Audit visuel Playwright documenté » n'a pas de PR fusionnée de mesures visuelles depuis le 2026-08-14 (lane po-2023 : séquence Playwright à reprendre).
Epic — Audit et refonte du site GitHub Pages jsboige.github.io/CoursIA
Constat user (2026-08-14) : le site publié récemment est « très mauvais » — il ne fait pas honneur à la qualité du contenu du dépôt. La navigation est difficile et met en avant des docs techniques obscures sans guider l'apprenant dans les parcours. Pour les parcours, certains notebooks ont des liens, d'autres non ; surtout, les notebooks sont affichés comme des ressources JSON brutes là où GitHub propose une visionneuse qui rend correctement markdown, code et sorties.
Nature du travail : long terme. Il aboutira à modifier autant le contenu du dépôt (liens, prose, navigation) que le moteur qui génère les pages github.io (workflow Quarto + config + scripts).
Méthode obligatoire — Playwright + vision, jamais text-only
- Audit visuel Playwright obligatoire sur chaque page clé : navigation, rendu des notebooks, liens (pas de test text-only).
- Lanes CoursIA-2 uniquement pour l'audit : MiniMax M3 et son failover Deepseek ont la vision (contrairement à GLM, lanes CoursIA) — ce sont les modèles de choix. Un QA visuel sur une lane sans vision = angles morts persistants (cf cluster-agents.md, routage capability-driven).
- Chaque finding est vérifié firsthand (Playwright + capture) avant de devenir une issue.
Constats vérifiés (grounding 2026-08-14, lane myia-po-2023:CoursIA-2)
- Liens de séries cassés (7/12) sur
MyIA.AI.Notebooks/index.qmd: GenAI, Probas, SymbolicAI, QuantConnect, CaseStudies, IIT, SemanticKernel (+cross-series/) pointent vers../<Serie>/README.md→ résolvent à la racine du site (https://jsboige.github.io/CoursIA/GenAI/README.md) où les séries n'existent pas → 404 confirmé Playwright (GenAI : "File not found"). Les 5 liens qui marchent (Search/README.md, etc.) sont relatifs dansMyIA.AI.Notebooks/et réécrits en.htmlpar Quarto. - Notebooks servis en JSON brut :
notebook-preview: falsedans_quarto.yml(L455) → les.ipynbsont copiés tels quels dans_site/(outputs embedded), le navigateur affiche le JSON source au lieu d'une visionneuse. Confirmé Playwright :Search-1-StateSpace.ipynb= page de 422 KB de JSON brut. - Navigation ne guide pas l'apprenant : la navbar met en avant les séries techniques (Search, Sudoku, GameTheory, Probas, Documentation) ; le lien "Parcours" est enterré.
parcours.qmdliste les séries en texte brut sans liens et les chemins n'incluent pas le préfixeMyIA.AI.Notebooks/. - Moteur de génération à auditer :
.github/workflows/quarto-pages-deploy.yml(Quarto 1.7.32, freeze: auto,notebook-preview: false),scripts/regen_quarto_render.py(liste de rendu ~383 README), et le rendu des.mdnon-README :COURSE_CATALOG.generated.mdest servi brut (markdown texte, confirmé Playwright 88 KB) alors qu'il est lié depuis la page d'accueil.
Axes de travail (issues filles)
- Liens de séries cassés (7/12) sur MyIA.AI.Notebooks/index.qmd — 404 confirmé Playwright #10922 — Liens de séries cassés (7/12) sur
MyIA.AI.Notebooks/index.qmd(bug) - Notebooks affichés en JSON brut (notebook-preview: false) — implémenter une visionneuse type GitHub #10923 — Notebooks affichés en JSON brut (
notebook-preview: false) (bug) - Navigation / parcours — guider l'apprenant dans les parcours, pas les docs techniques #10924 — Navigation / parcours : guider l'apprenant, pas les docs techniques (
documentation) - Audit moteur Quarto — workflow deploy, render list, .md non-README servis bruts #10925 — Audit moteur Quarto (workflow deploy + render list + .md servis bruts) (
documentation) - (les issues suivantes se créent au fil de l'audit visuel Playwright)
Critères d'acceptation
- Chaque lien de série / parcours résout vers une page rendue (0
File not foundvérifié Playwright). - Chaque notebook est consultable via une visionneuse rendant markdown + code + sorties (type GitHub viewer), pas le JSON brut.
- Le parcours guide l'apprenant : chemin recommandé explicite, liens vers les séries correctement préfixés.
- Les fichiers
.mdnon-README liés depuis des pages du site sont rendus (HTML) ou retirés de l'UI. - Audit visuel Playwright documenté par page (captures + verdict) sur le dashboard RooSync — jamais de rapport commité dans le repo.
Grain:+prev:dans chaque PR (variation-protocol), une PR = un sujet.
Labels
EPIC (parapluie). Les issues filles portent documentation / bug selon leur nature.
Activity
fix(#10923): normaliser les --- de cellules markdown en *** (54 noteb…
feat(site,#10923): pilot rendering of Search/ notebooks in HTML (glob…
docs(site,#10959): taxonomie — SemanticKernel décomptée des séries ni…
feat(site,#10923): pilote rendu HTML notebooks Search — infra _quarto…
feat(quarto,#10923): etendre render a Sudoku+GameTheory+Probas (151 n…
feat(site,#10925): rendre COURSE_CATALOG.generated.md en HTML + trigg…
feat(quarto,#11335): durcir scripts/quarto_csharp_kernel_fix.py — DRI…
feat(quarto,#10923): tranche 6 SymbolicAI/Planners + SymbolicLearning…
feat(quarto,#10923): tranche 13 Lean+FallacyDetection+cross-series (3…
jsboige commentedon Aug 26, 2026
Audit de l'acceptance sur le site live (po-2027:CoursIA-2, Playwright, 2026-08-26 — l'EPIC est muette depuis 11 j, les 4 filles sont CLOSED, 12+ PRs mergees ; il fallait la verification publiee).
Verdicts par critere d'acceptance
Le residu precis (critere 2)
Le travail en tranches de #10923 (#10972 pilote, #11567, #11606 SymbolicAI/Lean...) a produit des rendus HTML, mais les READMEs de series continuent de lier les .ipynb bruts : sur les deux series mesurees (Search, RL), 32/32 liens notebook menent au JSON. Le site a donc deux populations : des pages rendues isolees (accessibles seulement en connaissant l'URL) et l'experience dominante depuis les READMEs = JSON brut.
Le geste manquant n'est pas de rendre plus de notebooks — c'est de re-brancher les liens des READMEs (
.ipynb->.htmlquand le rendu existe) et/ou d'etendre la render-list aux notebooks effectivement listes. Une regle de decision est attendue : soit la couverture render-list couvre 100% des notebooks listes dans les READMEs (et les liens basculent), soit les READMEs marquent explicitement les non-rendus.Proposition : issue fille dediee au re-branchage de liens READMEs (mesure initiale : sweep HEAD systematique par serie, la methode de cet audit est reproductible en une page Playwright par serie).
feat(site,#13025): render-list-vs-README rule + regen + re-branch Sea…
jsboige commentedon Aug 30, 2026
Grain: MED/slides — lane myia-po-2027:CoursIA-2 — prev: LIGHT/docs #13123
[CLAIMED] lane myia-po-2027:CoursIA-2 -- paths: parcours.qmd, styles.css
Sous-grain visuel de #10921, steering ai-01 du 2026-08-30. Grounding Playwright live :
parcours.htmlrend deux H1 « Parcours d'apprentissage » successifs (frontmatter title + H1 body), puis trois longues sections textuelles sans vue comparative ni CTA de choix. Les liens sont vivants ; le défaut est l'expérience de sélection, pas le routage.Critères de sortie :
parcours.qmd+styles.css, body avec preuves visuelles etSee #10921.Collision guard : aucune PR ouverte sur
parcours.qmd/styles.css, aucun claim actif #10921 au grounding.[RELEASED] lane myia-po-2027:CoursIA-2 -- paths: MyIA.AI.Notebooks/GenAI/Aspire/AgentGuard.Analyzers/, MyIA.AI.Notebooks/GenAI/Aspire/AgentGuard.Demo/, MyIA.AI.Notebooks/GenAI/Aspire/AgentGuard.Verifier/**, MyIA.AI.Notebooks/GenAI/Aspire/06-Aspire-GardeFous-Roslyn.ipynb -- AGENTGUARD004 deferre en deep-queue suivante : steering visuel ai-01 #10921 prime avant ACK/edition, aucun travail worker perdu.
feat(parcours,#10921): refonte visuelle parcours.qmd + styles.css
fix(parcours,#13704): 3 CTA destinations distinctes au lieu de /READM…
3 remaining items
feat(notebook-tools,#10921): instrument README .ipynb link rendering …
jsboige commentedon Sep 8, 2026
Verification c.305 - label candidate-delivered retire : EPIC vivant avec claims cross-lane actifs, pas un delivered-urn.
Diagnostic : 20+ PRs MERGED referencant #10921 (refonte visuelle parcours.qmd, navigation, rendu notebooks HTML, audit link render, etc.). MAIS le ticket a 2 CLAIMED-AMEND recents :
Le ticket est explicitement concu comme EPIC de refonte progressive du site GitHub Pages. La refonte est en cours par po-2026 - le label candidate-delivered a ete pose par co-occurrence de mots avec PRs MERGED, mais le ticket reste actif (EPIC vivant, non clos par user).
Pas de full delivery au sens Closes : le ticket est un EPIC vivant concu pour porter les tranches de la refonte du site. Ticket reste OPEN.
Tell c.304-L1 sustained : 23ᵉ cas. Pattern EPIC vivant = #8182 + #10921 + #1650 (umbrella) : l'advisory ne distingue pas EPIC long-terme des delivered-urns one-shot. Matcher devrait verifier le statut claim EPIC vivant avant de poser le label.
jsboige commentedon Sep 14, 2026
[CLAIMED-RELEASE] lane myia-po-2026:CoursIA-2 -- residuel = _quarto.yml L1264 'notebook-preview: false' (ticket strategique moteur Quarto, non un guard-tranche).
Suite au dispatch ai-01 du 2026-09-14T11:16 (msg-20260914T091656-2rwnxe) : ma claim dormante (12 jours) a deja retreci le scope (de 'instrument + scan + lot' a 'check_notebook_link_render.py seul') apres mesure firsthand -- mais le verdict que cette mesure nomme ('_quarto.yml, notebook-preview: false L1264 -- repeindre une jambe de bois sur les READMEs sans corriger la source') est un changement de moteur Quarto du site jsboige.github.io/CoursIA, pas un guard CI.
Je libere pour deux raisons :
Si le coordinateur decide que ce grain reste dans mon scope, je le reprends -- mais l'arbitrage precedent de mon propre scope etait le bon (retrecir apres mesure), et il pointe vers une lane a contexte strategique site.
jsboige commentedon Sep 29, 2026
[INFO] Re-audit visuel du site (Playwright + snapshots, 2026-09-29) — verdict par constat du body du 2026-08-14 :
Résolus (vérifiés firsthand) :
Search/Part1-Foundations/README.html,ML/README.html, etc.) sont rendues et liées depuis la home.parcours.htmlrendu, 3 parcours + passerelles, liens fonctionnels vers séries et catalogue.COURSE_CATALOG.generated.htmlrendu et lié depuis home + docs + parcours.Constat 2 (notebooks servis en JSON brut) — partiellement actif, décomposé en 3 causes mesurées (chiffres : 1454 notebooks git-tracked, 1123 dans la render-list fraîche) :
---seul dans une cellule markdown casse le parse YAML de Quarto → le regen les exclut silencieusement (ex mesurés :ML/1-Introduction.ipynb→ 404 ;Probas/Infer-3-Factor-Graphs.ipynb→ JSON brut). → Site Pages : 58 notebooks exclus du rendu par la garde hr-separator (#11451) — conversion *** + regen #18421 (fix borné : conversion***+ regen).NOTEBOOK_SUBTREES, jamais inclus — dont QuantConnect 221, Complexity 10, NLP 4, GenAI/00-Environment 6, GenAI/Security 6, SymbolicAI/Geometry 4. → Site Pages : 263 notebooks hors NOTEBOOK_SUBTREES jamais rendus (QuantConnect 221, Complexity, NLP, Geometry...) #18423 (décisions de périmètre).docs/*.mdservis en markdown brut, liés depuis des pages rendues (docs/index.qmd: 18 liens ;docs/ict/README.md: 27 liens ; mesuré :regles-vigilance-detail.mdbrut,.html= 404). Observation user du 2026-09-29 confirmée firsthand. → Site Pages : docs/*.md servis en markdown brut depuis les pages rendues (197 fichiers) #18422.Cas témoin positif :
Search/App-1-NQueens.htmlrendu de bout en bout (code + sorties réelles « Solution 8-Reines » + tables).L'EPIC reste ouverte (constat 2 actif) — les trois issues filles portent le travail restant.
fix(site,#18421): convertit les separateurs --- des 58 notebooks hr-b…
fix(twin-parity,#18429): re-attester les 27 paires mises en drift par…
fix(site,#18421): convertit les separateurs --- des 58 notebooks hr-b…
fix(twin-parity,#18429): re-attester les 27 paires mises en drift par…
feat(site-pages,#18423): etendre NOTEBOOK_SUBTREES a 7 nouveaux sous-…
feat(site-pages,#18423): etendre NOTEBOOK_SUBTREES a 7 nouveaux sous-…
fix(site,#18421): convertit les separateurs --- des 58 notebooks hr-b…
fix(twin-parity,#18429): re-attester les 27 paires mises en drift par…
fix(site,#18421): blocs hr convertis --- vers *** dans 40 notebooks +…
fix(site,#18422): etendre regen_quarto_render.py pour rendre docs/*.m…
feat(preflight,#18208): learner_preflight.py par profil parcours (#18765