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.

Options principales de npx aiad-sdd init
OptionEffet
--sans-gouvernanceInitialise sans les agents de gouvernance Tier 1.
--minimalProfil 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-hooksInstalle le hook pre-commit (Drift Lock) en même temps.
--dry-run / --forceAperç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).

Prochaine version — à paraître

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
Options de npx aiad-sdd trace
OptionEffet
--fail-on-gapExit 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/).
--watchRégénère la matrice à chaque changement (intent / spec / code).
--suggestCré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
Ne pas éditer les fichiers émis

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 :

Convention d'exit codes de la CLI
CodeSémantique
0Succès / verdict PASS.
1Échec, erreur ou verdict FAIL.
2Verdict 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
Verdicts et codes de sortie de gate-precheck
VerdictExitCasEffet sur la Gate
PASS0Section absente (avertissements éventuels), « Non applicable », ou tableau complet et cohérent.Le scoring SQS peut commencer.
FAIL1Action 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.
JNSP2SPEC 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 :

Workflows GitHub Actions fournis
WorkflowRôle
.github/workflows/sdd-trace.ymlInvoque 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.ymlInvoque 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 un TODO-JNSP: non résolu et applique le Drift Lock avant commit. Le bypass git commit --no-verify existe 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 spec et /sdd exec ne démarrent pas sans une Research liée en verdict GO / CONDITIONAL GO.
Et bien plus

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.