refactor(scripts): porter la décomposition install-guidelines.js → scripts/steps/ + scripts/lib/
Contexte
oxa-guidelines a clôturé son EPIC::Modules (14 issues, oxa#194→#207) : scripts/install-guidelines.js est passé de 2269 lignes à un orchestrateur mince de 59 lignes, qui construit un ctx explicite et itère for (const step of steps) await step.run(ctx) sur scripts/steps/index.js.
Découpage à porter tel quel (pas de redesign)
-
scripts/steps/(18 steps, ordre = source de vérité dansindex.js) :clean, copy-docs-shared, resolve-tech-stack, build-docs-index, create-docs-specific, copy-agents-shared, create-agents-specific, migrate-existing-entry-points, create-templates-specific, load-manifests, generate-tool-files, generate-claude, generate-codex, generate-targets, install-tech-guidelines, save-tech-stack, generate-lock-file, summary. -
scripts/lib/:args, docs, errors, frontmatter, fs-scan, generated-paths, glob, helpers, targets, yaml+formatters/(cursor, copilot, claude-agent, claude-skill, agent-skills, antigravity, frontmatter-block). - Erreurs typées (
InstallError) remontées en un seul point dansinstall().
Généricité — point d'attention explicite
shared/guidelines nomme déjà son submodule lib/guidelines et n'a aucune référence à "oxa" dans ses logs/commentaires — le portage doit conserver cette généricité (pas de lib/oxa-guidelines, pas de "Syncing oxa-guidelines" dans les logs). Toute référence à oxa-guidelines doit rester cantonnée aux commentaires de traçabilité (// porté depuis oxa#197), jamais dans un nom de variable, de dossier ou un message utilisateur.
Hors périmètre
Les 6 issues actuellement ouvertes dans shared/guidelines qui touchent au même fichier (#1 (closed) codex, #7 (closed) chemin technos, #8 (closed) scanDir, #9 (closed) process.cwd(), #10 (closed) regex linkPath, #11 (closed) schéma metadata.json) ne sont pas résolues par ce portage — comportement actuel de shared préservé tel quel, triage collectif à faire séparément une fois le portage en place.
Objectif
-
scripts/install-guidelines.jsdevient un orchestrateur mince -
scripts/steps/contient les 18 steps +index.jscomme source d'ordre -
scripts/lib/contient les utilitaires partagés listés ci-dessus -
Contexte explicite ( ctx) passé en paramètre à chaquestep.run(ctx) -
Erreurs typées ( InstallError) remontées en un point unique -
npm run guidelines(ou équivalent shared) produit un diff vide sur un projet témoin par rapport au comportement actuel