Aller au contenu

PD-279 — Dossier de conformité Gate 5 (v2)

1. Documents de référence

Document Source Étape
PD-279-specification.md (v2) ChatGPT + corrections Claude 1+3
PD-279-tests.md ChatGPT 2
PD-279-plan.md (v2) Claude + corrections 4+5
PD-279-code-contracts.yaml (v2) Claude + corrections 4+5
PD-279-review-step5-v2.md ChatGPT 5-P1
PD-279-confrontation-step5-v2.md Claude 5-P2

2. Corrections appliquées entre v1 et v2

Écart v1 Correction v2 Statut
ECT-01 (423 vs 409 pour legal_lock) Plan corrigé : tous les 423 → 409, V7 mis à jour, code contracts alignés RÉSOLU
ECT-02 (filtre SQL implicite destruction) Plan corrigé : flux C décrit rejet explicite HTTP 409 sur 3 routes, code contracts ajoutent "forbidden: filtrer silencieusement" RÉSOLU
DIV-01 (renumérotation INV-279-11/12) Plan corrigé : INV-279-11 = idempotency (conforme spec), INV-279-12 supprimé, note de couverture ajoutée RÉSOLU
DIV-02 (lifecycle_log vs integrity_journal_entries) Plan corrigé : §1b ajouté avec tableau d'équivalence terminologique RÉSOLU
DIV-05 (INV-279-12 non canonique en code contracts) Code contracts corrigés : INV-279-12 retiré, couvert par INV-279-07 RÉSOLU
DIV-06 (DELETE /documents/:id absent) Code contracts corrigés : ajout DocumentsController + fichier RÉSOLU
DIV-07 (ESM/CJS non documenté) Plan corrigé : HT-279-09 ajouté (CJS confirmé) RÉSOLU
MIN-01 (dépendances inter-PD) Plan corrigé : §9b ajouté avec tableau DONE/STUB RÉSOLU
MIN-02 (framework test) Plan corrigé : HT-279-10 ajouté (Jest confirmé) RÉSOLU

3. Écarts résiduels v2

BLOQUANTS (0)

Aucun écart bloquant résiduel dans le plan.

Note sur l'artefact tests : Les deux reviewers signalent que PD-279-tests.md n'est pas auditable (traces d'outillage vs scénarios TC-). Cet écart concerne l'artefact de l'étape 2, pas le plan d'implémentation (étape 4). Le plan lui-même décrit correctement les TC- et leur mapping. L'écart sera traité lors de l'implémentation (étape 6) où les tests seront écrits selon le plan.

MAJEURS (2)

ID Description Source
DIV-01 security_level : le plan décrit un fallback ("valeur par défaut si absent") non contractualisé dans la spec. La spec §5.1 exige un rejet si invalide. Review v2 + Confrontation v2
DIV-02 Ancrage du contrôle inclusion batch : le plan décrit "EligibilityService.selectEligible() ou méthode d'inclusion" — pas de point d'ancrage unique verrouillé. Review v2 + Confrontation v2

MINEURS (3)

ID Description Source
MIN-01 geo_copy_count extension de périmètre : colonne ajoutée en migration, contractualisée dans résolution HT-279-02 mais pas dans la spec §5.7. Confrontation v2
MIN-02 Variables CI nécessaires (DATABASE_URL, etc.) non documentées explicitement. Review v2
MIN-03 Code contract tests : Couverture >= 80% n'est pas un invariant spec — convention de qualité acceptable mais non canonique. Review v2

4. Scoring

Critère Score Justification
feasibility 9.0 Le plan est techniquement solide et réalisable. Toutes les tâches sont bien décomposées. L'écart DIV-01 (security_level fallback) est un point de clarification, pas un problème de faisabilité.
coverage 8.0 Les corrections v2 ont résolu les 3 BLOQUANTS de v1 (423→409, destruction explicite, renumérotation). Les 2 MAJEURS résiduels sont des clarifications, pas des lacunes de couverture. L'artefact tests est un problème d'étape 2 atténué pour cette gate.
risk_mitigation 8.5 Le plan identifie 10 hypothèses techniques avec résolutions, 7 points de vigilance, et les dépendances inter-PD avec statuts. L'ambiguïté d'ancrage batch (DIV-02) est le seul risque résiduel notable.
coherence 8.0 Les corrections v2 ont aligné 423→409, renuméroté les invariants, formalisé l'équivalence terminologique. Les 2 MAJEURS résiduels (fallback security_level, ancrage batch) sont des points de précision. 3 mineurs sans impact structural.

Moyenne : (9.0 + 8.0 + 8.5 + 8.0) / 4 = 8.375

Tous les scores >= 8.0 → GO attendu.