{
  "report_file": "agent_20260509_0829.md",
  "marked_at": "2026-05-09T08:32:45.659998+00:00",
  "coherent": false,
  "flags": [
    {
      "lens": 3,
      "severity": "high",
      "claim": "Quando `label_jaccard` resta alto ma `internal_cross` cade / `periodic_approximant_21` ha `no_cross=9/12` pur avendo `96` candidati accettati.",
      "evidence": "Nel riepilogo eventi usato per il crossing, `periodic_approximant_21` ha `label_jaccard_median=0.542`, sotto il gate dichiarato `label_jaccard>=0.75`. I `96` accettati provengono dalla tabella Candidate gate, ma il `no_cross=9/12` proviene dai best per modo: il report salda due denominatori/insiemi senza dichiarare il ponte.",
      "suggestion": "Nel prossimo ciclo emettere una tabella row-aligned: per ogni candidato accettato con `label_jaccard>=0.75`, riportare `event_type`. Se i 96 accettati non sono le stesse 12 righe evento, riformulare: il claim non e' ancora 'label alto ma crossing cade', ma 'candidate gate e event audit divergono fra livelli di aggregazione'."
    },
    {
      "lens": 4,
      "severity": "medium",
      "claim": "`event_type=internal_cross` sopravvive al block shuffle lungo.",
      "evidence": "Nei dati visibili l'affermazione vale solo per i block shuffle riportati nel summary eventi: `block_shuffle_21`, `block_shuffle_34`, `block_shuffle_45` hanno `internal_cross=12/12`. La tabella Candidate gate include anche `block_shuffle_27` e `block_shuffle_37`, ma non esiste event summary per quei modi.",
      "suggestion": "Limitare il perimetro a `block_shuffle_21/34/45` oppure aggiungere audit eventi per `block_shuffle_27/37`. Non generalizzare a 'block shuffle lungo' se alcuni modi accettati non sono testati sul crossing."
    },
    {
      "lens": 2,
      "severity": "medium",
      "claim": "Random e Markov restano dispersione: Balanced random accetta `0/512`; Markov-density accetta `0/384`.",
      "evidence": "Il confronto usa denominatori diversi (`512` vs `384`) e poi confronta i loro best su `12` righe ciascuno. La conclusione qualitativa e' plausibile, ma la forza del confronto non e' normalizzata su una unita' comune.",
      "suggestion": "Riportare count grezzi affiancati da stessa unita' operativa: numero di candidati sopra gate per trial count uguale, oppure distribuzione di `label_jaccard`, `hamming_ratio`, `event_type` su campioni pareggiati."
    }
  ],
  "summary": "Il report non e' pienamente coerente: si rompe soprattutto L3, perche' il claim 'label alto ma crossing cade' combina candidate gate e event audit senza dimostrare che siano lo stesso insieme di righe."
}