1. Documents de référence
- Spécification : PD-275-specification.md v2 (ChatGPT gpt-5.3-codex, corrigée)
- Tests : PD-275-tests.md v2 (ChatGPT gpt-5.3-codex + corrections manuelles INV-275-09/10/11/12)
- Review v3 : PD-275-review-step3-v3.md (Claude-p)
- Confrontation v3 : PD-275-confrontation-step3-v3.md (ChatGPT gpt-5.3-codex)
2. Écarts v2 corrigés (confirmé P1 v3)
| ID v2 | Description | Correction v3 |
| IST-05 | Matrice tests non à jour pour INV-275-09/10/11/12 | Matrice §2 + table §5 + tests TC-ERR-08/09 et TC-NOM-10/11 ajoutés |
| DIV-01 (v2) | TC-NOM-04 contradictoire INV-275-10 | GIVEN reformulé : "JWT valide portant le rôle ADMIN" |
2/2 écarts v2 réels corrigés.
3. Écarts résiduels v3
Écarts MAJEURS atténués (3 — questions ouvertes reconnues)
| ID | Type | Description | Question liée |
| A-01 | Ambiguïté | Machine à états batch partielle (NON_FINALIZED non défini) | Q-02 |
| A-04 | Ambiguïté | Interface signer→batch non contractualisée | H-01 (PD-177) |
| HD-03 | Hypothèse | Seed initial fail-closed = indisponibilité | Q-05/H-04 |
Écarts MAJEURS réels (1)
| ID | Type | Description | Faux positif ? |
| DIV-SPOOFING | Divergence | Anti-usurpation revokedBy : spec autorise 2 comportements (refus OU ignore), oracle test non déterministe | Non — la spec v2 dit "refusée OU ignorée" (INV-275-10/CA-04c), TC-ERR-09 teste les deux. Atténuation : le test couvre les deux branches, l'implémentation choisira l'une. |
Écarts MINEURS (5)
| ID | Type | Description |
| DIV-02 | Divergence | Epic ref non stabilisée (EPIC-XX vs non fournie) |
| DIV-03 | Divergence | CA-08 mappé sous INV-275-03 (traçabilité sémantiquement discutable) |
| IST-TRACE | Traçabilité | Associations hétérogènes dans matrice |
| NT-INV08 | Non testable | INV-275-08 vacuement vrai (pas d'artefact crypto dans périmètre PD-275) |
| NT-TESTS | Artefact prompt | Tests résumés dans prompt review (faux positif — GIVEN/WHEN/THEN complets dans doc source) |
4. Scoring
Méthode : Base 10, -0.5 par MAJEUR atténué (question ouverte reconnue), -1 par MAJEUR réel, -0.25 par MINEUR.
Completeness (exhaustivité spec)
- A-01 (Q-02) : -0.5
- A-04 (H-01) : -0.5
- HD-03 (Q-05) : -0.5
- Score : 10 - 0.5 - 0.5 - 0.5 = 8.5
Testability (testabilité des critères)
- DIV-SPOOFING (oracle non déterministe) : -0.5 (atténué car TC-ERR-09 couvre les 2 branches)
- NT-INV08 : -0.25
- NT-TESTS : -0 (faux positif)
- Score : 10 - 0.5 - 0.25 = 9.25
Clarity (clarté et non-ambiguïté)
- DIV-SPOOFING (refus vs ignore ambigu) : -0.5
- DIV-02 (EPIC-XX) : -0.25
- IST-TRACE : -0.25
- Score : 10 - 0.5 - 0.25 - 0.25 = 9.0
Traceability (traçabilité invariants ↔ tests)
- DIV-03 (CA-08 sous INV-275-03) : -0.25
- DIV-02 (epic ref) : -0.25
- Score : 10 - 0.25 - 0.25 = 9.5
5. Résumé scoring
| Critère | Score v1 | Score v2 | Score v3 | Delta v2→v3 |
| completeness | 7.25 | 8.25 | 8.5 | +0.25 |
| testability | 8.0 | 7.0 | 9.25 | +2.25 |
| clarity | 7.0 | 8.75 | 9.0 | +0.25 |
| traceability | 9.25 | 8.5 | 9.5 | +1.0 |
| Moyenne | 7.875 | 8.125 | 9.0625 | +0.9375 |
6. Analyse convergence
- Delta v2→v3 = 9.0625 - 8.125 = +0.9375
- Delta >= 0.5 → amélioration significative
- Itération 3 = plafond : v3 est la dernière itération autorisée
- Tous les scores >= 8 → le verdict sera GO
7. Points à reporter aux étapes suivantes
- DIV-SPOOFING : Choisir entre refus (ERR-REVOKEDBY-SPOOFING) et ignore au plan d'implémentation
- A-01/Q-02 : Compléter la liste d'états batch quand PD-177 sera disponible
- DIV-02 : Stabiliser la référence epic dans les documents