Aller au contenu

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

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 Claude 4
PD-279-code-contracts.yaml Claude 4
PD-279-review-step5.md ChatGPT 5-P1
PD-279-confrontation-step5-v1.md Claude 5-P2

2. Écarts consolidés

BLOQUANTS (3)

ID Description
ECT-01 legal_lock=true → spec dit 409 Conflict, plan utilise 423 Locked. Rupture de contrat API.
ECT-02 Garde destruction à l'inclusion batch : le plan fait un filtre d'éligibilité SQL implicite (status=EXPIRED) au lieu du rejet explicite HTTP 409 exigé par la spec (INV-279-10).
ECT-03 Artefact tests (PD-279-tests.md) non auditable — contient des traces d'outillage mais pas de scénarios TC-* exécutables détaillés. Impact : la gate ne peut valider la couverture sans tests rejouables. Note : ce n'est pas un problème du plan mais des tests (étape 2).

MAJEURS (7)

ID Description
DIV-01 Le plan renumérote INV-279-11 (idempotence dans la spec) vers INV-279-12, et crée un nouveau INV-279-11 (destruction checkpoint). Dérive normative.
DIV-02 lifecycle_log (terme spec) vs integrity_journal_entries (terme plan) — équivalence non formalisée explicitement.
DIV-03 Le plan ajoute geo_copy_count comme colonne en migration, alors que la spec ne le liste pas dans les colonnes ajoutées (§5.7). Extension de périmètre non contractualisée.
DIV-04 INV-279-11 (idempotence) absent de la matrice de couverture invariants→tests dans le plan.
DIV-05 Code contracts incluent des invariants non issus du set canonique spec (INV-279-12, seuils couverture).
DIV-06 DELETE /documents/:id présent dans spec §5.5 mais absent des code contracts destruction.
DIV-07 Compatibilité ESM/CJS non documentée dans le plan.

MINEURS (3)

ID Description
MIN-01 Inventaire dépendances inter-PD non formalisé (DONE/TODO/STUB).
MIN-02 Framework test (Jest vs Vitest) non déclaré normatif.
MIN-03 Variables CI requises non documentées.

3. Analyse pour scoring

ECT-03 — Atténuation

ECT-03 concerne l'artefact tests (étape 2), pas le plan (étape 4). Pour Gate 5 AMBIGUITY qui évalue le plan, cet écart est noté mais n'impacte pas directement feasibility/coherence du plan. Son impact principal est sur coverage (la couverture tests ne peut être vérifiée).

Scoring

Critère Score Justification
feasibility 8.0 Le plan est techniquement réalisable. Les tâches sont bien décomposées, les dépendances identifiées. ECT-01 (423 vs 409) est un bug de plan facile à corriger, pas un problème de faisabilité.
coverage 6.0 3 BLOQUANTS : ECT-01 (contrat API incorrect), ECT-02 (garde destruction implicite vs explicite), ECT-03 (tests non vérifiables). 4 MAJEURS liés à la couverture : DIV-01/04/05/06 (invariants non alignés, code contracts incomplets).
risk_mitigation 7.5 Le plan identifie des risques et hypothèses. DIV-03 (geo_copy_count hors périmètre) est un risque de périmètre. DIV-07 (ESM/CJS) est un risque technique non documenté. Mitigations partielles.
coherence 6.5 ECT-01 (423 vs 409) et DIV-01 (renumérotation invariants) sont des incohérences directes avec la spec. DIV-02 (lifecycle_log vs integrity_journal_entries) est une incohérence terminologique.

Moyenne : (8.0 + 6.0 + 7.5 + 6.5) / 4 = 7.0

Coverage = 6.0 ≥ 6 OK. Coherence = 6.5 ≥ 6 OK. Moyenne = 7.0 ≥ 7 OK. Au moins un score < 8 → RESERVE.