feat(glossary): mise en place du glossaire mécanique + système de migration
Résumé
Mise en place du glossaire mécanique du wiki, inspirée du travail fait sur la branche glossaire de fyl-guidelines (git.oxyl.fr/BPI/FYL/fyl-guidelines!47 et sa branche de base), adaptée plutôt que recalquée telle quelle.
-
Pipeline générique (
scripts/generate-glossary.mjs+scripts/wiki-glossary/{fileWalker,logUndefinedAndStale}.mjs) : régénèrewiki/shared/glossary.jsondepuisraw/**/*.md+wiki/**/*.md, mécaniquement, jamais de LLM. Aucun extracteur concret fourni —scripts/wiki-glossary/parsers/index.mjsest un registre vide avec le contrat documenté ; chaque wiki y ajoute ses propres parsers selon ses besoins. -
Pas de module de fusion cross-source (
merge.mjssupprimé) : un parser reçoit tout le corpus en un seul appel et doit consolider lui-même ses résultats — un wiki avec un seul extracteur n'a besoin d'aucune fusion. -
wiki.config.jsongagne un champ optionnelglossary: {enabled, path}— purement additif, pas de migration nécessaire (voirmigrations/README.md, nouvelle section sur l'adoption du glossaire pour un wiki existant). -
agents/ingest: extraction du glossaire + vérification avant d'écrire une définition sont des étapes obligatoires (Steps 3 et 5), pour ne jamais halluciner une définition déjà connue. -
agents/consolidate-glossary(nouveau, optionnel, à la demande) : trie le backlogdescription: null— propose ou rejette, ne résout jamais unconflicts, ne se promeut jamais lui-même. - Docs mises à jour :
README.md,docs/wiki.config.md,docs/llm-wiki-INGESTION_GUIDE.md,docs/llm-wiki-schema.md,migrations/README.md. -
npm test(nouveau,node --test) : 9 tests couvrant la découverte de fichiers et la gestion des collisions d'id.