@@ -68,21 +68,25 @@ In `data/leads/`:
6868
6969Ogni pista contiene ** sempre** tutti i campi di ` docs/FORMATO_PISTA.md `
7070(` id ` , ` title ` , ` observed_facts ` , ` sources ` , ` period ` , ` rule_id ` ,
71- ` why_worth_checking ` , ` what_cannot_be_claimed ` , ` generation_date ` , ` disclaimer ` ).
71+ ` why_worth_checking ` , ` what_cannot_be_claimed ` , ` data_through ` , ` snapshot_created_at ` , ` explorer_sha ` , ` disclaimer ` ).
7272Esempio di ` title ` : * "Nominativo presente in 5 incarichi su enti diversi – anno 2025"* .
7373
7474### 5. Opzioni
75- - ` --generation-date YYYY-MM-DD ` : forza la data di riferimento. Se omessa, viene ** derivata
76- deterministicamente** dai dati (anno massimo nei periodi osservati) — mai l'orario di esecuzione.
75+ - Non ci sono flag di data: ` data_through ` , ` snapshot_created_at ` ed ` explorer_sha ` sono ** derivati
76+ deterministicamente** dai dati (mai l'orario di esecuzione) .
7777- Su dati reali dell'Explorer l'esecuzione produce poche piste (es. 7 nell'ultimo test:
78- 7 ` REGOLA-002 ` , 0 ` REGOLA-001 ` , 0 ` REGOLA-003 ` ); è voluto: le regole sono conservative.
78+ 3 ` REGOLA-002 ` , 0 ` REGOLA-001 ` , 0 ` REGOLA-003 ` ); è voluto: le regole sono conservative.
79+ - Ogni esecuzione scrive ` data/leads/manifest.json ` : input attesi, hash, righe, righe usate/scartate,
80+ stato e motivo degli scarti. Input obbligatori mancanti/illeggibili → la pipeline fallisce (exit 1).
7981
8082---
8183
8284## Comportamento importante
83- - ** Deterministico** : stesso input → stesso output. ` generation_date ` deriva dai dati, non da ` datetime.now() ` .
84- - ** Fail-closed** : se ` data/input/ ` è vuoto o mancano colonne obbligatorie, ** non viene emessa
85- alcuna pista** (nessun errore, nessuna inferenza). Nessun dato lascia mai la macchina.
85+ - ** Deterministico** : stesso input → stesso output. ` data_through ` /` snapshot_created_at ` /` explorer_sha ` derivano dai dati, non da ` datetime.now() ` .
86+ - ** Fail-closed sul contenuto, fail-loud sugli input** : un input rotto (file obbligatorio mancante,
87+ illeggibile o con colonne mancanti) fa fallire la pipeline e scrive ` manifest.json ` con stato
88+ ` failed ` (exit 1) — così è distinguibile da un vero risultato pari a zero. Con input validi,
89+ soglie non superate → zero piste, nessun errore. Nessun dato lascia mai la macchina.
8690
8791## Mappatura Explorer → generatore
8892| Tabella Explorer | → colonne generatore |
0 commit comments