Aller au contenu

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

Resultat : 27/27 OK — CONFORME

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

npx tsc --noEmit src/modules/anchor/services/anchor-batch.service.ts

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 vers failBatch() qui valide la transition d'etat
  • _resolve_import_path ne resout que les imports relatifs (pas de path traversal)
  • _resolve_enum_from_import ouvre 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.