Aller au contenu

PD-84 — Dossier de conformité Gate 5 v2

Metadata

  • Story ID : PD-84
  • Gate : 5 (AMBIGUITY)
  • Itération : v2
  • Documents audités :
  • PD-84-specification.md v1.3.0
  • PD-84-tests.md v1.3.0
  • PD-84-plan.md v1.1.0
  • PD-84-code-contracts.yaml v1.1.0
  • P1 (Review) : ChatGPT — 2 BLOQUANT, 1 MAJEUR, 2 MINEUR (verdict: Rejeté)
  • P2 (Confrontation) : Claude — 10 convergences, 7 divergences MINEUR, 6 zones d'ombre (verdict: Procéder)
  • Date : 2026-02-24

Analyse croisée P1 vs P2

Reclassification des "BLOQUANTS" P1 v2

BLQ-01 (Export PREMIUM 501 vs TC-10/TC-LIM-04) : P1 considère bloquant car TC-10 action 3 et TC-LIM-04 action 3 exigent un export "autorisé" après upgrade PREMIUM, mais le plan prévoit 501. P2 analyse factuellement : la spec elle-même exclut l'export PREMIUM du périmètre PD-84 (§7.1 : "En PREMIUM : hors périmètre PD-84 (PD-85)"). Le plan est conforme à la spec. Le conflit est entre les tests et la spec, pas entre le plan et la spec. Le 501 après upgrade confirme que la garde FREE (PREMIUM_REQUIRED 422) est levée — l'utilisateur PREMIUM atteint le code d'export. TC-10 actions 1-2 et TC-18 couvrent INV-84-05/06. Reclassification : MINEUR (ajustement rédactionnel recommandé dans les tests, pas dans le plan).

BLQ-02 (TC-SLA-01 mesure append-only vs COMMIT) : P1 considère bloquant car le protocole de test exige un point d'arrivée append-only PD-31 et le plan mesure jusqu'au COMMIT. P2 analyse le protocole TC-SLA-01 réel : il mesure par polling GET /capabilities toutes les 200ms, ce qui mesure la visibilité des capabilities, pas l'écriture PD-31. L'écart est entre le libellé déclaré du test ("enregistrement journal append-only") et son protocole effectif (polling capabilities). Le plan et le test convergent sur la même mesure réelle. Reclassification : MINEUR (écart rédactionnel dans le libellé spec/test, pas dans le plan).

MAJ-01 persistant (SLA conformité spec) : Réabsorbé dans BLQ-02 ci-dessus. Même analyse : le protocole de test réel mesure les capabilities, le plan aussi. Reclassification : MINEUR.

Corrections v1 → v1.1.0 vérifiées

MAJ v1 Levée ? Confirmation
MAJ-01 (SLA instrumentation) Partiellement — reclassée MINEUR v2 §2.4 "SLA Garantie par construction" + duration_ms dans metadata
MAJ-02 (CA-84-06 UI) Levée P1 v2 confirme. API data structurées (capabilities + export_cta)
MAJ-03 (CA-84-08 export) Levée P1 v2 confirme. Mapping explicite refus doc + export + TC-19
MAJ-04 (account_role) Levée P1 v2 confirme. Migration nullable + aucun service conditionne
MAJ-05 (ENABLE_PLAN_STUB) Levée P1 v2 confirme. Triple verrou guard + TC-10-bis + check CI
MAJ-06 (QuotaGuard) Levée P1 v2 confirme. Ajouté aux interfaces code contracts

Écarts consolidés v2

# Type Gravité Description Critère
MIN-01 Rédaction tests MINEUR TC-10 action 3 et TC-LIM-04 action 3 présupposent PD-85 (export "autorisé"). Ajuster pour accepter 501. coverage
MIN-02 Rédaction spec/tests MINEUR Libellé SLA "enregistrement append-only PD-31" non aligné avec protocole de test réel (polling capabilities) feasibility
MIN-03 Documentation plan MINEUR Valeur "business" de User.plan non traitée dans la stratégie de migration H-01 risk_mitigation
MIN-04 Documentation plan MINEUR Variables CI (DATABASE_URL, CI=true) non documentées pour tests intégration feasibility
MIN-05 Documentation plan MINEUR premium_activated_at non mentionné explicitement dans la description COMP-02 migration coherence
MIN-06 Code contracts MINEUR Pagination FolderListResponseDto non contractualisée dans la spec/tests coherence
MIN-07 Documentation plan MINEUR Type audit DOCUMENT_SEAL (§2.2 étape g) pas listé dans les 5 types PD-84 (§7.2) coherence

Scoring

feasibility

Écart Impact
MIN-02 (SLA libellé) -0.25
MIN-04 (CI variables) -0.25
Total 9.5

coverage

Écart Impact
MIN-01 (TC-10/TC-LIM-04 rédaction) -0.25
Total 9.75

risk_mitigation

Écart Impact
MIN-03 (valeur business migration) -0.25
Total 9.75

coherence

Écart Impact
MIN-05 (premium_activated_at) -0.25
MIN-06 (pagination) -0.25
MIN-07 (DOCUMENT_SEAL) -0.25
Total 9.25

Recommandation

Moyenne = (9.5 + 9.75 + 9.75 + 9.25) / 4 = 9.5625

Tous les scores >= 8 → GO.

Les 6 MAJ v1 sont levées (5 confirmées, 1 reclassée MINEUR). Les 2 BLOQUANT P1 v2 sont des faux positifs partiels (conflit tests↔spec, pas plan↔spec). Le plan v1.1.0 est conforme à la spécification et couvre tous les INV/CA.