PD-237 — Review de specification (v2)¶
1. References¶
- Specification : PD-237-specification.md
- Tests contractuels : PD-237-tests.md
- Dependance normative : PD-54-specification.md
- Date de la revue : 2026-01-25 (revision post-correction)
- Revue precedente : 2026-01-25 (v1)
- Auditeur : Claude (auditeur technique independant)
2. Synthese¶
La specification PD-237 est coherente, complete et testable. Les points identifies lors de la revue initiale (v1) ont ete resolus. La specification peut etre implementee sans ambiguite majeure.
Points identifies : 0 Bloquant, 0 Majeur, 1 Mineur
3. Points resolus depuis la revue v1¶
| ID v1 | Type | Resolution |
|---|---|---|
| POINT-01 | Ambiguite | §5.2 : "Si tree_id est absent, le backend recherche dans tous les arbres et retourne tous les resultats correspondants, ordonnes par tree_id croissant." TC-NOM-04 verifie l'ordre deterministe. |
| POINT-02 | Ambiguite | §3 : "InclusionProof : liste ordonnee de hashes (encodage hex lowercase conforme a hash_algorithm_id) [...] ordonnee du niveau feuille vers la racine." §9.2 confirme le format JSONB. |
| POINT-03 | Hypothese dangereuse | §5.1 : "Le backend verifie que chaque inclusion_proof permet de reconstruire merkle_root." H-02 explicite la dependance a une implementation de hash. §1 ajoute la clause de responsabilite vis-a-vis PD-54. |
| POINT-04 | Ambiguite | §3 : "tree_id : identifiant unique genere par le backend pour chaque persistance, opaque et non determinant; deux arbres identiques peuvent avoir des tree_id differents." |
| POINT-05 | Incoherence Spec-Tests | §2.1 reformule : "Verification de la coherence interne des donnees persistees (presence, formats, cardinalites, preuves coherentes avec merkle_root)." Testable via TC-NOM-01, TC-ERR-04. |
| POINT-06 | Risque secu/conformite | §9 note finale : "La couche de stockage DOIT empecher les operations DELETE/UPDATE sur merkle_trees/merkle_leaves." |
| POINT-07 | Ambiguite | §9 note : "Si un autre algorithme est utilise, une contrainte equivalente DOIT etre definie." |
4. Points identifies (post-correction)¶
POINT-08¶
Type : Ambiguite
Reference : PD-237-specification.md §6 / PD-237-tests.md TC-ERR-07, TC-NEG-01
Description : La notion de "meme tree_id" dans ERR-MK-07 et TC-NEG-01/TC-ERR-07
est ambigue puisque tree_id est genere par le backend (§3). Un appelant ne peut
pas connaitre le tree_id avant la persistance initiale.
Le scenario "rejeu avec le meme tree_id" suppose que l'appelant tente de
re-soumettre un tree_id deja attribue, ce qui n'est possible que si :
- L'appelant a recupere le tree_id d'une persistance precedente
- L'API accepte un tree_id fourni par l'appelant (non specifie)
Impact : Scenario de test potentiellement non realisable tel que decrit.
Gravite : Mineur
5. Coherence Spec - Tests¶
| Element Spec | Couverture Test | Statut |
|---|---|---|
| INV-BE-01 | TC-INV-01, TC-NOM-05 | OK |
| INV-BE-02 | TC-INV-02, TC-NOM-02 | OK |
| INV-BE-03 | TC-INV-03 | OK |
| INV-BE-04 | TC-INV-04 | OK |
| INV-BE-05 | TC-INV-05, TC-NEG-01, TC-NEG-02 | OK |
| CA-01 | TC-NOM-01, TC-ERR-01..04 | OK |
| CA-02 | TC-NOM-02, TC-INV-02 | OK |
| CA-03 | TC-NOM-05, TC-INV-01 | OK |
| CA-04 | TC-INV-04, TC-ERR-03 | OK |
| CA-05 | TC-NR-01, TC-INV-05 | OK |
| CA-06 | TC-NOM-04, TC-NR-02 | OK |
| ERR-MK-01..07 | TC-ERR-01..07 | OK |
| §5.1 verification preuves | TC-NOM-01, TC-ERR-04 | OK |
| §5.2 ordre tree_id croissant | TC-NOM-04 | OK |
| §9 append-only stockage | TC-INV-05 | OK (principe, non testable SQL) |
6. Ameliorations constatees¶
6.1 Clause de responsabilite (§1)¶
"La conformite du backend est conditionnee a l'existence de definitions normatives, versionnees et testables des artefacts PD-54 consommes [...] Toute ambiguite ou lacune dans PD-54 est hors responsabilite du backend."
Cette clause protege le perimetre de PD-237 et clarifie les dependances.
6.2 Verification des preuves (§5.1)¶
"Le backend verifie que chaque inclusion_proof permet de reconstruire merkle_root a partir de la leaf correspondante, selon hash_algorithm_id."
L'hypothese dangereuse H-01 v1 est mitigee par cette verification active.
6.3 Format des preuves (§3, §9.2)¶
Format completement specifie : "liste ordonnee de hashes (encodage hex lowercase conforme a hash_algorithm_id) [...] ordonnee du niveau feuille vers la racine."
6.4 Atomicite et non-recuperabilite (§6, CA-01)¶
"n'entraine aucune recuperabilite via l'API des racines, feuilles, preuves ou metadonnees associees au payload"
Renforce le caractere transactionnel et testable des rejets.
7. Verdict de revue¶
| Categorie | Bloquant | Majeur | Mineur |
|---|---|---|---|
| Ambiguites | 0 | 0 | 1 |
| Contradictions | 0 | 0 | 0 |
| Non testable | 0 | 0 | 0 |
| Incoherence Spec-Tests | 0 | 0 | 0 |
| Hypothese dangereuse | 0 | 0 | 0 |
| Risque secu/conformite | 0 | 0 | 0 |
| Total | 0 | 0 | 1 |
Verdict : ✅ ACCEPTABLE
La specification est prete pour implementation. Le point MINEUR (POINT-08) peut etre clarifie lors de l'implementation ou dans le plan d'implementation.
8. Historique des revues¶
| Date | Version | Verdict | Points |
|---|---|---|---|
| 2026-01-25 | v1 | ⚠️ ACCEPTABLE AVEC RESERVES | 3 Majeurs, 4 Mineurs |
| 2026-01-25 | v2 | ✅ ACCEPTABLE | 0 Majeurs, 1 Mineur |