Aller au contenu

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