PD-295 — Rapport de confrontation (Étape 3)¶
Ce rapport est produit par l'orchestrateur Claude avant chaque gate PMO. Il confronte les documents produits pour identifier convergences, divergences et zones d'ombre.
1. Sources confrontées¶
PD-295-specification.md(cycle 3 v3)PD-295-tests.md(cycle 3 v3)
2. Convergences¶
- Alignement global B1..B5 (veille, clarifications non-PII, scoring, promotion/archivage, injection).
- Alignement HMAC/JCS, y compris V1/V4/V6/V8 (
CA-295-05↔TC-NOM-06). - Alignement fail-closed B5 (
EMPTY_BLOCK, borne de récursion) (INV-295-10,INV-295-17↔TC-ERR-13,TC-NEG-17). - Alignement
count_configured/count_effective/under_corpus(INV-295-11,CA-295-08↔TC-NOM-08,TC-NEG-15). - Alignement
reuse_score(formule, 4 décimales, plafond0.9999) (INV-295-13↔TC-NOM-07,TC-NOM-10). - Alignement filtrage des lignes d’état non signées (
INV-295-STATE-01..03,CA-295-STATE-01↔TC-STATE-01..04). - Alignement machines d’état
learning.scope/clarification.lifecycle_state(INV-295-LS-*,INV-295-CL-*↔TC-NOM-11..14,TC-NEG-06/07,TC-ERR-15). - Alignement lock/timeout/stale (
INV-295-14, §5.12 ↔TC-NOM-15,TC-NOM-17,TC-ERR-08/09,TC-NEG-13). - Alignement NTP/dérive (
G-295-09,ERR-295-NTP_UNREACHABLE,ERR-295-CLOCK_DRIFT_EXCEEDED↔TC-NEG-10). - Alignement méta Gate 8 (
INV-295-16,CA-295-15↔TC-META-01..04,TC-ERR-17).
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
-
DIV-01 : Référentiel de briques incohérent sur la signature d’état.
Source A (Spécification) : contrat borné àB1..B5(Objectif,D-295-23).
Source B (Tests) : section6. Tests signature d’état B7.
Impact : ambiguïté de traçabilité (briqueB7non définie contractuellement). -
DIV-02 : Attribution incohérente des tests runtime verbatim.
Source A (Spécification) : isolation runtime rattachée à B2 (INV-295-RUNTIME-01..03, §5.3).
Source B (Tests) : section5. Tests runtime B5 (subprocess verbatim)alors que les scénarios testentb2-sanitizer.py.
Impact : ambiguïté de périmètre B2/B5 au moment du verdict. -
DIV-03 : Règle de redaction PII sur-spécifiée dans les tests.
Source A (Spécification) : exigence “résumé non-PII” +ERR-295-PII_DETECTED(D-295-17,CA-295-02), sans token imposé.
Source B (Tests) :TC-NEG-08impose<REDACTED_FAMILY_N>avant écriture, sinon erreur.
Impact : une implémentation conforme spec peut échouer aux tests si le masquage utilise un autre format. -
DIV-04 : Niveau d’exigence différent pour
ERR-295-HMAC_VERIFICATION_FAILED.
Source A (Spécification) : “ligne/trace rejetée” (§6).
Source B (Tests) : “trace rejetée + alerte” (TC-ERR-12).
Impact : conformité variable selon que l’alerte est obligatoire ou non. -
DIV-05 : Contrainte
count_configuredincompatible avec V6 validé en test.
Source A (Spécification) :D-295-26bornecount_configuredà5/3/3(ou6purge RGPD).
Source B (Tests) :TC-NOM-06valide V6, dont le payload contientcount_configured: 1(rotation).
Impact : incertitude normative sur les valeurs autorisées hors injection/purge. -
DIV-06 : Comportement attendu différent sur
ERR-295-PURGE_VERIFICATION_FAILED.
Source A (Spécification) : “alerte conformité” (§6).
Source B (Tests) : “clôture purge rejetée + alerte” (TC-ERR-16).
Impact : ambiguïté sur l’effet métier attendu (alerte seule vs rejet).
4. Zones d'ombre¶
Q-295-01,Q-295-02,Q-295-05,Q-295-06restent ouverts dans la spécification et non clos par les tests.- Le support exact des “traces query” à purger (
CA-295-04,TC-NOM-04) n’est pas explicitement listé. - La preuve explicite “clé Vault chargée une fois puis jamais relue en session” (
INV-295-09) n’a pas de scénario dédié. - Le reset à
0defail_closed_depthen fin de step 0 (D-295-32) n’a pas d’oracle de test explicite. - Le canal/forme des alertes opérateur/conformité n’est pas contractuellement spécifié.
5. Recommandation¶
- Procéder — convergence confirmée, aucun conflit bloquant
- Rework nécessaire — divergences à résoudre avant de continuer
- Escalade — décision humaine requise sur un point structurant