Aller au contenu

PD-275 — Dossier de conformité (Gate 5 — AMBIGUITY v2)

1. Documents de référence

  • Spécification : PD-275-specification.md v2
  • Tests : PD-275-tests.md v2
  • Plan : PD-275-plan.md v2 (corrigé)
  • Code contracts : PD-275-code-contracts.yaml
  • Review v2 : PD-275-review-step5-v2.md (ChatGPT gpt-5.3-codex)
  • Confrontation v2 : PD-275-confrontation-step5-v2.md (Claude-p)

2. Écarts v1 corrigés

ID v1 Description Correction v2
BLK-01 FT4 séquencement batch créé avant contrôle signer assertSignerActive() déplacé AVANT createBatch() dans FT4
MAJ-01 SignerActiveGuard contradictoire avec BullMQ worker C8 supprimé du plan
MAJ-02 Autorisation revoke seulement au controller Double protection ajoutée (actorRoles dans service)
MAJ-03 C8 absent code contracts Résolu par suppression de C8

4/4 écarts v1 corrigés.

3. Écarts résiduels v2

Écarts MAJEURS (2 réels + 1 atténué)

ID Type Description Analyse
DIV-02 Incohérence Signature revokeSigner() dans C4 (4 params + actorRoles) vs FT3 (3 params sans actorRoles) Écart réel — le flux FT3 doit être aligné avec la signature service. Correction mineure à appliquer.
DIV-05 Design Double fenêtre vérification signer (pré-check + re-check) vs sérialisation unique spec F4 Atténué — le pré-check est une optimisation (évite createBatch inutile), le re-check transactionnel garantit la sérialisation INV-275-11. L'oracle TC-NOM-10 est satisfait par le re-check.
DIV-04 Complétude INV-275-09 (autorisation) absent des code contracts module signer-registry-service Écart réel — à ajouter. Correction triviale.

Écarts MINEURS (5)

ID Type Description
DIV-03 Anti-spoofing Couverture body only pour injection revokedBy (query/header marginaux — DTO NestJS ne mappe que body)
DIV-01 Terminologie PENDING_FINALITY vs NON_FINALIZED
DIV-06 Duplication Tests TC-ERR-02/04/05 doublons de TC-NOM
DIV-07 HTTP status 409 trompeur pour erreur interne BullMQ
ZO-05 Service account Identité service account pour revokedBy non traitée (Q-04 reconnue)

4. Scoring

Feasibility

  • DIV-05 (double fenêtre — atténué, design valide) : -0.5
  • DIV-02 (signature incohérente, correction triviale) : -0.5
  • Score : 10 - 0.5 - 0.5 = 9.0

Coverage

  • DIV-04 (INV-275-09 absent code contracts) : -0.5
  • DIV-06 (duplication tests) : -0.25
  • Score : 10 - 0.5 - 0.25 = 9.25

Risk Mitigation

  • ZO-05 (service account Q-04) : -0.25
  • DIV-03 (anti-spoofing body only) : -0.25
  • Score : 10 - 0.25 - 0.25 = 9.5

Coherence

  • DIV-01 (terminologie) : -0.25
  • DIV-07 (HTTP status) : -0.25
  • Score : 10 - 0.25 - 0.25 = 9.5

5. Résumé scoring

Critère Score v1 Score v2 Delta
feasibility 7.0 9.0 +2.0
coverage 8.75 9.25 +0.5
risk_mitigation 8.5 9.5 +1.0
coherence 9.5 9.5 0.0
Moyenne 8.438 9.3125 +0.875

6. Écarts à reporter

  1. DIV-02 : Aligner FT3 avec la signature service (ajouter actorRoles)
  2. DIV-04 : Ajouter INV-275-09 aux code contracts du module signer-registry-service