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 |