ADR 0049 : la v0.1.0 garde son périmètre intégral — Must / Should / Could ordonne, ne retire rien
Status: Accepted (tranché par @gilmry le 2026-09-12)
Date: 2026-09-12
Track: Pilotage / Release
Authors: @gilmry (décision) + Claude Opus 5 (rédaction)
Related:
RELEASE.md(registre d’état Foyer),docs/BACKLOG_STRUCTURE_v0_1_0.md,docs/WBS_v0_1_0.md, décision du 2026-09-06
Contexte
La décision du 2026-09-06 avait mis l’intégralité des issues ouvertes au périmètre du tag v0.1.0. Elle a été prise avant que le chiffrage existe.
Depuis, le backlog a été restructuré par capacité et chiffré : 10 épopées, 32 capacités, 73,25 j de wall-clock superviseur et 293 tours, en bornes hautes de première passe. Le périmètre était donc engagé sur une intuition, et rien ne l’avait réexaminé une fois le coût sur la table. Le pilote Foyer a inscrit ce réexamen comme arbitrage 🔴 au registre d’état.
Trois modalités ont été présentées :
Option |
Périmètre |
Issues |
Jours |
Tours |
|---|---|---|---|---|
A |
tout |
84 |
73,25 |
293 |
B |
sans les |
45 |
39,75 |
159 |
C |
les |
22 |
19,75 |
79 |
(Le backlog a été généré à 85 issues ; #840 a été fermée le même jour. Les jours et tours sont ceux du document généré, non recalculés.)
Décision
Option A — le périmètre reste intégral. Les 84 issues ouvertes restent au tag v0.1.0. Aucune capacité n’est reportée en 0.2.0.
La décision du 2026-09-06 est donc confirmée, et non plus seulement héritée : elle a maintenant été opposée à son coût.
Pourquoi
Le classement MoSCoW était déjà conçu pour ordonner, pas pour retirer. Le
backlog l’écrit dans ses propres termes : « un Could ici veut dire en
dernier, pas hors release ». Sortir les Could reviendrait à utiliser un
instrument de séquencement comme un instrument de coupe — et à perdre
l’information que le rang portait.
L’ordre rend le périmètre intégral tenable. Le rang 1 à 8 place le harnais
de recette d’abord, puis ce qui expose des données, puis le noyau légal, et
laisse les Could en dernier. Un périmètre intégral exécuté dans cet ordre
n’a pas le même risque qu’un périmètre intégral exécuté à plat : si le temps
manque, ce qui reste à faire est déjà ce qui compte le moins, sans qu’aucune
décision de coupe ait eu à être prise à l’avance.
Couper maintenant coûterait un revirement plus tard. Les 73,25 j sont des bornes hautes de première passe, que le CSI doit resserrer story après story sur le réel observé. Retirer 39 issues sur la foi d’un chiffrage qu’on sait non resserré serait trancher avec la donnée la plus faible dont on disposera jamais.
Conséquences
Ce qui est engagé
Les 84 issues restent étiquetées
release:0.1.0. Le WBS et le backlog structuré n’ont pas à être régénérés : ils décrivaient déjà ce périmètre.L’ordre des rangs 1 à 8 devient la séquence d’exécution de la release, et non une suggestion.
Ce qui reste ouvert
Le backlog n’est toujours pas « Agent IA Ready ». 7 issues sur 84 portent les huit éléments (
scripts/backlog-pret.py) ; 25 portent les quatre classes de tests. Le livrable BMAD porteetat: NON SIGNÉ. Trancher le périmètre ne prépare pas les stories : l’étape 4 de la phase A reste due.Le socle n’est pas vert.
e2eest 🔴 (#872). La phase B du parcours exige un vert connu avant d’empiler la release ; le périmètre intégral ne change pas cette précédence, il l’aggrave.
Ce qui rouvrirait cette décision
Le resserrement du chiffrage par le CSI. Si le réel observé écarte significativement les bornes hautes, la question du périmètre se repose — avec, cette fois, une donnée solide. Cette ADR n’interdit pas ce réexamen : elle enregistre qu’à la date du 2026-09-12, avec les bornes hautes pour seule information, la coupe n’était pas justifiée.
Arbitrage conduit selon .foyer/pilote/arbitrage.md : l’agent a assemblé la
preuve et présenté les modalités, l’humain a tranché.