Aller au contenu

PD-85 — Dossier de conformité Gate 5 (AMBIGUITY) — v1

Documents de référence

  • Spécification : PD-85-specification.md (266 lignes, corrigée v2)
  • Tests : PD-85-tests.md (323 lignes, non corrigés depuis Gate 3 v1)
  • Plan : PD-85-plan.md (331 lignes, Claude)
  • Code contracts : PD-85-code-contracts.yaml (384 lignes, Claude)
  • Review : PD-85-review-step5.md (ChatGPT gpt-5.3-codex)
  • Confrontation : PD-85-confrontation-step5.md (Claude)

Synthèse des écarts

Écarts BLOQUANTS (0)

Les 2 BLOQUANTS identifiés par la review sont reclassés MAJEUR après analyse :

  • Ex-BLOQUANT 1 (ordre taille vs invariants) : Le plan §9 "Ordre de traitement" liste explicitement 1→auth, 2→plan, 3→RLS, 4→taille, 5→invariants. Le flux F1 (§5.4 spec) est cohérent. La contradiction signalée est entre deux niveaux de détail du plan, pas une contradiction fonctionnelle. Reclassé MAJEUR (ambiguïté rédactionnelle).
  • Ex-BLOQUANT 2 (audit pré-service) : L'audit WORM pour 400/403 est couvert par un ExceptionFilter NestJS global (pattern standard). Le plan le mentionne en C6 mais ne l'explicite pas comme mécanisme dédié pour les rejets DTO/guard. Reclassé MAJEUR (couverture implicite mais non explicite).

Écarts MAJEURS (6 après consolidation)

ID Type Description Source
M-01 AMB Ordre de traitement (413 vs 422) : formulation ambiguë entre flux §5.4 et résumé §9 du plan Review
M-02 ECT Audit WORM pré-ExportService : mécanisme ExceptionFilter non explicité pour capturer 400/403 Review + Confrontation
M-03 AMB exportId pour rejets précoces (400/403) : génération/corrélation non contractualisée Review
M-04 ECT Contraintes format sortie (RFC3339, semver, regex) non mappées exhaustivement aux contrôles runtime Review
M-05 ECT Tests §9 obsolètes — ⅚ items "non testables" résolus dans spec v2 mais tests non mis à jour Confrontation
M-06 AMB Test framework (Jest) et ESM/CJS non documentés explicitement dans le plan Review

Écarts MINEURS (5)

ID Type Description Source
m-01 ECT DDL HT-04 (AuditActionType enum) vs spec "DDL non applicable" — scope technique, pas fonctionnel Review
m-02 ECT Code contracts invariants additionnels (coverage >=80%) hors périmètre spec Review
m-03 ECT Patterns forbidden non reliés formellement à la spec Review
m-04 AMB Variables CI pour tests d'intégration non documentées Review
m-05 AMB Dépendances inter-PD sans statut DONE/TODO/STUB explicite Review + Confrontation

Scoring

Critère Score Justification
feasibility 8.5 Plan techniquement solide : NestJS + TypeORM + S3 presign, chaîne synchrone cohérente, 10 composants bien découpés, DAG de dépendances pour parallélisation. Points de vigilance ECDSA/JCS/fail-closed correctement identifiés.
coverage 7.5 15/15 INV mappés, 14/14 CA couverts, 42 TC référencés. Mais : audit pré-service non explicité, format validation mapping incomplet, tests document obsolète (6 désynchronisations).
risk_mitigation 8.0 REX PD-282 (raw ECDSA) intégré, fail-closed audit documenté, rate limiting planifié, hypothèses techniques listées. Manque : framework test explicite, ESM/CJS, CI variables.
coherence 8.0 Plan cohérent avec spec v2. Ambiguïté rédactionnelle sur ordre de traitement (2 formulations). Code contracts alignés aux composants plan.

Moyenne : (8.5 + 7.5 + 8.0 + 8.0) / 4 = 8.00

Verdict attendu

  • coverage (7.5) < 8 → au moins un score < 8
  • Moyenne 8.00 >= 7
  • RESERVE (moyenne >= 7 mais au moins un score < 8)