| Non-conformité Spec | INV-282-03, CA-03 / Plan §3 (Reserve DIV-01), §4.2, §4.4 | Le plan accepte explicitement que signedAt ne soit pas couvert par le sceau global (champ dans envelopeSeal exclu du hash), alors que la spec impose qu’une modification d’un octet de l’enveloppe scellée invalide la vérification. | Rupture de l’intégrité contractuelle bout-en-bout ; contradiction directe avec invariant non négociable et critère d’acceptation. | BLOQUANT |
| Non-conformité Spec | Spec §4 (règles non négociables), §6 ERR-* / Plan §3 (OCSP revoked — “ajout contractuel”, “spec sera amendée”) | Le plan introduit une règle de rejet status=revoked en indiquant qu’elle n’est pas encore contractualisée dans la spec actuelle. | Dérive contractuelle Plan↔Spec ; comportement implémenté potentiellement contestable en audit tiers tant que non présent dans le contrat canonique. | MAJEUR |
| Couverture manquante | INV-282-12, Spec §5.1.2 / Plan §4.2, §4.3, Code contracts module format-validation | La couverture explicite des validations format/longueur/casse n’est pas démontrée pour l’ensemble des champs verificationMaterial (notamment tsaCertificateChain[], eidasCertificateChain[], ocspResponses[].response, ocspResponses[].producedAt, ocspResponses[].status, validationTimestamp). | Invariant de rejet explicite hors format potentiellement incomplet ; exposition à des acceptations partielles non conformes. | MAJEUR |
| Test irréalisable | TC-NOM-04, CA-08, section “Observabilité requise” / Plan §7 | Le plan ne définit pas de point d’observabilité explicite prouvant l’absence totale d’appels réseau ProbatioVault en Mode A (preuve technique de “zero dépendance PV”). | Le test contractuel d’air-gap peut rester non démontrable en audit externe. | BLOQUANT |
| Hypothèse implicite | Plan §2 DA-03, §4.4 (steps hash + verify), Code contracts offline-verification | Le couplage “pré-hash SHA3-384 + signature raw HSM” avec vérification Node (createVerify/verify) n’est pas spécifié de façon non ambiguë sur l’entrée exacte vérifiée (digest vs message canonicalisé). | Risque d’écart cryptographique (double-hash ou non-interopérabilité) non détecté avant exécution ; fragilise la testabilité contractuelle. | MAJEUR |
| Code Contract — Invariant | Code contracts (hash-extension, envelope-seal-pipeline, offline-verification) / règle d’audit axe 6 | Plusieurs “invariants” des code contracts dépassent le sous-ensemble des invariants de la spec (ex. format interne de hash, contraintes d’implémentation non contractuelles). | Rupture de traçabilité normative : invariants techniques mélangés aux invariants contractuels ; ambiguïté d’audit. | MAJEUR |
| Code Contract — Forbidden | Code contracts (envelope-seal-pipeline forbidden: Math.random() etc.) / Spec §4-§10 | Certains patterns forbidden ne sont pas justifiés explicitement par la spec ou une exigence sécurité contractualisée. | Sur-contrainte non contractuelle ; risque de non-conformité documentaire en revue tierce. | MINEUR |
| Contrainte technique non documentée | Exigence §7 (statut dépendances inter-PD DONE/TODO/STUB) / Plan §6 | Les dépendances inter-PD sont listées avec statut “Disponible”, mais pas selon le statut demandé (DONE/TODO/STUB acceptable). | Ambiguïté de statut de dépendances ; traçabilité de préparation technique incomplète. | MINEUR |