Aller au contenu

PD-42 — Acceptabilité

1. Références

  • Spécification : PD-42-specification.md
  • Tests contractuels : PD-42-tests.md
  • Plan d’implémentation : PD-42-plan.md
  • Commit / version évaluée : f8651be058a4877b4aa066dd3a7b471bf3e0188d
  • Date de la revue : 2026-01-24

2. Synthèse exécutive

Revue de conformité PD-42 (spec/tests/plan) et exécution des tests contractuels. Les tests contractuels s’exécutent et passent (70/70) via vitest. La traçabilité client (KW-CANON-01, HKDF, HMAC, Base64 URL-safe, erreurs ERR-01..05) est couverte par le code et les tests. En revanche, les composants serveur décrits dans le plan (MetadataValidator, SearchIndex, TokenStorage) ne sont pas implémentés dans le code fourni, ce qui empêche d’attester la conformité plan → code et les invariants côté serveur. Verdict : refusé.

3. Résultats des tests contractuels

Test ID Statut (PASS/FAIL/ABSENT) Preuve d’exécution Commentaire
TC-NOM-01 PASS npx vitest run src/crypto/tests/search (2026-01-24) Determinisme token
TC-NOM-02 PASS npx vitest run src/crypto/tests/search (2026-01-24) Canonicalisation KW-CANON-01
TC-NOM-03 PASS npx vitest run src/crypto/tests/search (2026-01-24) Distinction keywords
TC-NOM-04 PASS npx vitest run src/crypto/tests/search (2026-01-24) Egalite stricte
TC-NOM-05 PASS npx vitest run src/crypto/tests/search (2026-01-24) Isolation K_search
TC-NOM-06 PASS npx vitest run src/crypto/tests/search (2026-01-24) Zero-knowledge (client)
TC-NOM-07 PASS npx vitest run src/crypto/tests/search (2026-01-24) Metadonnees
TC-ERR-01 PASS npx vitest run src/crypto/tests/search (2026-01-24) Keyword vide
TC-ERR-02 PASS npx vitest run src/crypto/tests/search (2026-01-24) Keyword non canonicalisable
TC-ERR-03 PASS npx vitest run src/crypto/tests/search (2026-01-24) K_search invalide
TC-ERR-04 PASS npx vitest run src/crypto/tests/search (2026-01-24) Metadonnees non conformes
TC-ERR-05 PASS npx vitest run src/crypto/tests/search (2026-01-24) Depassement longueur
TC-NR-01 PASS npx vitest run src/crypto/tests/search (2026-01-24) VEC-01/02/03
TC-NR-02 PASS npx vitest run src/crypto/tests/search (2026-01-24) Index stability
TC-NEG-01 PASS npx vitest run src/crypto/tests/search (2026-01-24) Pas de keyword en clair (client)
TC-NEG-02 PASS npx vitest run src/crypto/tests/search (2026-01-24) Metadata consistency
VEC-01 PASS npx vitest run src/crypto/tests/search (2026-01-24) Vecteur deterministe
VEC-02 PASS npx vitest run src/crypto/tests/search (2026-01-24) Vecteur deterministe
VEC-03 PASS npx vitest run src/crypto/tests/search (2026-01-24) Vecteur deterministe

4. Écarts identifiés

Classification des écarts

Niveau Définition
BLOQUANT Violation d’invariant, faille de sécurité, non-conformité majeure
MAJEUR Fonction incomplète ou non conforme sans rupture de sécurité
MINEUR Détail ou dette non critique

Détail des écarts

ID Description Référence Gravité Statut (OUVERT/RÉSOLU/PR)
E-01 Les composants serveur du plan (MetadataValidator, SearchIndex, TokenStorage) ne sont pas implémentés dans le code fourni; la conformité plan → code et les invariants côté serveur ne sont pas démontrables. Plan §3, §4.4-§4.6, §6 / Code: src/crypto/search/ BLOQUANT OUVERT
E-02 Le plan et la matrice de couverture introduisent des hypothèses supplémentaires (H-04..H-08, H-09) au-delà de H-01..H-03 contractuels. Plan §10.2 / PD-42-coverage-matrix.md §6.1 MAJEUR OUVERT

5. Hypothèses et TODO recensés

  • Hypothèses complémentaires : H-04 (lib crypto), H-05 (Unicode NFC), H-06 (Base64 URL-safe), H-07 (comparaison byte-to-byte), H-08 (stockage VARCHAR(22)), H-09 (user_id gere cote serveur).
  • TODO restants (non bloquants) : aucun explicite.

6. Verdict d’acceptabilité (unique)

  • ⛔ REFUSÉ
  • ⚠️ ACCEPTÉ AVEC RÉSERVES
  • ✅ ACCEPTÉ

Verdict (historique - revue 2026-01-24) : ⛔ REFUSÉ Date : 2026-01-24 Motif synthétique : Non-conformité majeure plan → code sur les composants serveur et hypothèses supplémentaires non prévues par la spec.

7. Revue d'acceptabilité post-correction (2026-01-25)

[2026-01-25] — Suivi E-01

  • Statut précédent : OUVERT
  • Statut actuel : RÉSOLU
  • Justification factuelle :
  • PD-42-plan.md explicite la délégation des composants serveur à PD-236 (Architecture §3, Modules serveur §4.4-§4.6, Checklist §14.2).
  • PD-236-acceptability.md : verdict ✅ ACCEPTÉ avec 135/135 tests PASS.
  • Preuve de vérification :
  • PD-42-plan.md §3, §4.4-§4.6, §14.2.
  • PD-236-acceptability.md (✅ ACCEPTÉ).

[2026-01-25] — Suivi E-02

  • Statut précédent : OUVERT
  • Statut actuel : RÉSOLU
  • Justification factuelle :
  • PD-42-specification.md §10 intègre H-04..H-09 (H-04/H-05 client ; H-06..H-09 serveur).
  • PD-42-plan.md §10.2 aligne les hypothèses d'implémentation avec la spec, et renvoie au serveur PD-236.
  • Preuve de vérification :
  • PD-42-specification.md §10.
  • PD-42-plan.md §10.2.
  • PD-236-acceptability.md.

Verdict d'acceptabilité (courant)

Verdict actuel : ✅ ACCEPTÉ Date : 2026-01-25 Motif synthétique : E-01/E-02 résolus (délégation formalisée à PD-236, hypothèses H-04..H-09 intégrées à la spec). Tests client 70/70 PASS (dernière exécution 2026-01-24).

Historique des verdicts

Date Verdict Version / commit Commentaire
2026-01-24 ⛔ REFUSÉ f8651be E-01 bloquant, E-02 majeur
2026-01-25 ✅ ACCEPTÉ f8651be (docs locaux) E-01/E-02 résolus, délégation PD-236 + mise à jour spec