Aller au contenu

PD-277 — Plan d'implémentation : Revue

1. Références

  • PD-277-specification.md (v2)
  • PD-277-tests.md (v2)
  • PD-277-plan.md (v2)
  • PD-277-code-contracts.yaml (v2)

2. Constatations (écarts)

Type Référence (Spec/Test/Plan) Description Impact Gravité (BLOQUANT/MAJEUR/MINEUR)
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

3. Synthèse

  • Nombre d’écarts: 1 BLOQUANT, 3 MAJEURS, 1 MINEUR
  • Corrections v2 annoncées:
  • ECT-02, ECT-03, ECT-05, ECT-06, ECT-08: globalement traités
  • ECT-01: non sécurisé dans les artefacts fournis (désalignement persistant Spec/Plan/Contracts)
  • ECT-04: accepté (hérité PD-81) mais la frontière API reste ambiguë
  • Points critiques:
  • Aligner une seule vérité contractuelle sur le DDL certificats (DEFAULT '' oui/non) dans tous les artefacts.
  • Trancher définitivement le modèle nonce (serveur-only vs nonce fourni client) et harmoniser flux/tests/errors.
  • Verrouiller les frontières de modification (controller/repository) dans les code contracts pour supprimer les zones grises Gate 5.

4. Verdict de la revue

  • Statut : ❌ Non conforme
  • Motif synthétique : présence d’un écart bloquant de cohérence normative (DDL) et de plusieurs ambiguïtés majeures (nonce source, frontière API, immutabilité), empêchant de conclure à un plan pleinement exécutable et non ambigu au sens Gate 5.