PD-276 — Specification Review (v2)¶
Vérification des 11 écarts v1¶
- ECT-02 (
deriveKeyvsvalidateParams) : RESOLU - ECT-01 / ECT-06 (INV-276-08 probatoire explicite) : RESOLU
- ECT-03 (E-06 HTTP 422) : RESOLU
- AMB-04 (politique LEGACY phase 1) : RESIDUEL
- AMB-09 (borne
< 100 ms) : RESIDUEL - ECT-05 (transition LEGACY -> TAMPERED testée) : RESIDUEL
- ECT-06 (CA-276-12 aligné probatoire) : RESOLU
- ECT-11 (baseline non-régression) : RESOLU
- ECT-08 (hypothèse Prolog + vérification consommation) : RESOLU
- SEC-07 (audit log contractualisé) : RESIDUEL
- ECT-10 (référence Epic PD-189) : RESOLU
Écarts résiduels / nouveaux¶
Type : Contradiction Référence : PD-276-specification.md (INV-276-07, Flux F4, Stratégie migration phase 1, Machine à états) ; PD-276-tests.md (TC-NOM-12, TC-NOM-13) Description : Le contrat combine (a) vérification préalable du metadata_tag avant tout accès logique avec refus en cas d'invalidité, et (b) accès lecture seule autorisé des états LEGACY (metadata_tag IS NULL) en phase 1. En parallèle, la transition LEGACY_NULL_TAG -> TAMPERED_TAG_INVALID est déclarée autorisée sans règle contractuelle explicite distinguant "tag absent" et "tag invalide" dans le flux d'accès. Impact : Risque d'implémentations divergentes (acceptation, refus, ou transition d'état différente) pour un même cas LEGACY, donc auditabilité contractuelle fragilisée. Gravité : Majeur Statut v1 : RESIDUEL
Type : Non testable Référence : PD-276-specification.md (Machine à états ; Flux F4) ; PD-276-tests.md (TC-NOM-13) Description : Le scénario LEGACY_NULL_TAG -> TAMPERED_TAG_INVALID repose sur "incohérence binding détectée" sans observable contractuel permettant de reproduire de façon déterministe la condition de détection pour un état par définition sans tag. Impact : Test non reproductible a priori selon les environnements/outils, donc preuve d'acceptation potentiellement contestable. Gravité : Majeur Statut v1 : RESIDUEL
Type : Ambiguïté Référence : PD-276-specification.md (Flux F4, SLA temporels, E-06, CA-276-08) ; PD-276-tests.md (TC-ERR-07, section 8 Observabilité) Description : La borne < 100 ms est qualifiée "de bout en bout" pour la décision de rejet, mais le périmètre de mesure n'est pas contractuellement borné (point de départ/arrêt exacts), alors que la validation repose sur t_req/t_decision. Impact : Interprétations différentes du SLA de sécurité et verdicts de conformité incohérents entre équipes d'audit. Gravité : Mineur Statut v1 : RESIDUEL
Type : Incohérence Spec↔Tests Référence : PD-276-specification.md (CA-276-08, INV-276-05) ; PD-276-tests.md (matrice section 2, TC-NOM-04) Description : Le test TC-NOM-04 (création/persistance du tag, longueur 32 bytes) est rattaché à CA-276-08 (vérification avant accès + refus HTTP 422 sur invalidité) alors que le comportement testé relève du binding en création et non du contrôle d'accès. Impact : Traçabilité critère->preuve fragilisée ; validation d'acceptation potentiellement contestable lors d'un audit tiers. Gravité : Mineur Statut v1 : NOUVEAU
Type : Hypothèse dangereuse Référence : PD-276-specification.md (H-276-07) ; PD-276-tests.md (TC-NOM-01/05/10/13, section 8 Observabilité) Description : Les journaux d'audit horodatés/signés sont traités comme prérequis externe "couvert par d'autres stories" alors qu'ils constituent une preuve attendue dans plusieurs tests contractuels de PD-276. Impact : Si le prérequis n'est pas effectivement disponible au moment de la campagne, la story peut devenir non démontrable ou non conforme sans défaut intrinsèque de l'implémentation demandée. Gravité : Majeur Statut v1 : RESIDUEL
Type : Ambiguïté Référence : PD-276-specification.md (Q-276-01, INV-276-03) Description : Le point Q-276-01 reste ouvert et indique explicitement que les maxima Argon2 pourraient modifier INV-276-03, alors que ces bornes sont contractualisées dans les invariants et utilisées comme base des scénarios de conformité. Impact : Instabilité du contrat de référence ; risque de divergence entre implémentation tierce et audit si la décision intervient après exécution des tests. Gravité : Majeur Statut v1 : NOUVEAU