test(seo): guard llms.txt, llms-full.txt and index.html metadata against the curriculum - #416
Conversation
…nst the curriculum The files that describe the curriculum to AI assistants and search engines had no test. A new guard compares them with curriculum.ts: module and lesson counts, module titles, and each lesson's title and URL, in order. Its first run found 10 lesson titles in llms-full.txt that had been renamed since (one GitHub lesson, nine AI lessons); they now match the curriculum. Mutating a count in each file turns the matching guard red. Phase 5d, lot 0b. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Sorry @thierryvm, you've used your own review budget of 250,000 diff characters for the last 7 days.
You can request another review in 1 day and 2 hours by commenting @sourcery-ai review. Upgrade to get a review now.
Guide du reviewerCette PR ajoute un garde-fou Vitest piloté par le curriculum, qui maintient la synchronisation de Diagramme de séquence de l’exécution du garde-fou des métadonnées du curriculumsequenceDiagram
participant Test as publicCounters.test.ts
participant Curriculum as curriculum.ts
participant LLMs as public/llms.txt
participant Full as public/llms-full.txt
participant Index as index.html
Test->>Curriculum: Lire les données des modules et des leçons
Test->>LLMs: Vérifier les nombres, les titres et les URL des leçons
Test->>Full: Vérifier les nombres, les titres des leçons et les URL
Test->>Index: Vérifier les nombres de métadonnées des modules et des leçons
alt les métadonnées correspondent au curriculum
Test-->>Test: Les tests Vitest réussissent
else métadonnées obsolètes détectées
Test-->>Test: Les tests Vitest échouent
end
Diagramme de flux des vérifications de cohérence des métadonnées du curriculumflowchart LR
Curriculum[curriculum.ts]
Guard[src/test/publicCounters.test.ts]
LLMs[public/llms.txt]
Full[public/llms-full.txt]
Index[index.html metadata]
Result{Tous les nombres, titres et URL correspondent}
Curriculum --> Guard
LLMs --> Guard
Full --> Guard
Index --> Guard
Guard --> Result
Result -->|pass| CI[CI verte]
Result -->|fail| Fix[Mettre à jour les métadonnées publiques]
Modifications au niveau des fichiers
Conseils et commandesInteragir avec Sourcery
Personnaliser votre expérienceAccédez à votre tableau de bord pour :
Obtenir de l’aide
Original review guide in EnglishReviewer's GuideThis PR adds a curriculum-driven Vitest guard that keeps Sequence diagram for curriculum metadata guard executionsequenceDiagram
participant Test as publicCounters.test.ts
participant Curriculum as curriculum.ts
participant LLMs as public/llms.txt
participant Full as public/llms-full.txt
participant Index as index.html
Test->>Curriculum: Read module and lesson data
Test->>LLMs: Check counts titles and lesson URLs
Test->>Full: Check counts titles lesson titles and URLs
Test->>Index: Check module and lesson metadata counts
alt metadata matches curriculum
Test-->>Test: Vitest tests pass
else stale metadata detected
Test-->>Test: Vitest tests fail
end
Flow diagram for curriculum metadata consistency checksflowchart LR
Curriculum[curriculum.ts]
Guard[src/test/publicCounters.test.ts]
LLMs[public/llms.txt]
Full[public/llms-full.txt]
Index[index.html metadata]
Result{All counts titles and URLs match}
Curriculum --> Guard
LLMs --> Guard
Full --> Guard
Index --> Guard
Guard --> Result
Result -->|pass| CI[CI green]
Result -->|fail| Fix[Update public metadata]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Phase 5d, lot 0b. The files that describe the curriculum to AI assistants and search engines (
public/llms.txt,public/llms-full.txt) and the "11 modules" in theindex.htmlmetadata were checked by no test.src/test/publicCounters.test.tscompares them withcurriculum.ts:llms.txt: module and lesson counts, each module's title, and every lesson URL of each module, in order;llms-full.txt: the same counts, each module's title and lesson count, and each lesson's title and URL in the tables;index.html: every "N modules" and "N leçons".llms-full.txt(one GitHub lesson and nine AI lessons, renamed since). They now match the curriculum.Gates run locally:
tscclean, lint clean, vitest 3030 passed / 20 skipped, build OK.🤖 Generated with Claude Code
Résumé par Sourcery
Maintenir synchronisées les descriptions publiques du programme avec le programme source et éviter que des métadonnées obsolètes liées au SEO et à l’assistant IA ne passent inaperçues.
Corrections de bugs :
public/llms-full.txtafin que les descriptions du programme restent exactes.Améliorations :
llms.txt,llms-full.txtetindex.htmlavec le programme source, notamment le nombre de modules et de leçons, les titres, les URL et l’ordre.Documentation :
Tests :
Original summary in English
Résumé par Sourcery
Maintenir synchronisées avec le programme source les descriptions publiques du programme utilisées par les moteurs de recherche et les assistants IA.
Correctifs :
public/llms-full.txtafin que la description publique du programme corresponde au programme actuel.Améliorations :
llms.txt,llms-full.txtetindex.html.Documentation :
Tests :
Original summary in English
Summary by Sourcery
Keep the public curriculum descriptions used by search engines and AI assistants synchronized with the source curriculum.
Bug Fixes:
public/llms-full.txtso the public curriculum description matches the current curriculum.Enhancements:
llms.txt,llms-full.txt, andindex.htmlmetadata.Documentation:
Tests: