Aller au contenu

V1 — Bootstrap

Commit de référence : c8fb668 — « init: kernel SDEG v1.0.0 — 15 skills, coach agent, hooks Copilot, CLI sdlc »

Contexte

Le kit naît d'un constat accumulé sur plusieurs projets : les agents IA (Copilot, Claude) sont remarquables pour produire du contenu, mais catastrophiques pour maintenir la cohérence d'un projet long. Ils oublient, ils défont, ils confondent l'essai et la décision.

L'intuition initiale : séparer ce qui est confié à l'IA (la rédaction, l'exploration, la proposition) de ce qui reste humain et tracé (la décision, la gravure, la mémoire). Cette séparation doit être mécanique, pas contractuelle.

Décisions structurantes

Décision 1 — Une machine d'états déterministe

Un registre .product/sdlc-registry.json encode l'état de chaque objet (BE, FE, US) selon une machine d'états définie dans sdlc/schema.js. Toute transition passe par sdlc/sdlc.js. Voir ADR 0004.

Décision 2 — LIVING/COLD comme concept central

Chaque artefact a une température. Les portes font passer de LIVING à COLD. Voir ADR 0005.

Décision 3 — 15 skills Copilot, pas un serveur MCP

Les assistants spécialisés sont des fichiers .github/prompts/*.prompt.md lisibles, modifiables, versionnables. Voir ADR 0002.

Décision 4 — 4 hooks PowerShell

Le déterministe s'invite à des moments fixes : SessionStart, PreToolUse, PreCompact, Stop. Voir ADR 0003.

Décision 5 — Un agent orchestrateur plutôt que 15 skills autonomes

L'agent « Coach Développement Émergent » écoute l'utilisateur, identifie la porte active, appelle le skill approprié. Les skills ne sont jamais invoqués directement sans que le Coach ait validé la pertinence.

Pivots

  • Envisagé puis abandonné : intégration via plugin VS Code dédié. Trop de maintenance, trop de couplage à un IDE. Retenu : fichiers markdown lisibles par Copilot et Claude nativement.
  • Envisagé puis abandonné : registre en SQLite. Plus performant en théorie, mais impossible à diff en git, illisible en revue de PR. Retenu : JSON versionné.

Artefacts produits

  • sdlc/schema.js — machine d'états complète
  • sdlc/sdlc.js — CLI (status, init, check, move, log, validate)
  • .github/prompts/*.prompt.md — 15 skills
  • .github/agents/coach-emergent.agent.md — agent orchestrateur
  • scripts/hook-*.ps1 — 4 hooks PowerShell
  • scripts/bootstrap.ps1 — bootstrap pour les projets consommateurs

Leçons apprises

L'IA n'est pas mauvaise — elle est amnésique

La qualité d'un livrable d'IA dépend directement du contexte qu'elle reçoit. Le hook SessionStart qui injecte spiral-state.md est, en bénéfice effectif, plus important que la sophistication des prompts eux-mêmes.

La règle doit être mécanique, pas narrative

Écrire dans un prompt « L'IA ne doit pas éditer le registre » ne suffit pas. Il faut que le hook git pre-commit refuse le commit. La mécanique est la seule règle qui tient.

Le catalogue des skills doit être orchestré

Livrer 15 skills sans orchestration produit un paradoxe du choix : l'utilisateur ne sait pas lequel invoquer à quel moment. L'agent Coach, même minimal, est une pièce maîtresse — pas un luxe.

Le LIVING/COLD est un principe, pas un détail

Dès V1, la distinction est présente dans le code, dans la CLI, dans l'affichage. Son absence aurait produit un kit « classique » de gestion de tickets. Sa présence change la nature des conversations que le kit rend possibles.

Voir aussi : V2 — Portes exécutables · Vision / LIVING-COLD · ADR 0001.