{
  "report_file": "agent_20260516_1045.md",
  "marked_at": "2026-05-16T10:54:28.279895+00:00",
  "coherent": false,
  "flags": [
    {
      "lens": 3,
      "severity": "medium",
      "claim": "p-value = frazione null con successi endpoint almeno pari all'osservato; combined p=0.124031; 15/128 null arrivano a 36/36",
      "evidence": "La Null Distribution mostra 15 trial su 128 con null_success_count=36. La frazione grezza e' 15/128 = 0.1171875, non 0.124031. Il valore 0.124031 corrisponde a una correzione tipo (15+1)/(128+1), ma questa definizione non e' dichiarata nel setup.",
      "suggestion": "Nel prossimo ciclo dichiarare esplicitamente se il p-value usa frazione grezza k/N o correzione add-one (k+1)/(N+1), e riportare entrambi se serve continuita' con i run precedenti."
    },
    {
      "lens": 8,
      "severity": "low",
      "claim": "`relation`: `follows_direction`; denominator=2 domini x 3 size x 6 test seed = 36 source rows",
      "evidence": "La direzione viva in seme.json e lab_data.json e': 'Esplorare il confine: 8 domini GUE, 5 Poisson — il confine è il terzo incluso operativo'. Il report testa solo 2 endpoint sintetici, GUE e Poisson, e non il perimetro 8+5 indicato dal seme. La deviazione e' motivata come preflight endpoint/null, quindi non e' drift HIGH, ma il residuo numerico 8/5 non viene chiuso nel contratto.",
      "suggestion": "Aggiungere una riga di perimetro: `seed_residue=8 GUE / 5 Poisson non testati; endpoint preflight su 2 poli sintetici; prossimo check estende il filtro ai 13 domini prima di RP`."
    }
  ],
  "summary": "Il report e' sostanzialmente coerente, ma L3 si incrina sulla definizione non dichiarata del p-value e L8 lascia un residuo di perimetro rispetto alla direzione 8 GUE / 5 Poisson."
}