PD-283-SPECIFICATION-REVIEW-V2
Oui — les 10 corrections annoncées sont bien présentes dans les textes fournis.
- E-01:
DELETED -> IDLEexplicite dans la table de transitions et dansTC-NOM-06. - E-02: garde
purge_okexplicite surFAILED -> PREPARINGdans les règles retour/downgrade. - E-03: fallback bandeau in-app ajouté dans
INV-283-04etCA-12. - E-04: tolérance
±5minalignée entreINV-283-04etCA-12. - E-05:
INV-283-12découplé deCA-10dans la matrice. - E-08:
INV-283-13reformulé et applicabilité iOS explicitée. - E-09:
exportId8défini comme 8 premiers caractères alphanumériques deexportId. - E-10:
ERR-09normalisé avec suffixes_2/_3/...sans abort conditionnel sur collision. - Tests ajoutés:
TC-ERR-10,TC-NOM-07,TC-NOM-08présents.
Écarts résiduels
Type : Contradiction
Référence : PD-283-specification.md §10 “Points à clarifier” (2,3,4) vs §3.3 + §4 INV-283-04 + §6 ERR-09
Description : La section “Points à clarifier” indique encore non défini : dérivation exportId-8, politique de collision, fallback notifications refusées, alors que ces éléments sont désormais contractualisés ailleurs dans la spec.
Impact : Source contractuelle non univoque (un même point est à la fois “défini” et “à clarifier”), risque d’interprétation divergente en audit tiers.
Gravité : Majeur
Type : Contradiction
Référence : PD-283-tests.md §9 “Règles non testables” (lignes exportId8, collision, fallback notifications) vs PD-283-specification.md §3.3, §6 ERR-09, §4 INV-283-04, §7 CA-12
Description : Le document de tests maintient ces règles comme “non testables / non spécifiées”, en contradiction avec la version spec transmise.
Impact : Verdict QA potentiellement invalide contractuellement ; impossibilité d’établir une base d’acceptation cohérente Spec↔Tests.
Gravité : Majeur
Type : Incohérence Spec↔Tests
Référence : PD-283-tests.md ST-08 vs PD-283-specification.md INV-283-04 / CA-12
Description : ST-08 ne formalise que le cas “notification délivrée à T0+24h”, sans branche explicite “permission refusée => bandeau in-app persistant”, et sans tolérance ±5min dans le Then.
Impact : Preuve de conformité partielle pour un invariant/CA désormais bifurqué (permission accordée vs refusée).
Gravité : Majeur
Type : Ambiguïté
Référence : PD-283-specification.md §3.3 “Nom archive finale / exportId8”
Description : “8 premiers caractères alphanumériques de exportId” ne précise pas le comportement si exportId commence par _/- ou contient moins de 8 alphanumériques exploitables (bien que regex global autorise _/-).
Impact : Nommage final potentiellement non déterministe ou impossible selon implémentation, avec risque de divergence entre équipes.
Gravité : Majeur
Type : Incohérence Spec↔Tests
Référence : PD-283-tests.md matrice de couverture INV-283-13 -> CA-13 ; PD-283-specification.md INV-283-13 vs CA-13
Description : Le mapping associe INV-283-13 (protection au repos des secrets temporaires) à CA-13 (absence de persistance de contenu clair hors .pvproof), qui ne porte pas explicitement la même observable de sécurité.
Impact : Traçabilité contractuelle affaiblie entre invariant et critère d’acceptation ; discussion d’audit possible sur la suffisance de preuve.
Gravité : Mineur
Type : Ambiguïté
Référence : PD-283-specification.md ERR-09
Description : ERR-09 impose continuation avec fichiers restants, mais le comportement n’est pas explicité si 100% des fichiers candidats deviennent rejetés après sanitization locale (cas limite distinct du 422 backend).
Impact : Issue de flux terminale potentiellement divergente (échec vs succès vide) et observables d’état non univoques.
Gravité : Mineur