CLI sdlc/sdlc.js¶
La CLI est l'unique point d'écriture autorisé sur le registre .product/sdlc-registry.json. Toute transition d'état d'un Business Epic, d'une Feature ou d'un Récit passe par elle. Elle effectue trois opérations indissociables à chaque transition :
- Vérification des préconditions et évaluation des invariants/checks (verdict GO / NEEDS-REVIEW / NO-GO).
- Mise à jour atomique du registre + écriture d'un événement markdown dans
.product/.events/. - Commit git automatique qui scelle la transition.
Règle cardinale
Toute modification directe de sdlc-registry.json en dehors de cette CLI est une violation de l'invariant. Le hook git pre-commit refuse ces modifications (voir Invariant sécurité).
Invocation¶
Depuis la racine du projet consommateur (qui embarque le kernel comme submodule) :
Hors submodule (exécution directe dans ce repo kernel) :
Commandes¶
status — vue d'ensemble du registre¶
Affiche, par type (BE / FE / US), la liste des objets du registre avec leur statut courant, la porte active, le badge de chaleur (LIVING / LIVING-GELÉ / COLD) et le titre. Commande lecture seule.
init — créer un objet¶
type:be,feouusid: identifiant unique (ex:BE-I,FE-I-1,US-I-1-3)titre: libellé concaténé (tout l'argumentaire après l'id)--parent: obligatoire pourfe(parent BE) etus(parent FE). Optionnel pourbe.
L'objet est créé en statut NOT_STARTED (méta-état NOT_STARTED, heat indéfini). Aucune porte n'est franchie — la commande ne produit qu'un ajout dans le registre.
check — inspecter les transitions possibles¶
Pour chaque transition autorisée depuis le statut courant, affiche :
- La porte franchie (G1 … G4, ou Re-G1 dans la boucle MVP→G1)
- La checklist des préconditions humaines
- Les artefacts qui seront gelés (→ COLD) à la transition
- L'évaluation automatisée (invariants + checks) avec verdict GO / NEEDS-REVIEW / NO-GO
Commande lecture seule — usage recommandé avant chaque move.
move — transitionner¶
Exécute la transition si elle est autorisée par la machine d'états :
- Vérification structurelle : la transition
from → toexiste dansTRANSITIONS[type]. Sinon, refus et liste des transitions valides. - Évaluation automatisée : invariants + checks de la porte. Si verdict NO-GO, refus (sauf
--force). - Checklist interactive : si la porte a des préconditions humaines et
--forcen'est pas passé, demande confirmationoui/non. Si warnings, rappel explicite avant confirmation. - Commit de la transition : écriture du registre, génération de l'événement markdown, commit git
chore(sdlc): <ID> <FROM>→<TO> [<PORTE>].
Options :
| Option | Rôle |
|---|---|
--force |
Ignore la checklist humaine et le verdict NO-GO (usage exceptionnel, tracé dans l'historique) |
--message "..." |
Note libre ajoutée à l'historique et à l'événement |
--no-git |
Saute le commit automatique (utile en environnement CI ou reprise manuelle) |
log — historique des transitions¶
Affiche, dans l'ordre chronologique, toutes les transitions subies par l'objet : date, porte, from → to, artefacts gelés, note éventuelle, snapshot des checks si évalué à ce moment-là. Commande lecture seule.
validate — cohérence du registre¶
Vérifie que :
- chaque objet a un type valide (
be/fe/us) - chaque statut est connu dans le schéma pour son type
meta_statusest cohérent avecstatus(dérivé depuisschema.js)- chaque FE et US a un parent existant et du bon type
Retourne code 0 si cohérent, 1 sinon. Usage recommandé en pre-commit hook et en CI.
Exit codes¶
| Code | Signification |
|---|---|
0 |
Succès (ou annulation volontaire par l'utilisateur) |
1 |
Erreur : transition refusée, objet inconnu, registre corrompu, parent invalide, validation échouée |
Variables d'environnement¶
| Variable | Rôle |
|---|---|
SDEG_PROJECT_ROOT |
Force la racine du projet consommateur. Utile en tests ou exécution hors submodule. Si absente, la racine est calculée comme __dirname/../.. (suppose un montage en submodule à .sdeg/sdlc/). |
Artefacts produits¶
| Fichier | Responsable | Contenu |
|---|---|---|
.product/sdlc-registry.json |
saveRegistry |
État courant + historique de chaque objet |
.product/.events/YYYY-MM-DD-sdlc-<id>-<statut>.md |
writeEvent |
Trace humaine-lisible de la transition |
Relations¶
- Source de vérité :
sdlc/schema.js— META, TYPES, STATES, TRANSITIONS. - Évaluation automatisée :
sdlc/evaluator.js— lit le registre + le projet pour produire le verdict par porte. - Intégration IA : la CLI n'est jamais appelée par un agent IA. Elle est l'action humaine consciente qui matérialise une décision prise dans la conversation.
Voir aussi : Machine d'états · Les 4 portes · Invariant sécurité.