PD-277 — 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¶
- Spécification canonique v2 :
PD-277 — Specification canonique anti-rejeu nonce et PKI certificate binding (v2)(étape 1 — spécification) - Scénarios de tests contractuels v2 :
PD-277 — Scénarios de tests contractuels (v2)(étape 2 — tests & validation)
2. Convergences¶
- Objectif de conformité aligné : exigence explicite de
24/24checks bloquants OK dans la spécification (objectif, CA-277-07) et dans les tests (TC-NOM-04,TC-ERR-10, verdict QA). - Couverture des deux non-conformités bloquantes alignée : anti-rejeu nonce (CHECK 23) et PKI binding (CHECK 24) présents et testés dans les deux documents.
- Contrat de persistance convergent : ajout de
used_nonces,owner_certificate_id,recipient_certificate_idavec contraintes attendues, repris dansTC-NOM-05. - Invariants de sécurité cohérents : fail-closed, unicité nonce par
LegalReKey, immutabilité des certificats, traçabilité Prolog, absence de nouveauxStatusEnumLegal* (matrice de couverture + tests dédiés). - Exigence d'atomicité/concurrence convergente : la spécification impose une exécution atomique et les tests couvrent la concurrence/rejeu simultané (
ST-277-06,TC-NEG-02). - Contrôle Prolog convergent : obligation de régénération
_generated-facts.plpuisrun_audit.dans les deux documents (F3/F4,TC-NOM-03/04,TC-ERR-09). - Migration et non-régression convergentes : up/down obligatoires, stabilité des checks 1..22 et absence d'impact hors périmètre
legal-pre(CA-277-09,TC-NR-01..03).
3. Divergences¶
⚠️ Les conflits ne doivent JAMAIS être lissés. Chaque divergence est rendue visible.
- DIV-01 : Origine du nonce incohérente entre contrat de génération et scénarios de tests.
- Source A (Spécification, §4 Format du nonce) : nonce généré côté serveur uniquement via
crypto.randomUUID(), jamais côté client. - Source B (Tests,
TC-ERR-01,TC-ERR-02,TC-NEG-01) : les cas supposent un nonce fourni en entrée d'appel (absent, mal formé, variations de casse/espaces), donc piloté par le client/appelant. -
Impact : ambiguïté d'architecture d'API (
reEncrypt) et risque de verdict gate contestable sur une base de tests qui valident un mode d'entrée différent du mode de génération contractuel. -
DIV-02 : Portée de vérification Prolog potentiellement contradictoire (
exactementvsau minimum). - Source A (Spécification, §8) : les trois faits CHECK 23/24 sont obligatoires dans
_generated-facts.plavant audit. - Source B (Tests,
TC-NOM-03) : exige que le fichier contienneexactement les faits attendus(les trois lignes listées). - Impact : un fichier Prolog valide contenant d'autres faits légitimes pourrait être déclaré en échec de test malgré conformité réelle, créant un faux négatif QA.
4. Zones d'ombre¶
- Le mécanisme exact d'application de l'immutabilité des certificats n'est pas précisé (contrainte DB, garde service, subscriber TypeORM, combinaison), alors que les tests attendent un rejet explicite.
- Le protocole probatoire de
INV-277-06n'est pas défini opérationnellement (format de preuve, source, seuil d'acceptation) malgré son caractère obligatoire pour la conformité. - La baseline de référence des
StatusEnumLegal* (source canonique, commit/tag, artefact) n'est pas identifiée, alors que la comparaison avant/après est exigée. - La vérification "impact triggers/workers dépendants" est demandée par la spécification (stratégie migration) mais sans critères observables dédiés dans le plan de test.
- Le périmètre exact de
TC-NR-02("hors modulelegal-pre") n'énumère pas les composants cibles à contrôler, laissant un risque de couverture partielle.
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