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