PD-274 — Acceptabilite¶
1. Resume¶
PD-274 corrige 2 checks Prolog PV-ANCHOR-001 (check_batch_status_enum + check_handle_reorg) passant de PARTIEL a OK. Resultat final : 27/27 checks CONFORME.
2. Modifications effectuees¶
2.1 extract-facts.py (ProbatioVault-doc)¶
Fichier : scripts/formal/extract-facts.py Methode : _extract_enums + 3 nouvelles methodes helpers
Changement : Ajout du Pattern B de detection des enums pour les colonnes @Column({ type: 'varchar' }) dont la propriete TypeScript est typee avec un enum importe. Resout l'import relatif, ouvre le fichier enum, extrait les valeurs et genere le fait entity_enum_values(...).
INV couverts : INV-274-01, INV-274-02
2.2 anchor-batch.service.ts (ProbatioVault-backend)¶
Fichier : src/modules/anchor/services/anchor-batch.service.ts Methode : handleReorg(batchId: string): Promise<void>
Changement : Ajout d'une methode alias handleReorg() delegant vers failBatch(batchId, 'blockchain_reorg'). Pattern identique a PD-273 (sign() → signAuditEntry()).
INV couverts : INV-274-03
2.3 test_data.pl (ProbatioVault-doc)¶
Fichier : docs/normes/pv-anchor/formal/test_data.pl
Changement : Aucune modification — facts deja coherents (service_method handleReorg ligne 15, entity_enum_values ligne 52).
3. Quality Gates automatisees¶
3.1 Prolog PV-ANCHOR-001¶
Tous les checks passent, y compris les 2 precedemment KO : - check_batch_status_enum : OK (enum status 6 valeurs detectees) - check_handle_reorg : OK (handleReorg() detectee)
3.2 TypeScript¶
0 erreurs dans le fichier modifie. Erreurs pre-existantes dans proof-artifact.dto.ts (decorateurs TS — non imputable a PD-274).
3.3 Python (extract-facts.py)¶
Pas d'erreur de syntaxe. Les 3 nouvelles methodes (_extract_varchar_enums, _resolve_enum_from_import, _resolve_import_path) sont coherentes avec le pattern existant de la classe EntityExtractor.
4. Reviews LLM¶
4.1 Revue de code¶
Pattern : Alias simple (1 methode, 1 ligne de delegation). Pas de logique nouvelle.
Conformite : - handleReorg() respecte le contrat Prolog service_method(anchor_batch, handleReorg) - Extract-facts.py : Pattern B est un complement du Pattern A existant, pas un remplacement - Deduplication via key not in source_map evite les facts dupliques
4.2 Revue des tests¶
Preuve : Run Prolog 27/27 OK. Les tests contractuels (TC-NOM-01 a TC-NOM-08) sont verifies par le run Prolog.
4.3 Revue securite¶
- Aucun secret expose
handleReorg()est un alias versfailBatch()qui valide la transition d'etat_resolve_import_pathne resout que les imports relatifs (pas de path traversal)_resolve_enum_from_importouvre uniquement des fichiers enum dans le meme projet
5. Ecarts identifies¶
| ID | Description | Criticite | Imputable PD-274 |
|---|---|---|---|
| - | Erreurs TS dans proof-artifact.dto.ts | Pre-existant | NON |
6. Verdict¶
ACCEPTE — 0 BLOQUANT, 0 MAJEUR, 0 MINEUR imputable a PD-274.