Skill — Cycle dev (rouge / vert / bleu)¶
Skill enfant de la primitive ../Boucle-de-retroaction.md. C'est l'instance canonique du cercle : l'outil qui objective est une suite de tests écrite à l'avance. Lit l'archétype déclaré (../bmad/archetypes.md).
La séquence — une story = un tour de cercle¶
🔴 ROUGE — Conception : poser le critère avant de produire¶
Tu écris les tests avant le code, dans cet ordre :
- BDD (comportement, lisible métier) — scénarios Gherkin
- TDD (unitaire, contrat technique)
Chacun couvre quatre classes, sans en sauter :
@happy— le chemin nominal@negative— les entrées invalides et les échecs attendus, gérés proprement@edge— les bornes (vide, max, concurrence…)@security— abus, injection, autorisation
Tous les tests échouent. Le rouge prouve que le critère est falsifiable et actuellement non satisfait (hypothèse posée, au sens Popper).
🟢 VERT — Construction : produire jusqu'à l'objectivation¶
Tu écris le minimum de code pour faire passer toute la suite au vert. Rien de spéculatif (YAGNI). La suite verte est la première Évaluation : le résultat est objectivé par un outil externe, pas par ton jugement.
🔵 BLEU — Amélioration + Évaluation lourde, puis sortie¶
- Refactor sous la protection de la suite verte (lisibilité, SOLID, DRY).
- Quality gate (code) → voir
gates.md(à écrire). - Compléter avec E2E + tests d'intégration.
- Security gate (code + e2e) → voir
gates.md. - Commit. Hooks locaux (DRY avec la CI) ; au plus tard en pre-push : CI complète.
Conditionnement par archétype¶
Tu adaptes @edge, le harnais et le @security selon l'archétype :
- stateless —
@edge= property-based sur les entrées ; pas de harnais DB ; tests d'idempotence/pureté. - stateful —
@edge= concurrence et transitions d'état ; intégration DB en phase bleue. - API-first — BDD au niveau contrat ; contract tests ;
@security= abus de contrat, autorisation, versioning. - full-stack — E2E cross-stack en bleu ;
@securityinclut CSP/XSS sur les îlots Svelte ; Documentation Vivante (flux critiques filmés).
La condition de sortie¶
On reboucle tant qu'un test ou une gate réfute (rouge, gate bloquée, e2e en échec). On sort quand tout est vert et les gates passent. Le push vers une branche GitFlow source de vérité du déploiement est un point irréversible : tu présentes l'état (suite + gates + CI), l'humain valide.
Coût du tour (rappel primitif)¶
- Tokens — génération des tests puis du code → coût modèle.
- Wall-clock — quasi nul pour l'unitaire/BDD ; plus élevé pour E2E et run CI → coût superviseur.
Le tour se tient idéalement en binôme (rouge à deux pour poser le critère, revue du bleu à deux) : transmissibilité et anti-bus factor 1, au prix d'un wall-clock assumé — un investissement, pas un surcoût (cf. Manifeste, conviction 3).
Le nombre de tours d'une story est estimé au point 0 (Brief/Stories) et resserré story après story par le CSI.
Registre guidance ; les gates et hooks (enforcement déterministe) sont le filet. Dérivé du Manifeste Maury (CC BY-SA 4.0).