Documents de référence
- Spécification :
PD-85-specification.md (261 lignes, ChatGPT gpt-5.3-codex) - Tests :
PD-85-tests.md (323 lignes, ChatGPT gpt-5.3-codex) - Review :
PD-85-review-step3.md (185 lignes, Claude) - Confrontation :
PD-85-confrontation-step3.md (53 lignes, ChatGPT gpt-5.3-codex)
Synthèse des écarts
Écarts BLOQUANTS (2)
| ID | Type | Description | Source |
| A-01 | AMB | signedUrlTtl : valeur par défaut non contractualisée. Spec §5.2 dit "NON SPECIFIE (bloquant)". INV-85-04 et CA-10 invérifiables sans valeur par défaut. | Review + Confrontation |
| C-02 | AMB | Comportement 404 mixte : requête avec mélange proofIds inexistants + non possédés. Priorité d'erreur non définie. | Review + Confrontation |
Écarts MAJEURS (5 retenus après consolidation)
| ID | Type | Description | Source |
| A-02 | AMB | Doublons proofIds : déduplication vs rejet 400 non contractualisé. TC-NEG-01 admet deux comportements. | Review + Confrontation |
| C-04 | ECT | Enum documentType non normative : valeurs non figées, enum contractuelle absente. | Review |
| C-05 | AMB | Format proofEnvelopeRef non défini (UUID/URN/autre). | Review |
| C-06 | AMB | Politique audit 4xx/422 ambiguë : CA-12 dit "selon politique à confirmer". INV-85-05 partiellement testable. | Review + Confrontation |
| RS-02 | SEC | Rate limiting absent : pas de contrôle anti-abus (nombre d'exports/jour, cooldown). | Review |
Écarts MINEURS (5)
| ID | Type | Description | Source |
| C-07 | AMB | Borne max cardinalité proofIds : garde-fou 10_000 à confirmer métier. | Review |
| C-08 | AMB | Résolution FK cross-module non spécifiée au niveau contractuel. | Review |
| RS-03 | SEC | readmeVerification : validation de contenu non contractualisée (mitigé si statique). | Review |
| RS-04 | SEC | Anti-rejeu exports : pas de mécanisme de cooldown. | Review |
| REF-01 | ECT | Référence epic manquante (corrigée : PD-185). | Review |
Écarts confirmés comme non-écarts (faux positifs review)
Aucun faux positif identifié. La confrontation confirme les divergences identifiées par la review.
Scoring
| Critère | Score | Justification |
| completeness | 7.0 | 2 BLOQUANTS (signedUrlTtl, 404 mixte) = -2×2 = -4, puis 5 MAJEURS × -1 = -5, mais base 10 et majorité couverte. Score = 10 - 2×1 (bloquants comptés 1 en completeness) - 0 = 7 réaliste car les 14 CA et 15 INV sont couverts, mais les lacunes contractuelles empêchent la complétude. |
| testability | 7.5 | 40 scénarios, 14/14 CA couverts, 15/15 INV. Mais 6 règles non testables identifiées par l'auteur des tests. Score impacté par ambiguïtés spec. |
| clarity | 8.5 | Spec bien structurée (modèle de données, machine d'états, flux). Points à clarifier explicitement listés par l'auteur. -0.5 pour les zones d'ombre. |
| traceability | 8.0 | Matrice INV→CA→TC complète. Quelques CA partiellement couverts (CA-04, CA-12). -0.5 pour FK cross-module et format proofEnvelopeRef. |
Moyenne : (7.0 + 7.5 + 8.5 + 8.0) / 4 = 7.75
Verdict attendu
- completeness (7.0) < 8 → au moins un score < 8
- Moyenne 7.75 >= 7
- → RESERVE (moyenne >= 7 mais au moins un score < 8)