| Non-conformité Spec | Spec §5.6 / Plan §4.1 (DA-01, migration PD282-AddEnvelopeSealColumn.ts) | La spécification contractualise « Aucune stratégie de migration DDL applicable », alors que le plan introduit explicitement une migration DDL et une nouvelle colonne envelope_seal. | Rupture de conformité contractuelle directe sur le périmètre de persistance. | BLOQUANT |
| Test irréalisable | Spec §5.4, INV-282-09, INV-282-10 / Tests TC-NOM-06, TC-INV-09, TC-INV-10 / Plan DA-02 | Le plan impose un INSERT atomique directement en SEALED sans état persistant UNSEALED, tout en se référant à une machine d’états UNSEALED/SEALED. Les transitions contractuelles incluant UNSEALED -> UNSEALED et la démonstration de UNSEALED -> SEALED ne disposent pas d’un mécanisme observable explicite dans le design décrit. | Les tests d’états contractuels ne sont pas démontrables de manière auditée et reproductible. | BLOQUANT |
| Non-conformité Spec | Spec §6 (ERR-*), §5.1.2 (status) / Plan §3 (Reserve ECT-02, « rejette si status=revoked », « spec sera amendée ») | Le plan introduit une règle de rejet OCSP_CERT_REVOKED non contractualisée dans la spécification actuelle et fondée sur un amendement futur. | Introduction d’un comportement de rejet non spécifié à date, contraire à l’exigence d’absence d’interprétation libre. | MAJEUR |
| Hypothèse implicite | Plan §3 « Mode B constitutive (non optionnelle) » / Plan §4.4 étape 8 « verification OCSP en ligne optionnelle » | Deux formulations incompatibles coexistent sur la nature de la vérification Mode B (constitutive vs optionnelle). | Ambiguïté d’implémentation et de validation, avec risque de résultats divergents en audit tiers. | MAJEUR |
| Couverture manquante | INV-282-07 / Test TC-INV-07 / Plan §3 (Adressage INV-282-07) | Le plan remplace la vérification d’un invariant de chiffrement au repos par un audit statique « absence de persistance ». Aucun mécanisme opérationnel n’est décrit pour contrôler le chiffrement au repos si des artefacts temporaires existent effectivement (DB/blobs/fichiers temporaires) dans des chemins d’exécution réels. | Invariant non négociable partiellement couvert et contournement possible non détecté. | MAJEUR |
| Code Contract — Invariant | Code contracts: envelope-seal-pipeline.invariants_techniques, offline-verification.invariants_techniques, hash-extension.invariants / Spec INV-282-* | Plusieurs invariants techniques de code contract ne sont pas un sous-ensemble explicite des invariants contractuels de la spec (ex. contraintes d’implémentation bas niveau et comportements techniques non normatifs). | Glissement du périmètre contractuel et difficulté d’audit de conformité stricte. | MAJEUR |
| Code Contract — Forbidden | Code contracts: envelope-seal-pipeline.forbidden (« Utiliser Math.random() ... crypto.randomUUID() obligatoire ») / Spec PD-282 | Pattern interdit ajouté sans ancrage explicite dans la spec PD-282 ni dans une exigence sécurité formalisée dans les invariants de la story. | Ajout de contrainte normative non contractualisée pour cette story. | MINEUR |
| Contrainte technique non documentée | Plan §6 Dépendances externes | Les dépendances inter-PD sont listées avec statuts Disponible/A ajouter, mais pas avec les statuts contractuels attendus DONE / TODO / STUB acceptable. | Traçabilité de readiness inter-PD partiellement ambiguë pour audit formel. | MINEUR |