PD-285 — Dossier de conformité Gate 5 (v1)¶
Date : 2026-03-14 Gate : AMBIGUITY Itération : v1 Dérogation Art. II : P1 et P2 produits par claude-p (fallback) — OpenCode en mode agentic > 49KB
1. Documents de référence¶
- PD-285-specification.md, PD-285-tests.md, PD-285-plan.md, PD-285-code-contracts.yaml
- PD-285-review-step5-v1.md (Phase 1 — Claude fallback)
- PD-285-confrontation-step5-v1.md (Phase 2 — Claude fallback)
2. Synthèse des écarts¶
ECT-01 — Section contraintes techniques absente dans le plan¶
Type : AMB Criticité : MINEUR (reclassé depuis MAJEUR) Source : Review constat 3 Analyse : Le plan mentionne Jest comme framework (implicitement via les commandes npx jest), le statut PD-252 (à amender), et PD-101 (iOS, contexte). L'absence d'une section formelle "Contraintes techniques" n'empêche pas l'implémentation — la story est une modification de constante + tests + doc. Reclassé MINEUR car complexité basse et framework de test non ambigu (backend NestJS = Jest).
ECT-02 — 6 scénarios tests non mappés dans le plan¶
Type : ECT Criticité : MINEUR Source : Review constat 1 Analyse : TC-NR-03/04 (non-régression multipart/quotas), TC-NEG-03/04/05/06 (cas négatifs) ne sont pas explicitement mappés dans le plan §5. Cependant, ces tests vérifient l'absence de changement — ils ne nécessitent pas de nouveau mécanisme d'implémentation. Leur absence de mapping est un défaut de traçabilité, pas un risque fonctionnel.
ECT-03 — Code contract absent pour C4 (cohérence inter-EB)¶
Type : ECT Criticité : MINEUR Source : Review constat 2 Analyse : C4 est l'exécution de coherence-report.py — un outil existant hors du périmètre code de la story. Un code contract pour un outil externe n'apporte pas de valeur ajoutée pour les agents d'implémentation. MINEUR.
ECT-04 — DIV-01 : TC-ERR-04 vs middleware passthrough NaN¶
Type : DIV Criticité : MINEUR (reclassé depuis "bloquante" confrontation) Source : Confrontation DIV-01 Analyse : TC-ERR-04 exige un "rejet explicite" pour Content-Length non numérique. Le middleware actuel fait next() (passthrough) — c'est le design intentionnel. H-05 stipule que la validation métier fait autorité. Le middleware est un filtre d'optimisation, pas l'autorité de rejet. Le test TC-ERR-04 doit être adapté pour refléter le comportement réel (passthrough middleware → rejet service si applicable). Ce n'est pas un blocage du plan mais un ajustement de test à faire en step 6.
ECT-05 — DIV-02 : Validation config vs validation taille fichier¶
Type : AMB Criticité : MINEUR Source : Confrontation DIV-02 Analyse : INV-285-04 définit des bornes pour le paramètre config. Le plan ne prévoit pas de validation de la valeur config en DB (ex: check constraint). La story change une valeur par migration SQL, pas un mécanisme de validation runtime. L'invariant INV-285-04 est vérifié par le fait que la migration écrit la bonne valeur. MINEUR.
ECT-06 — DIV-03 : Terminologie migration¶
Type : AMB Criticité : MINEUR Source : Confrontation DIV-03 Analyse : "Aucune migration DDL" (spec) vs "migration SQL UPDATE" (plan) — DML ≠ DDL. Techniquement cohérent. Ambiguïté terminologique uniquement.
3. Bilan¶
| Criticité | Nombre |
|---|---|
| BLOQUANT | 0 |
| MAJEUR | 0 |
| MINEUR | 6 |
4. Scoring¶
| Critère | Score | Justification |
|---|---|---|
| feasibility | 9.0 | Plan simple et réalisable. Modification de constante + tests + doc. Aucun risque technique. -0.25×4 mineurs. |
| coverage | 8.0 | 12 invariants mappés. 6 tests non mappés dans plan (-0.25×6). Code contract C4 absent (-0.25). |
| risk_mitigation | 8.5 | Risques bien identifiés (rétrocompat, storage, perf). DIV-01 NaN mitigé par H-05. -0.25×2 mineurs. |
| coherence | 8.5 | Plan cohérent avec spec et tests. Terminologie migration clarifiable (-0.25). Config validation ambiguë (-0.25). |