PD-274 — Confrontation Gate 3 (CONFORMITY_CHECK)¶
Analyse des ecarts identifies en Phase 1¶
C-01 : Contradiction INV-274-03 vs CA-04 — VRAI ECART (MINEUR)¶
Verdict : Ecart reel mais mineur. INV-274-03 autorise handleReorg OU reorg, tandis que CA-04 mentionne handleReorg uniquement. La regle Prolog (pv_anchor_compliance.pl lignes 393-403) accepte les DEUX alternatives (handleReorg et reorg). L'implementation choisira handleReorg — pas de contradiction en pratique. Aligner CA-04 avec INV-274-03 suffit.
Reclassification : MINEUR (pas BLOQUANT — le contrat Prolog accepte les deux, l'implementation n'est pas bloquee).
C-02 : Contradiction perimetre vs surveillance DDL — FAUX POSITIF¶
Verdict : Faux positif. INV-274-08 est un garde-fou defensif ("verifier qu'on ne casse rien"), pas un ajout de perimetre. Hors-perimetre signifie "on ne fait pas de changement DDL", et l'invariant le confirme en verifiant cette absence. Pas de contradiction.
A-01 : Definition floue du module logique anchor_batch — FAUX POSITIF¶
Verdict : Faux positif. Le naming Prolog est une convention stable et documentee dans norm.yaml de chaque norme. anchor_batch est le slug canonique derive de l'entite AnchorBatch et du service AnchorBatchService. Pattern identique a toutes les autres normes (pv-env, pv-pre, pv-audit, pv-proof).
A-02 : Ordre des valeurs enum — MINEUR (pertinent)¶
Verdict : Mineur pertinent. L'ordre n'a pas d'importance pour Prolog (member/2 est insensible a l'ordre). Mineur informatif.
A-03 : Seuil temporel d'execution — FAUX POSITIF¶
Verdict : Faux positif. PD-274 est une story de conformite formelle Prolog, pas une API avec SLA temporels. La spec l'indique explicitement (section 10.1 : "Aucune borne numerique applicable").
NT-01 : Independance type TS vs SQL non testable — FAUX POSITIF¶
Verdict : Faux positif. L'observable est le fait genere (entity_enum_values). Le test verifie que le fait est present avec les bonnes valeurs. La "causalite" est assuree par le code de extract-facts.py qui est deterministe — pas besoin de prouver le mecanisme interne.
NT-02 : Conservation baseline non testable — FAUX POSITIF¶
Verdict : Faux positif. La baseline est le run Prolog avant correction, disponible dans le rapport d'audit PV-ANCHOR-001. Le mecanisme est simple : swipl avant/apres → comparer.
I-01 : Hypotheses non validees par tests — FAUX POSITIF¶
Verdict : Faux positif. Les hypotheses (H-01 a H-05) sont des pre-conditions contextuelles, pas des exigences testables. H-01 (stack NestJS) est verifie par l'existence du projet. H-02 (naming) est verifie par le fait d'extraire les facts. H-03 est verifie par la regle Prolog elle-meme.
I-02 : Test TC-NEG-02 sans invariant — MINEUR (pertinent)¶
Verdict : Mineur pertinent. INV-274-01 dit "exactement 6 valeurs" ce qui implique interdiction de valeurs supplementaires. Mais l'explicitation manque.
HD-01 : Stabilite des regles Prolog — FAUX POSITIF¶
Verdict : Faux positif. Les regles Prolog sont versionnees dans le repo ProbatioVault-doc et ne changent pas pendant l'implementation d'une story. Ce n'est pas une hypothese dangereuse, c'est le fonctionnement normal du workflow.
HD-02 : Atomicite des transitions d'etat — FAUX POSITIF¶
Verdict : Faux positif. PD-274 ne modifie pas la machine a etats. Elle est documentee pour contexte. Les transitions sont gerees par isValidAnchorStatusTransition() (anchor-batch-status.enum.ts) qui est hors perimetre PD-274.
HD-03 : Disponibilite baseline — FAUX POSITIF¶
Verdict : Faux positif. Identique a NT-02.
RS-01 : Integrite des faits — FAUX POSITIF¶
Verdict : Faux positif. L'extraction de faits est deterministe (meme code source → memes faits). La signature des faits est hors perimetre de PD-274 (feature de securite PV-AUDIT distincte).
RS-02 : Tracabilite des verdicts — FAUX POSITIF¶
Verdict : Faux positif. La tracabilite est assuree par le workflow de gouvernance (session-log, verdict YAML, Jira). Hors perimetre spec PD-274.
Synthese¶
| Ecart | Classification originale | Reclassification | Motif |
|---|---|---|---|
| C-01 | BLOQUANT | MINEUR | Regle Prolog accepte les 2 alternatives, aligner CA-04 suffit |
| C-02 | MAJEUR | Faux positif | Garde-fou defensif, pas contradiction |
| A-01 | MAJEUR | Faux positif | Naming convention stable et documentee |
| A-02 | MINEUR | MINEUR | Ordre non important pour Prolog |
| A-03 | MINEUR | Faux positif | Pas de SLA applicable |
| NT-01 | MAJEUR | Faux positif | Observable suffisant |
| NT-02 | MAJEUR | Faux positif | Baseline = run Prolog avant/apres |
| I-01 | MAJEUR | Faux positif | Pre-conditions contextuelles |
| I-02 | MINEUR | MINEUR | Explicitation manquante |
| HD-01 | MAJEUR | Faux positif | Regles versionnees dans le repo |
| HD-02 | MAJEUR | Faux positif | Machine a etats hors perimetre |
| HD-03 | MAJEUR | Faux positif | Identique NT-02 |
| RS-01 | MAJEUR | Faux positif | Extraction deterministe |
| RS-02 | MAJEUR | Faux positif | Tracabilite geree par workflow |
Taux de faux positifs : 10/14 (71%) — coherent avec le pattern PD-272/PD-273 pour les stories de conformite formelle Prolog.
Ecarts reels apres confrontation : - 0 BLOQUANT - 0 MAJEUR - 3 MINEURS (C-01 reclassifie, A-02, I-02)
Verdict confrontation : La spec est conforme. Les ecarts mineurs n'impactent pas l'implementabilite.