Skip to content

refactor(scripts): #15 scinder scripts/lib/helpers.js en modules mono-responsabilité

Mathéo ALLARD requested to merge refactor/15-scinder-helpers-modules into main

Contexte

scripts/lib/helpers.js (653 lignes, 22 fonctions exportées) mélangeait 7 responsabilités distinctes, contrairement à tous ses voisins de scripts/lib/. Seul module de scripts/lib/ sans aucun test.

Closes #15 (closed)

Découpage

Fonctions Nouveau module
log, error, success, info, warning scripts/lib/console.js
resolveStepReferences, collectStepNames, removeStepReferences, extractStepDescription scripts/lib/step-references.js
checkSubmoduleExists, loadTechsRegistry, resolveInheritanceChain, loadArchRegistry scripts/lib/tech-registry.js
loadAgentManifest, walkAgentFolders, loadAllManifests scripts/lib/agent-manifests.js
buildStepSkillFile, generateClaudeStepSkills scripts/lib/claude-skills.js
scanDir, buildDocsCategoryIndex, buildDocsInjectionBlock scripts/lib/docs-index.js
copyDirectory scripts/lib/fs-scan.js (rejoint son voisinage naturel)

Écart par rapport à la table proposée dans l'issue : buildPhase0Block est fusionné dans docs.js (son seul appelant) plutôt que déplacé vers docs-index.js. docs.js importait déjà buildPhase0Block depuis helpers.js, et helpers.js importait buildPhase0DocsBlock/humanizeFilename depuis docs.js — un cycle préexistant. Le placement retenu l'élimine au lieu de le déplacer entre deux nouveaux modules.

Tests

  • Chaque module créé embarque son test miroir sous tests/lib/, avec une couverture neuve sur les fonctions jusqu'ici non testées (loadAllManifests — fusion specific override shared, generateClaudeStepSkills — symlinks + cas d'erreur, checkSubmoduleExists, loadTechsRegistry, loadArchRegistry, copyDirectory, etc.).
  • Les tests unitaires historiquement logés dans tests/install-guidelines.test.js (scanDir, resolveInheritanceChain, resolveStepReferences, loadAgentManifest) sont relocalisés vers leur module ; ce fichier ne garde que les tests d'intégration du pipeline.
  • Tous les imports des 26 fichiers consommateurs mis à jour.

Test plan

  • npm run lint vert
  • npm test vert (236 tests, vs 182 avant)
  • node scripts/install-guidelines.js exécuté sur un projet témoin avant/après le split (main vs cette branche) : diff vide, hors timestamp d'installation et nom de dossier du projet

Merge request reports

Loading