ADR-043 : Documentation embarquée du cœur et du CLI, renommage forge_cli → cli¶
Statut¶
Accepté.
Contexte¶
L'ADR-038 a embarqué la documentation des 12 opt-ins dans chaque paquet
(packages/<pkg>/docs/), agrégée au build par mkdocs-monorepo.
Le cœur (core/) et le CLI de génération (forge_cli/) gardaient, eux, toute
leur documentation dans un dossier docs/ central et hétérogène (~330 pages
mêlant référence, guides, tutoriels, ADR, mémoire).
Cette asymétrie va à rebours du principe 11 (une seule façon de faire) : la
référence d'un module devrait vivre à côté de son code, comme pour les opt-ins.
Décision¶
-
Renommer le paquet
forge_cliencli.
Refactor de code isolé (imports,pyproject.toml, package-data, tests,
hooks), validé par la suite complète avant tout travail de
documentation. Le point d'entréeforge = "forge:cli_entrypoint"est
inchangé. -
Embarquer la RÉFÉRENCE par module à côté du code.
Pour chaque sous-paquet decore/et decli/, créer un dossierdocs/
contenant un fichier.mdpar fichier.pyà API publique.
Exemple :core/app/docs/<module>.md(monté sous/core-app/<module>/).
Contrairement aux opt-ins (qui ont aussi unwelcome/), ledocs/du cœur
et du CLI ne contient que la référence : le niveaureferences/est donc
inutile et omis (les fichiers sont directement à la racine dedocs/).
Ces docs sont agrégées au site unique parmkdocs-monorepo(!include),
comme les opt-ins. -
Seule la référence migre dans le code.
Les pages conceptuelles et transverses (guides, concepts, tutoriels
starters/, ADR,history/, gouvernance, philosophie) ne correspondent à
aucun fichier.py: elles restent centralisées dansdocs/.
Seul le contenu dedocs/reference/*qui documente un module précis est
déplacé verscore//cli/. -
Formalisme unique.
Toute documentation, nouvelle comme migrée, suit le gabarit
core/http/docs/request.md(titre# … dans Forge, mention du
fichier.pysource, sections numérotées pédagogiques, tables d'API,
exemples, « Contextes d'utilisation », « Voir aussi »).
La directive de style francophone (CHARTE §2.1 : une phrase par ligne, pas
de tiret cadratin) s'applique aux deux.
Conséquences¶
- Symétrie totale : cœur, CLI et opt-ins documentent leur référence de la même
façon, à côté de leur code. - Le
docs/central se recentre sur le conceptuel, le pédagogique et la
mémoire (ADR, history). - Volume : ~125 pages de référence à écrire (65 modules cœur + 60 CLI),
phasées sous-paquet par sous-paquet. CLAUDE.mdmentionne encoreforge_cli(fichier protégé, hors périmètre des
agents) : à resynchroniser au prochain tag majeur.
Alternatives écartées¶
- Garder toute la doc dans
docs/: conserve l'asymétrie avec les opt-ins. - Migrer aussi les guides conceptuels dans le code : la plupart ne se
rattachent à aucun.py; forcer ce rattachement dégraderait la cohérence.