PD-278 — Specification Review (Gate 3)¶
Type : Contradiction Référence : PD-278-specification.md §5.1 (table event_type) + §6 (E-400-ID-FORMAT) + PD-278-tests.md TC-ERR-01 / TC-ERR-02 Description : Le document spécifie deux statuts HTTP incompatibles pour une enum invalide : 422 en §5.1 (event_type) et 400 en §6 (E-400-ID-FORMAT inclut « enum »). Impact : Oracle de test ambigu ; impossibilité d'établir un verdict contractuel unique sur la validation des enums. Gravité : Bloquant
Type : Contradiction Référence : PD-278-specification.md §5.1 (motif_communication optionnel) + §10.2 Q-03 Description : motif_communication est défini comme optionnel dans le contrat de données, alors que son caractère obligatoire/optionnel est simultanément déclaré « en suspens ». Impact : Règle métier contradictoire, comportement d'acceptation/rejet non stabilisé. Gravité : Majeur
Type : Non testable Référence : PD-278-specification.md §5.1 (cardinalité 1..N_MAX) + §5.6 + §10.2 Q-01 + PD-278-tests.md §9 / TC-ERR-08C Description : N_MAX n'est pas contractualisé ; la borne haute du package DIP n'a pas d'oracle vérifiable. Impact : CA-08 reste partiellement non testable ; acceptation formelle incomplète. Gravité : Bloquant
Type : Non testable Référence : PD-278-specification.md §10.2 Q-02 + PD-278-tests.md §9 Description : Les URI/méthodes exactes ne sont pas définies pour les scénarios API black-box. Impact : Exécution contractuelle indépendante impossible sans interprétation externe. Gravité : Majeur
Type : Ambiguïté Référence : PD-278-specification.md INV-278-05 + §5.3 + PD-278-tests.md TC-NOM-02 / TC-INV-05 Description : Le périmètre d'unicité de l'attestation n'est pas défini en multi-documents (unicité par transition, par package, ou par document). Impact : Risque de verdicts divergents entre implémenteurs/auditeurs sur CA-07 et INV-278-05. Gravité : Majeur
Type : Ambiguïté Référence : PD-278-specification.md INV-278-10 + PD-278-tests.md TC-INV-10 / §8 (observabilité sécurité) Description : « artefact cryptographique temporaire » n'est pas borné contractuellement (types d'artefacts, emplacements de stockage, durée de vie). Impact : Vérification de conformité chiffrement au repos non déterministe selon interprétation du scope. Gravité : Majeur
Type : Incohérence Spec↔Tests Référence : PD-278-specification.md INV-278-07 (lectures/exports DIP) + PD-278-tests.md TC-ERR-05, TC-NR-02, §8 Description : La spec couvre explicitement lectures et exports en DIP, mais les scénarios détaillés vérifient surtout refus d'accès/chemins DIP sans scénario contractuel explicite d'export probatoire. Impact : Une partie de l'invariant peut rester non démontrée avec des preuves de test insuffisamment explicites. Gravité : Majeur
Type : Incohérence Spec↔Tests Référence : PD-278-specification.md INV-278-04 (champs audit requis à chaque transition DIP) + PD-278-tests.md TC-NOM-03 / §3 Description : Pour DIP -> SEALED, la spec impose des métadonnées audit contractuelles strictes, alors que le test nominal ne liste que « métadonnées de corrélation » sans expliciter l'ensemble des champs requis. Impact : Critère d'acceptation CA-06 potentiellement validé avec une preuve incomplète. Gravité : Mineur
Type : Hypothèse dangereuse Référence : PD-278-specification.md §5.8 (audit synchrone ou async post-commit) + §6 (E-500-AUDIT) + §10.2 Q-04 + PD-278-tests.md TC-ERR-10 Description : Le contrat autorise deux modes d'écriture audit avec exigences d'échec différentes, sans trancher la politique de dégradation pour les traitements post-commit. Impact : Risque d'incohérence opérationnelle (même défaut pouvant produire succès différé ou échec atomique selon mode actif). Gravité : Majeur
Type : Risque sécu/conformité Référence : PD-278-specification.md §5.8 (ancrage/chaîne d'audit async post-commit) + learnings contextuels [PD-251] Description : L'ordre « journal signé avant transition » n'est pas garanti contractuellement ; l'ancrage est défini post-commit asynchrone. Impact : Fenêtre de contestation probatoire sur l'ordre des preuves en cas d'incident temporel. Gravité : Majeur
Type : Non testable Référence : PD-278-specification.md §5.5 (SLA configurable via variable d'environnement, référence production, P95) + PD-278-tests.md TC-NOM-05 Description : Les seuils SLA sont configurables sans valeur figée de campagne ; la référence « API backend en production » rend l'oracle dépendant du contexte d'exécution. Impact : Reproductibilité inter-environnements limitée ; verdict SLA contestable sans gel contractuel des paramètres. Gravité : Majeur
Type : Ambiguïté Référence : PD-278-specification.md INV-278-08 + §5.2 (EXPIRED -> * INTERDITE, mention « résolution manuelle uniquement ») Description : La mention « résolution manuelle uniquement » introduit un mécanisme implicite non défini alors que l'état est déclaré terminal strict. Impact : Interprétations divergentes possibles sur l'existence d'une voie exceptionnelle hors matrice. Gravité : Mineur
Type : Non testable Référence : PD-278-specification.md §5.2 (PENDING -> EXPIRED indiqué « INTERDITE dans cette story (inchangé existant non modifié)) + §10.2 Q-05 +PD-278-tests.md` §9 Description : Le comportement hors DIP dépend d'une baseline non référencée canoniquement ; la matrice globale reste partiellement indémontrable sans source normative unique. Impact : Validation contractuelle de non-régression des transitions historiques incomplète. Gravité : Mineur