Ligne de commande
CLI npx aiad-sdd — installer et outiller
Les commandes slash vivent dans l'agent ; la CLI aiad-sdd vit dans le terminal et la CI. Elle installe le SDD Mode, le maintient à jour, et fournit les verdicts déterministes (traçabilité, parité multi-runtime, état du projet) qui transforment les rituels en mesures.
Installation en 1 minute
npx aiad-sdd init
Une seule commande installe dans votre projet : la structure .aiad/ (PRD, ARCHITECTURE, AGENT-GUIDE, intents, specs, métriques), les 4 agents de gouvernance Tier 1 (AI-ACT, RGPD, RGAA, RGESN) et l'agent CRA livré en complément pour les produits logiciels, les 33 commandes slash et les 9 skills pour Claude Code et le fichier CLAUDE.md configuré. Puis, dans l'agent : /sdd init pour démarrer le cadrage.
| Option | Effet |
|---|---|
--sans-gouvernance | Initialise sans les agents de gouvernance Tier 1. |
--minimal | Profil AIAD-Lean : 4 commandes (intent / spec / gate / drift-check). |
--upgrade <module> | Ajoute un module au profil minimal : rituals, metrics, gouvernance ou all. |
--runtime <list> | Runtime IA ciblé : claude-code (défaut), cursor, codex, copilot, gemini, kiro (depuis la 1.19.0, transmis à emit-rules), all. |
--with-git-hooks | Installe le hook pre-commit (Drift Lock) en même temps. |
--dry-run / --force | Aperçu sans écrire / réinitialisation en écrasant l'existant. |
npx aiad-sdd update — mettre à jour
Met à jour les commandes slash et les agents de gouvernance vers la version courante du package, en préservant vos fichiers : vos artefacts .aiad/ (PRD, Intents, SPECs, métriques) ne sont jamais touchés. Options : --sans-gouvernance pour ne pas toucher à la gouvernance, --dry-run pour l'aperçu, --check en CI (exit 1 si le projet diverge du package).
Les agents de gouvernance viennent du paquet et update les écrase ; une adaptation locale ne sera plus jamais perdue en silence. init et update écrivent un manifeste .aiad/gouvernance/.aiad-shipped.json (empreinte SHA-256 de chaque agent tel que livré) ; avant d'écraser un agent modifié localement, update le sauvegarde en AIAD-X.md.bak-AAAA-MM-JJ (puis -2, -3…). Un agent que vous avez ajouté vous-même n'est pas touché.
npx aiad-sdd status — état du projet
Affiche l'état SDD du projet directement dans le terminal : artefacts présents, cycle en cours, et score de maturité de 0 à 5 — de « non initialisé » à « complet ». Sorties --json (machine) et --markdown (collable dans une PR, Slack ou Notion).
npx aiad-sdd trace — traçabilité machine-vérifiable
Génère la matrice Intent ↔ SPEC ↔ Code ↔ Tests à partir des annotations @intent / @spec / @verified-by / @governance posées dans le code. C'est l'arbitre final du Drift Lock : la mesure remplace l'acte de foi.
npx aiad-sdd trace # matrice complète (md + json + html)
npx aiad-sdd trace --fail-on-gap # CI : exit 1 si gap bloquant
npx aiad-sdd trace --json # JSON brut sur stdout
| Option | Effet |
|---|---|
--fail-on-gap | Exit 1 si un gap bloquant est détecté (SPEC orpheline, SPEC validée sans code) — usage CI. |
--format <list> | Formats produits : md, json, html (tous par défaut). |
--out <dir> | Dossier de sortie (défaut : .aiad/metrics/traceability/). |
--watch | Régénère la matrice à chaque changement (intent / spec / code). |
--suggest | Crée un squelette de SPEC pour chaque SPEC orpheline référencée par le code. |
npx aiad-sdd emit-rules — multi-runtime
Régénère les fichiers de règles de tous les runtimes IA depuis la source amont unique (.aiad/AGENT-GUIDE.md + .aiad/gouvernance/) : AGENTS.md, le header de CLAUDE.md, .cursor/rules/*.mdc, .codex/AGENT.md, GEMINI.md et, depuis la 1.19.0, les fichiers de steering .kiro/steering/aiad*.md. Une seule modification dans l'AGENT-GUIDE, et Claude Code, Cursor, Codex, Copilot, Gemini et Kiro restent alignés.
npx aiad-sdd emit-rules # toutes les cibles
npx aiad-sdd emit-rules --runtime kiro # un runtime précis
npx aiad-sdd emit-rules --check # CI : exit 1 si divergence
Chaque fichier généré porte le header DO NOT EDIT et un source-hash SHA-256 : une modification manuelle sera écrasée à la prochaine génération, et détectée par le --check en CI. Toute règle se modifie dans l'AGENT-GUIDE ou la gouvernance, jamais dans une cible.
Exit codes : 0 / 1 / 2
La CLI suit une convention à trois états, alignée sur la politique d'incertitude JNSP du framework :
| Code | Sémantique |
|---|---|
0 | Succès / verdict PASS. |
1 | Échec, erreur ou verdict FAIL. |
2 | Verdict JNSP — décision humaine requise. Ce n'est pas une erreur : la commande a détecté une situation non décidable (intent flou, critère non testable, gouvernance ambiguë, fichier illisible) et refuse de trancher à la place de l'humain. |
Ce troisième code permet à la CI de distinguer « bloqué en attente d'un humain » d'un vrai bug — il est notamment émis par les scorers déterministes du cycle (research, discovery-check, mini-gate, et bientôt gate-precheck).
npx aiad-sdd gate-precheck — pré-contrôle de la Gate (à paraître)
Prochaine version — à paraître. Pré-contrôle déterministe de l'Execution Gate, lancé par /sdd gate avant tout scoring SQS. Il lit hors modèle la section « Périmètre d'exécution de l'agent » de la SPEC ; seule une déclaration structurée peut fermer la Gate, des mots-clés sensibles en prose ne produisent qu'un avertissement.
npx aiad-sdd gate-precheck <SPEC-id> # verdict lisible
npx aiad-sdd gate-precheck <SPEC-id> --json # verdict machine
| Verdict | Exit | Cas | Effet sur la Gate |
|---|---|---|---|
PASS | 0 | Section absente (avertissements éventuels), « Non applicable », ou tableau complet et cohérent. | Le scoring SQS peut commencer. |
FAIL | 1 | Action irréversible déclarée sans seuil d'arrêt ; credentials ou ressource partagée en écriture sans isolation ni sorties réseau déclarées. | Gate FERMÉE, sans scoring ; les manques forment le plan de remédiation. |
JNSP | 2 | SPEC introuvable, ou une des six lignes du tableau absente (isolation, sorties réseau, credentials, ressources partagées, actions irréversibles, seuil d'arrêt). | Gate INCONNUE : la question est posée à l'humain. |
Intégrations CI — GitHub Actions
Deux workflows fournis verrouillent les invariants du SDD Mode en pull request :
| Workflow | Rôle |
|---|---|
.github/workflows/sdd-trace.yml | Invoque aiad-sdd trace --fail-on-gap sur chaque PR — un gap bloquant de traçabilité fait échouer la pipeline (Drift Lock algorithmique). |
.github/workflows/aiad-emit-rules-check.yml | Invoque aiad-sdd emit-rules --check — bloque toute PR où les fichiers de règles multi-runtime divergent de l'AGENT-GUIDE. |
Hooks
La commande npx aiad-sdd hooks installe le hook Git pre-commit (et --uninstall le retire). Les hooks fournis dans .aiad/hooks/ ferment la boucle entre l'agent et le dépôt :
pre-commit.sh— bloque tout diff contenant unTODO-JNSP:non résolu et applique le Drift Lock avant commit. Le bypassgit commit --no-verifyexiste mais est déconseillé.session-start.js— exécuté à l'ouverture d'une session agent pour charger le contexte SDD initial.discovery-gate.js— vérifie le prérequis Discovery (§3.5) :/sdd specet/sdd execne démarrent pas sans une Research liée en verdictGO/CONDITIONAL GO.
La CLI expose d'autres outils de support — doctor (diagnostic + score de santé), footprint (empreinte tokens mesurée par SPEC, depuis la 1.19.0), guardrails (matrice enforced / advisory des garde-fous), commands (registre catégorisé des commandes), dashboard (le dashboard HTML décrit dans /aiad dashboard-html), gouvernance (mise à jour des agents Tier 1), uninstall… La référence exhaustive est disponible via npx aiad-sdd help.