Stack technique¶
Le kit est volontairement minimaliste : rien qu'une équipe ne puisse comprendre en une demi-journée, rien qu'un admin système ne puisse auditer. Pas de framework, pas de base de données, pas de service en ligne obligatoire.
Vue d'ensemble¶
flowchart LR
subgraph DEP[Dépendances zéro runtime]
N[Node.js ≥ 18]
P[PowerShell 7]
G[Git]
end
subgraph KIT[Composants du kit]
CLI[sdlc/*.js<br/>CLI + schéma]
HOOK[scripts/*.ps1<br/>hooks PowerShell]
PROMPT[.github/prompts/<br/>16 skills Copilot]
AGENT[.github/agents/<br/>1 agent orchestrateur]
end
subgraph DOC[Documentation]
MD[MkDocs Material<br/>+ plugins Python]
GEN[tools/docs/*.js<br/>générateurs Node]
end
N --> CLI
N --> GEN
P --> HOOK
G --> CLI
GEN --> MD
Dépendances runtime¶
| Composant | Version | Rôle | Pourquoi |
|---|---|---|---|
| Node.js | ≥ 18 | Exécuter sdlc/sdlc.js et les générateurs de doc |
Ubiquitaire, aucun package externe requis — uniquement la stdlib (fs, path, child_process). |
| PowerShell | 7+ (pwsh) | Exécuter les 4 hooks scripts/*.ps1 |
Multi-plateforme depuis PS7, manipulation JSON native, signature Microsoft disponible pour environnements stricts. |
| Git | ≥ 2.30 | Versioner le registre, poser les commits de transition, servir de mécanisme de submodule | Unique mécanisme pérenne pour distribuer le kit (voir ADR 0001). |
Aucun node_modules. Aucun npm install au runtime. Le kit clone → le kit marche.
Dépendances de documentation¶
Installées uniquement pour construire le site (requirements-docs.txt) :
| Paquet | Version épinglée | Rôle |
|---|---|---|
mkdocs |
1.6.1 | Générateur statique |
mkdocs-material |
9.5.49 | Thème, navigation, recherche FR, palette |
mkdocs-include-markdown-plugin |
7.1.2 | Inclusion chirurgicale via marqueurs <!-- BEGIN:x --> |
mkdocs-git-revision-date-localized-plugin |
1.3.0 | Date de dernière mise à jour par page (marqueur de fraîcheur) |
mkdocs-mermaid2-plugin |
1.2.1 | Diagrammes Mermaid (portes, états, archi) |
pymdown-extensions |
10.12 | Admonitions, snippets, tabs, tooltips |
Les versions sont épinglées pour éviter une régression silencieuse sur une mise à jour majeure de plugin (voir ADR 0007 — MkDocs Material).
Choix structurants¶
Prompts Copilot plutôt que MCP¶
Le kit livre 16 assistants spécialisés sous forme de fichiers .github/prompts/*.prompt.md. Ils s'invoquent dans GitHub Copilot Chat avec #nom. Pas de serveur MCP, pas de binding runtime.
Raison : un prompt Copilot est un fichier markdown qu'un dev lit, comprend, modifie. Un serveur MCP est un binaire opaque. Voir ADR 0002.
Schema.js comme source de vérité¶
La machine d'états (méta-états, transitions, portes, préconditions, invariants, checks) est encodée dans sdlc/schema.js — pas dans un document Markdown ni une base de données. La CLI et les générateurs de doc la lisent directement.
Raison : un schéma exécutable ne peut pas diverger de la doc qui le décrit, car la doc est générée depuis le schéma. Voir ADR 0004.
PowerShell pour les hooks¶
Les 4 hooks Claude Code sont en PowerShell, pas en Bash ni en Node.
Raison :
- Les projets consommateurs cibles sont majoritairement sous Windows (contexte entreprise).
- PowerShell 7 est multi-plateforme → les hooks tournent aussi en CI Linux si besoin.
- Manipulation JSON native via
ConvertFrom-Json/ConvertTo-Json, sans dépendance tierce.
Voir ADR 0003.
Distribution par submodule git¶
Le kit est consommé par un projet en étant cloné comme submodule dans .sdeg/. Pas de paquet npm, pas d'image Docker, pas de registry privé.
Raison : la traçabilité est première. Chaque projet consommateur sait exactement quelle commit du kernel il utilise, peut auditer la diff, peut rester sur une version si nécessaire. Voir ADR 0001.
Outils de documentation¶
Les 4 générateurs Node (tools/docs/) produisent le site depuis les sources faisant autorité. Ils sont idempotents et lecture seule sur les sources :
| Script | Source | Cible |
|---|---|---|
copy-embeds.js |
docs/as-is/*.html |
docs/assets/embeds/*.html |
gen-portes.js |
sdlc/schema.js |
docs/portes/p{N}-*.md + _annotations/p{N}.md |
gen-skills.js |
.github/prompts/*.prompt.md |
docs/skills/*.md |
gen-agent.js |
.github/agents/*.agent.md |
docs/skills/agent-coach-emergent.md |
Orchestrés par package.json :
npm run docs:gen # lance les 4 générateurs
npm run docs:serve # mkdocs serve (hot reload)
npm run docs:build # docs:gen + mkdocs build --strict
npm run docs:clean # rm -rf site .cache
Voir tools/docs/README.md pour le détail d'implémentation.
Ce que le kit ne contient pas¶
- Pas de base de données. Le registre est un fichier JSON versionné.
- Pas de serveur. La CLI est un processus Node qui vit le temps d'une commande.
- Pas d'API web. L'intégration avec un projet se fait par filesystem (registre + événements).
- Pas de secret. Rien à chiffrer, rien à rotate.
- Pas de télémétrie. Aucune donnée ne sort du projet consommateur.
Voir aussi : Vue d'ensemble architecture · CLI sdlc · Hooks · Invariant sécurité.