| Incohérence normative DDL | Spec §6 (DDL contractuel), Plan C1/F4, Code contracts module pd277-migration | La spec fournie impose owner_certificate_id et recipient_certificate_id en NOT NULL sans DEFAULT, alors que le plan implémente DEFAULT '' ; en plus le code contract migration ne contractualise pas ce DEFAULT '' (il reste silencieux). | Ambiguïté de règle de conformité (Gate 5), risque de validation contradictoire en implémentation/tests/audit. | BLOQUANT |
| Contradiction source de génération du nonce | Spec §4 (génération serveur crypto.randomUUID() uniquement), Plan F2 + §6 (retry client avec nouveau nonce) | Le plan et les tests de flux supposent un nonce fourni/renouvelé côté client, contraire à l’exigence explicite “jamais côté client”. | Non-conformité fonctionnelle potentielle sur INV-277-01/02/03 et ambiguïté API/contrat d’entrée. | MAJEUR |
| Frontière API non stabilisée | Plan F2 (“nouveau endpoint ou méthode”), Plan §10 (hors périmètre: “aucune modification d’API/de contrôleur”), Code contracts (aucun module controller) | Le plan ouvre deux options incompatibles et ne contractualise pas la frontière controller/orchestrator correspondante. | Risque de dérive de périmètre et trous de ownership (agents), donc exécution non déterministe. | MAJEUR |
| Immutabilité certificats insuffisamment blindée | Spec INV-277-05, Tests TC-ERR-08 / TC-NEG-04, Plan C5, Code contracts pd277-rekey-repository | La protection est décrite surtout sur updateStatus() + garde service/DTO ; pas de garantie explicite contre autres chemins d’écriture repository/query builder hors ce flux. | Risque de contournement de l’immutabilité (fail-closed incomplet) selon le chemin d’accès data. | MAJEUR |
| Traçabilité documentaire partiellement désalignée | PD-277-code-contracts.yaml en-tête (“Source normative … plan v1”) vs plan v2 | Le fichier de contracts porte encore une référence de version antérieure. | Dette de traçabilité/audit (mineure mais pénalisante en gouvernance). | MINEUR |