PD-252 — Rapport de confrontation (Étape 5 — Pré-Gate Plan)¶
Ce rapport est produit par l'orchestrateur Claude avant la gate PMO Gate 5. Il confronte les documents produits pour identifier convergences, divergences et zones d'ombre.
1. Sources confrontées¶
- Specification :
PD-252-specification.md(v3, étape 1) — 9 invariants, 12 critères d'acceptation, 8 cas d'erreur - Tests :
PD-252-tests.md(v3, étape 2) — 11 TC-NOM, 8 TC-ERR, 1 TC-INV, 1 TC-MEC, 4 TC-NR, 6 TC-NEG - Plan :
PD-252-plan.md(étape 4) — 2 composants (C1 + C2), 3 flux, mappings invariants/CA/tests - Code contracts :
PD-252-code-contracts.yaml(étape 4) — 2 modules, invariants et forbidden listés
2. Convergences¶
-
Nature documentaire pure : Les 4 documents s'accordent sans exception — PD-252 ne produit aucun code applicatif ; les deux seuls livrables sont des fichiers Markdown dans
ProbatioVault-doc. -
Chemin contractuel figé : Tous les documents désignent
docs/sae-manual/preservation-format-policy.mdcomme emplacement unique de C1. -
Fichier cible de l'amendement : Tous les documents désignent
docs/sae-manual/ch08-conformite.mdcomme seul fichier modifié pour C2. -
Catalogue des formats : La liste canonique de 14 formats en 5 catégories (§5.4b spec → TC-NOM-02 tests → §3 plan → invariant INV-252-02 code contracts) est identique dans les 4 documents. Aucune divergence de périmètre.
-
Invariants INV-252-01 à INV-252-09 : Tous repris de façon cohérente dans les 4 documents. Les codes contracts n'en ajoutent aucun et n'en suppriment aucun.
-
SHA3-384 : Présent de façon identique dans la spec (INV-252-05, §5.1), les tests (TC-NOM-05, TC-NOM-09), le plan (INV-252-05 mapping, point de vigilance §9.7 sécurité) et les code contracts (invariant INV-252-05, forbidden).
-
Distinction
normativeReferencevs citations documentaires : La note contractuelle de la spec §5.1 est reprise textuellement dans les tests (TC-NOM-09), le plan (§9.4 point de vigilance) et les code contracts (invariant + forbidden). Cohérence totale. -
Modèle d'états : 4 états (
UNCLASSIFIED,COMPLETE,BITSTREAM,REJECTED), transitions autorisées depuisUNCLASSIFIED, transitions inverses interdites — identiques dans spec §5.8, tests TC-NOM-07/TC-NEG-06, plan INV-252-07 mapping et code contracts invariant INV-252-07. -
Q-252-05 NON TESTABLE : L'absence de test déterministe sur la modalité exacte du lien
GAP-FINAL-004est reconnue de façon cohérente dans les 4 documents (spec §10.2, tests §9, plan H-06 + hors périmètre, code contracts INV-252-09). -
Protection des sections ch08 hors périmètre : Le plan (C2 — modification minimale ciblée) et les code contracts (module
ch08-amendment, sections forbidden) convergent sur la lecture seule de toutes les sections ch08 sauf §8.4 et §8.5. -
Clause de non-conformité technique (validations PLANIFIÉ) : Formulation identique dans la spec §5.6, les tests TC-NOM-05, le plan §9.5 et les code contracts (invariant
preservation-format-policy). -
Couverture de test : Le mapping plan §5 (TC-* → mécanismes) couvre les 31 tests définis dans les tests. Aucun test orphelin.
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
DIV-01 : Faute de frappe sur le statut IMPLÉMENTÉ dans les code contracts
- Source A (Spec §5.6, tableau validations) : Colonne statut libellée
IMPLEMENTE(sans accent, orthographe correcte). - Source B (Code contracts, module
preservation-format-policy, invariant INV-252-05) :"avec statut IMPLÉMEMTÉ ou PLANIFIÉ (PD-NEW)"— doubleMsurIMPLÉMEMTÉ. - Source C (Tests TC-NOM-05) :
"Chaque validation a un Statut implementation (IMPLÉMEMTÉ ou PLANIFIÉ (PD-NEW))"— même doubleM. - Impact : Si l'agent producteur (agent-doc-writer) reproduit le libellé des code contracts ou des tests pour le tableau §5 de C1, le terme sera erroné. En revue documentaire structurée (TC-NOM-05), le vérificateur pourrait rejeter le tableau si la valeur attendue est
IMPLÉMEMTÉ(typo) alors que le revieweur compare àIMPLEMENTE(spec). Risque faible mais source d'ambiguïté lors de la vérification CA-05.
DIV-02 : Mise à jour de §8.5 « Plan de remédiation » contractualisée mais non testée
- Source A (Plan §2 Flux F2, étape 4) : "Mettre à jour §8.5 Plan de remédiation : entrée GAP-FINAL-004 : statut
Planifié→DONE". - Source B (Code contracts, module
ch08-amendment, invariant 3) :"Le statut de GAP-FINAL-004 dans §8.5 DOIT passer de 'Planifié' à 'DONE'". - Source C (Tests — ensemble des TC-*) : Aucun test (
TC-NOM-01,TC-NOM-09, ni aucun autre) ne vérifie explicitement la mise à jour de §8.5.TC-NOM-01vérifie uniquement la présence du lien dans ch08 (CA-01/CA-08).TC-NOM-09vérifie la tracabilitéGAP-FINAL-004dans C1, pas dans §8.5 de C2. - Impact : La mise à jour de §8.5 est un livrable contractualisé (plan + code contracts) sans observable de test associé. Si elle est omise, aucun test ne la détecterait. La couverture de C2 est partiellement borgne.
4. Zones d'ombre¶
ZA-01 — Mécanisme de discrimination FACTUR-X / PDF/A-3B non contractualisé
- La spec §5.4 step 6 décrit la discrimination via détection de flux XML embarqué CII/UBL (EN 16931), avec statut
PLANIFIÉ (PD-NEW). Le plan reprend cette note (§3 Flux F1 step 6). Mais les code contracts (modulepreservation-format-policy) ne contractualisent pas ce mécanisme comme invariant ou forbidden. Aucun test ne vérifie que la politique documente ce mécanisme de discrimination. Si l'agent-doc-writer omet la note de discrimination, aucun invariant ni test ne le détecte.
ZA-02 — Référence croisée à INV-249-05 (protection des scores ch08) non traçable depuis PD-252
- Les code contracts (module
ch08-amendment, forbidden) font référence àINV-249-05pour justifier la protection des scores77,78% / 68,18% / 72,98%. La spec PD-252 et les tests PD-252 ne font aucune mention de INV-249-05. Cette contrainte croisée est opaque pour un vérificateur qui n'a accès qu'aux artefacts PD-252 : elle ne peut pas être auditée à partir du dossier PD-252 seul.
ZA-03 — Contenu actuel de ch08 supposé sans vérification documentaire
- Le plan (Flux F2, étape 3) et les code contracts (
ch08-amendment, invariant 4) supposent que ch08 contient actuellement la référencePD-NEW-FORMAT-POLICYcomme story associée à GAP-FINAL-004. Aucun document du dossier PD-252 ne cite le contenu actuel exact de ch08. Si ch08 a déjà été modifié entre la rédaction du plan et l'implémentation, les instructions de mise à jour pourraient être incorrectes ou produire un doublon.
ZA-04 — Absence de section dédiée "NON TESTABLE" pour INV-252-09 dans le plan
- La spec §9 identifie INV-252-09 ("règles non testables marquées NON TESTABLE") et Q-252-05 comme NON TESTABLE. Les tests ont une section §9 explicite "Règles non testables". Le plan décrit le mécanisme (point §9 hors périmètre + mapping TC-INV-09). Mais le plan ne liste pas de section dédiée aux règles NON TESTABLE dans la structure de C1 — il se contente de mentionner "Marquer règles NON TESTABLE avec justification (Q-252-05)" à l'étape 11 du Flux F1. La visibilité de cette section dans la structure finale de C1 n'est pas garantie.
5. Recommandation¶
- Procéder — convergence confirmée, aucun conflit bloquant
- Rework nécessaire — 2 divergences à résoudre avant de continuer :
- DIV-01 : Corriger le typo
IMPLÉMEMTÉ→IMPLÉMENTÉdans les code contracts (modulepreservation-format-policy, invariant INV-252-05) ET dans les tests (TC-NOM-05, TC-NOM-07, matrice de couverture §2 si applicable). Adopter la graphie sans accentIMPLEMENTEde la spec, ou corriger de façon cohérente dans les 3 documents. - DIV-02 : Ajouter un test dédié (ou étendre TC-NOM-01) pour vérifier la mise à jour de §8.5 dans ch08 — ou, à défaut, décider explicitement que §8.5 est couvert implicitement par CA-08/CA-09 et documenter cette décision dans les tests (section "Règles non testables" ou note).
- Escalade — décision humaine requise sur un point structurant
Note : Les zones d'ombre ZA-01 à ZA-04 sont des lacunes de spécification ou de contractualisation, non des blocages Gate 5. Elles sont signalées pour traitement optionnel avant rédaction de C1.