Aller au contenu

PD-81 — Dossier de Conformité Gate 5 (AMBIGUITY)

Date : 2026-02-23 Version : v1 Itération : 1


1. Synthèse des écarts

Après croisement Phase 1 (review ChatGPT) et Phase 2 (confrontation Claude -p) :

  • 4 Injustifiés (éliminés) : ECT-03, ECT-06, ECT-09, ECT-10
  • 6 Nuancés (retenus avec criticité ajustée) : ECT-01, ECT-02, ECT-04, ECT-05, ECT-11, ECT-14
  • 5 Raison (retenus tels quels) : ECT-07, ECT-08, ECT-12, ECT-13, ECT-15

Total retenu : 11 écarts (0 bloquant, 5 majeur, 6 mineur)


2. Liste numérotée des écarts retenus

MAJEUR

ECT-01 (MAJEUR, révisé de BLOQUANT → MAJEUR après confrontation) — TSP stub vs TSP réel - Type : AMB — Hypothèse implicite - Référence : Spec §2.1, INV-81-02, AC-81-01 / Plan §1 H-01, V-03 - Description : Le plan pose H-01 "TSP réel non disponible" avec stub. La spec impose vérification eIDAS via TSP réel. La confrontation confirme que l'écart est réel mais consciemment mitigé : H-01 trace un TODO, V-03 documente la limitation, l'interface ITspVerifier garantit la substitution. Choix d'implémentation incrémentale avec traçabilité. - Criticité : MAJEUR (mitigé par traçabilité explicite, non bloquant pour implémentation)

ECT-02 (MAJEUR, révisé de BLOQUANT → MAJEUR après confrontation) — Tests eIDAS réalisabilité - Type : AMB — Test partiellement irréalisable - Référence : Tests N1, E02-E05, E15 / Plan §11 - Description : Les scénarios eIDAS ne sont pas démontrables cryptographiquement avec un stub. Toutefois, les tests sont réalisables au niveau contractuel (appel effectif à ITspVerifier, vérification des rejets), même si la preuve eIDAS réelle reste hors périmètre du stub. - Criticité : MAJEUR (couverture contractuelle suffisante, démonstration cryptographique différée)

ECT-07 (MAJEUR) — Isolation storageDomain sans mécanisme de protection - Type : SEC — Risque sécurité - Référence : INV-81-10, AC-81-13 / Plan §1 H-05, §8 - Description : L'isolation par discriminant storageDomain='LEGAL' n'est pas protégée contre l'oubli du filtre dans une requête. Aucun mécanisme technique (guard, default scope, RLS) n'est documenté. - Criticité : MAJEUR

ECT-08 (MAJEUR) — Ancrage 24h non garanti - Type : AMB — Hypothèse non étayée - Référence : Spec §10.3, INV-81-08 / Plan §1 H-07 - Description : Le respect du délai contractuel 24h d'ancrage repose sur l'assertion "cadence existante respecte 24h" sans documentation de la cadence effective ni mécanisme de monitoring/alerte. - Criticité : MAJEUR

ECT-14 (MAJEUR, maintenu après confrontation) — ESM/CJS non documenté - Type : AMB — Contrainte technique non documentée - Référence : Plan §11 - Description : Le choix ESM/CJS n'est pas documenté. La confrontation note que NestJS impose généralement CJS, ce qui réduit le risque, mais la documentation explicite manque. - Criticité : MAJEUR (nuancé par contexte NestJS, mais absent du plan)

MINEUR

ECT-04 (MINEUR, révisé de MAJEUR → MINEUR après confrontation) — Tests intégration DB/Redis - Type : AMB — Couverture de test - Référence : Tests S4, R4-R7, L1-L5 / Plan §11 - Description : La review affirmait que tout repose sur des mocks — la confrontation corrige : le plan prévoit DB et Redis réels pour l'intégration. L'écart résiduel concerne l'absence de tests nommés spécifiquement pour le trigger append-only et l'isolation SERIALIZABLE. - Criticité : MINEUR (couverture implicite dans les flux end-to-end)

ECT-05 (MINEUR, révisé de MAJEUR → MINEUR après confrontation) — bobPublicKey IAM stub - Type : AMB — Information manquante - Référence : Spec §2.3, §3 / Plan §1 H-04 - Description : La spec elle-même liste "source de vérité de l'identité juridique" comme information manquante. Le stub est cohérent avec l'état de la spec. Écart réel mais non imputable au plan. - Criticité : MINEUR

ECT-11 (MINEUR, révisé de MAJEUR → MINEUR après confrontation) — Code contracts invariants - Type : AMB — Vérifiabilité - Référence : Code contracts YAML - Description : L'écart est lié à l'incomplétude des extraits dans le prompt de review, pas à l'incomplétude du document source. Le YAML complet contient 17 modules avec invariants. - Criticité : MINEUR

ECT-12 (MINEUR) — Dépendances inter-PD sans statut - Type : AMB — Documentation - Référence : Plan global - Description : Les dépendances PD-41, PD-37, PD-38, PD-39, PD-82 ne sont pas listées avec statut DONE/TODO explicite dans le plan (bien qu'elles le soient dans WORKFLOW-STATE.md). - Criticité : MINEUR

ECT-13 (MINEUR) — Framework de test non nommé - Type : AMB — Documentation - Référence : Plan §11 - Description : Jest ou Vitest non explicitement choisi dans le plan. - Criticité : MINEUR

ECT-15 (MINEUR) — Variables CI non documentées - Type : AMB — Documentation - Référence : Plan §11 - Description : DATABASE_URL, CI=true, REDIS_URL non documentées. - Criticité : MINEUR


3. Vérification constitutionnelle (OBLIGATOIRE)

  • Article I — Quality Gates : Seuils mathématiques seront appliqués au verdict Phase 4.
  • Article II — Validation croisée : Plan produit par Claude, reviewé par ChatGPT, confronté par Claude — séparation respectée.
  • Article III — Traçabilité : Session loggée, Jira à jour, artefacts produits.
  • Article IV — Non-régression : N/A (pas de code à cette étape).
  • Article V — Boucle acceptabilité : N/A (pas de code modifié).
  • Article VI — Responsabilité : N/A (pas de code à cette étape).

4. Conclusion

Le plan d'implémentation PD-81 présente 5 écarts MAJEUR et 6 écarts MINEUR après confrontation.

Les 2 bloquants initiaux (ECT-01 et ECT-02 — TSP stub) ont été reclassés en MAJEUR car : - Le plan trace explicitement la limitation (H-01, V-03) - L'architecture par interface garantit la substitution future - Les tests contractuels sont réalisables via l'interface (même si la preuve cryptographique eIDAS réelle est différée)

Les principaux points d'attention pour l'implémentation : 1. ECT-07 : Ajouter un mécanisme de protection contre l'oubli du discriminant storageDomain 2. ECT-08 : Documenter ou monitorer la cadence d'ancrage PD-39 3. ECT-14 : Documenter le choix ESM/CJS et le framework de test