Ce dossier est assemblé automatiquement avant chaque gate PMO. Il constitue la base factuelle sur laquelle le verdict est rendu.
1. Documents de référence
| Document | Étape | Statut |
| PD-19-besoin.md | 0 | Présent |
| PD-19-specification.md | 1 (v2 corrigée) | Présent |
| PD-19-tests.md | 2 (v2 corrigée) | Présent |
| PD-19-specification-review-v2.md | 3 v2 (Phase 1) | Présent |
| PD-19-confrontation-step3-v2.md | 3 v2 (Phase 2) | Présent |
2. Hypothèses déclarées
- H-01 : Environnements avec source de configuration externe fiable.
- H-02 : Clients Web avec origines stables et identifiables.
- H-03 : Mobiles natifs sans exception CORS hors WebView.
- H-04 : Seuils définissables par équipe produit/sécurité.
- H-05 : Mécanisme de journalisation disponible.
- H-06 : Intégrations B2B représentables par origines ou canal HTTP.
- H-07 : eIDAS hors périmètre, traité par stories dédiées.
3.1 Invariants — Tests
| Invariant | Test(s) couvrant | Couvert ? | Commentaire |
| INV-01 | TC-NOM-01, TC-NOM-02 | Couvert | Valeurs exactes des headers contractualisées |
| INV-02 | TC-NEG-06 | Couvert | Absence Server/X-Powered-By |
| INV-03 | TC-NOM-03, TC-NOM-04 | Couvert | Méthodes, headers, credentials, max-age exacts |
| INV-04 | TC-NOM-03, TC-ERR-01 | Couvert | Origines exactes par environnement |
| INV-05 | TC-NOM-04 | Couvert | Max-age 600/300/60 |
| INV-06 | TC-NOM-07, TC-ERR-03 | Couvert | 100/60s/IP, isolation multi-IP |
| INV-07 | TC-NOM-08, TC-ERR-04 | Couvert | 429 + Retry-After + JSON contractuel |
| INV-08 | TC-NEG-05 | Couvert | Indépendance rôle/métier |
| INV-09 | TC-NOM-06 | Couvert | JSON UTC ISO-8601 corrélables, 90j |
| INV-10 | TC-NOM-03, TC-ERR-01 | Couvert | localhost:3000/:8080 bornés |
| INV-11 | TC-ERR-02 | Partiel | Couvert pour 404/405/500 mais PAS pour refus CORS ni 429 (DIV-01) |
| INV-12 | — | Non testé | Frontière contractuelle HTTP (ZO-02) |
3.2 Critères d'acceptation — Tests
| Critère | Test(s) couvrant | Vérifié ? | Commentaire |
| CA-01 | TC-NOM-05 | Couvert | Middleware global exhaustif (corrigé v2) |
| CA-02 | TC-NEG-06 | Couvert | — |
| CA-03 | TC-NOM-03 | Couvert | — |
| CA-04 | TC-ERR-01 | Couvert | — |
| CA-05 | TC-NOM-04 | Couvert | — |
| CA-06 | TC-NOM-04 (refus) | Couvert | — |
| CA-07 | TC-NOM-07, TC-ERR-03 | Couvert | — |
| CA-08 | TC-NOM-08, TC-ERR-04 | Couvert | — |
| CA-09 | TC-NOM-07 | Couvert | — |
| CA-10 | TC-NOM-03 (multi-env) | Couvert | — |
| CA-11 | TC-NOM-06 | Couvert | Logs JSON UTC corrélables (corrigé v2) |
| CA-12 | TC-NOM-03 (DEV) | Couvert | — |
| CA-13 | TC-NEG-05 | Couvert | — |
| CA-14 | TC-ERR-02 | Couvert | 404/405/500 (corrigé v2) |
4. Points ouverts
- INV-11 partiel : Security headers vérifiés sur 404/405/500 mais pas sur refus CORS ni 429 — Majeur
- INV-06 résolution IP : Mécanisme proxy de confiance non testable fonctionnellement — Majeur
- Socle vs conditionnels : Frontière implicite entre headers universels et conditionnels — Mineur
- INV-12 : Pas de test explicite pour la frontière contractuelle HTTP — Mineur
- CORS sur 429 : Comportement CORS sur réponse rate-limited non spécifié — Mineur
5. Rapport de confrontation
- Voir : PD-19-confrontation-step3-v2.md
- Synthèse : 12 convergences, 2 divergences (Majeures), 3 zones d'ombre (Mineures).
6. Progression v1 → v2
| Métrique | v1 | v2 |
| Bloquants | 4 | 0 |
| Majeurs | 7 | 2 |
| Mineurs | 1 | 3 |
| Règles non testables | 8 | 2 |
| Points à clarifier | 10 | 2 |
7. Recommandation pré-verdict
Justification : Aucun écart bloquant. Les 4 critiques de la v1 sont résolus. Les 2 Majeurs résiduels sont des lacunes de couverture de test ciblées (INV-11 partiel, résolution IP) résolvables par des corrections mineures. La spécification est désormais exhaustivement contractualisée. Les tests couvrent la quasi-totalité des règles avec valeurs concrètes. Verdict attendu : RESERVE avec conditions.
Document produit par le workflow de gouvernance IA — Gate 3 v2 Phase 3 (Dossier de conformité) Date : 2026-02-09