Contrat public 1.0 (gel)¶
Gel de la surface publique avant
1.0.0.
Tickets :CLI-PUBLIC-CONTRACT-FREEZE-001,STARTERS-FINAL-CONTRACT-001,DOCS-LINKS-FINAL-AUDIT-001(Phase 1 de la roadmap beta.13).
Ce document fige ce qui constitue l'API publique de Forge pour la série 1.x.
Après 1.0.0, toute rupture de cette surface (renommage, suppression) passe par une release majeure (charte, règle C).
Avant 1.0, le gel sert à arrêter la valse de renommages et à donner un contrat stable aux premiers utilisateurs.
Un garde-fou, tests/meta/test_public_contract_1_0_001.py, verrouille mécaniquement les listes ci-dessous : toute dérive casse la suite.
1. Famille de commandes opt-in:* (gelée)¶
La famille canonique de gestion des opt-ins officiels, exactement 6 verbes :
| Commande | Axe | Effet |
|---|---|---|
forge opt-in:install <name> |
présence (+) | affiche la commande pip/pipx (n'exécute rien) |
forge opt-in:remove <name> |
présence (−) | affiche la désinstallation |
forge opt-in:enable <name> |
activation (+) | câblage réel (kind route) / conseil (library, crosscutting) |
forge opt-in:disable <name> |
activation (−) | inverse de enable |
forge opt-in:list |
lecture (projet) | état de câblage des opt-ins dans le projet |
forge opt-in:installed |
lecture (pip) | opt-ins réellement installés dans l'environnement (version) |
Décisions finales 1.0 :
enable/disablefont un câblage réel uniquement pour le kindroute(iot) ; pourlibrary(workflow, stats) etcrosscutting(mfa, rbac), ils sont informatifs (ADR-016 D8 + A1).
C'est le contrat 1.0, pas une étape intermédiaire.- Les anciennes commandes
optin:enable/optin:list(sans tiret) sont définitivement retirées.
2. Famille module:* (gelée, distincte)¶
Le système de module local (workflow d'auteur), exactement 4 commandes :
forge module:list, forge module:install, forge module:files, forge module:routes.
Décision finale 1.0 : module:* reste distinct de opt-in:* (ADR-016 A2), il sert à fabriquer un module local, pas à consommer un opt-in officiel.
Il n'est pas fusionné.
Un nom inconnu passé à opt-in:* oriente vers forge module:install.
3. Reste de la surface CLI¶
L'ensemble des commandes dispatchées est figé par tests/meta/test_cli_help_flags_closing_audit_001.py (ALL_DISPATCHED_COMMANDS).
Chaque commande publique a une aide riche (forge <cmd> --help) et une entrée dans cli-commands.md.
Les codes de sortie suivent la convention : 0 succès, 2 usage/argument, 1 erreur d'exécution.
4. Starters 1.0 (gelés)¶
La liste pédagogique est figée, à numéros uniques (la numérotation n'est plus une plage dense 1..N depuis ADR-025), nommée selon la convention <module>-welcome, first-*….
Depuis ADR-035, ces parcours se réalisent à la main : il n'existe plus de commande de génération de starter.
welcome-forge : trois niveaux en tutoriels continus (ADR-025, ADR-028)
Les trois niveaux de welcome-forge ne sont plus des starters buildables : chacun est un tutoriel continu manuel, un mini-projet écrit à la main palier après palier, débutant (11 paliers, ADR-025), intermédiaire (8 paliers, « Carnet de notes », ADR-028) et avancé (4 paliers, « Catalogue d'articles », ADR-028).
Ils ne figurent donc plus dans la liste gelée ci-dessous.
Les progressions par niveau qui couvrent les modules opt-in sont : welcome-iot (iot-welcome, …) pour forge-mvc-iot, welcome-video (video-welcome, …) pour forge-mvc-video, welcome-images (images-welcome, …) pour forge-mvc-images, welcome-files (files-welcome, …) pour forge-mvc-files, welcome-audio (audio-welcome, …) pour forge-mvc-audio (2 niveaux, sans état), welcome-mfa (mfa-welcome, …) pour forge-mvc-mfa (mécaniques TOTP, flux enrôlement/challenge/récupération, durcissement), welcome-rbac (rbac-welcome, …) pour forge-mvc-rbac (contrat déclaratif, vérification, guards, résolution par utilisateur), et welcome-workflow (workflow-welcome, …) pour forge-mvc-workflow (statuts, transitions, badges, sans état), et welcome-stats (stats-welcome, …) pour forge-mvc-stats (événements, schéma, tracking et consultation, SQL visible), et welcome-mail (mail-welcome, …) pour forge-mvc-mail (composition, transports, templates, configuration, diagnostic).
Les 10 opt-ins dotés d'un parcours ont chacun leur progression welcome-<module>.
audio-doctor, audio-play, audio-probe, audio-transcode, audio-upload, audio-welcome,
file-bytes, file-delete, file-rate-limit, file-safe-name, file-safe-path, file-serve, file-store, file-validate, files-welcome,
image-alt-order, image-attach, image-cover, image-delete, image-gallery, image-safety, image-upload, image-variants, images-welcome,
iot-api, iot-contract, iot-dashboard, iot-device, iot-doctor, iot-events,
iot-simulate, iot-subscriber, iot-welcome,
mail-config, mail-doctor, mail-message, mail-template, mail-transport, mail-welcome,
mfa-challenge, mfa-crypto, mfa-enroll, mfa-recovery, mfa-replay, mfa-revalidation, mfa-secret, mfa-verify, mfa-welcome,
rbac-check, rbac-guard, rbac-permission, rbac-request-roles, rbac-resolve, rbac-role, rbac-template, rbac-user-role, rbac-welcome,
stats-admin-sql, stats-event, stats-list, stats-normalize, stats-schema, stats-track, stats-track-sql, stats-validate, stats-welcome,
video-detail, video-doctor, video-list, video-playback, video-probe, video-status, video-transcode, video-upload, video-welcome,
workflow-available, workflow-badge, workflow-check, workflow-color, workflow-find, workflow-jinja, workflow-status, workflow-transition, workflow-welcome
Les anciennes applications métier lourdes ont été archivées hors du système starter.
Aucun ajout, retrait ni renommage de starter avant 1.0 sans mise à jour de ce contrat.
5. Liens documentaires¶
L'intégrité des liens internes de la documentation est garantie en continu par mkdocs build --strict, exécuté dans la suite de tests (tests/meta/test_install_docs_structure_001.py et autres).
Un lien cassé fait échouer la suite.
Aucun audit manuel séparé n'est requis : c'est déjà enforced.