{
  "report_file": "agent_20260509_0837.md",
  "marked_at": "2026-05-09T08:44:11.217728+00:00",
  "coherent": false,
  "flags": [
    {
      "lens": 2,
      "severity": "medium",
      "claim": "periodic_closure conserva label ma produce no_cross su una quota stabile / la separazione trasferisce in scala",
      "evidence": "Le quote candidate variano molto tra N: order_memory 104/353, 29/510, 118/567, 28/576; periodic_closure 99/528, 51/576, 144/576, 99/576. Anche nel best-per-mode periodic_closure passa da 0/33 no_cross a N=89, poi 9/36, 9/36, 15/36. La stabilita non e' dimostrata da una quota percentuale su denominatori e selezioni diverse.",
      "suggestion": "Nel prossimo ciclo separare count assoluti e denominatori: riportare per N `accepted_count`, `no_cross_count`, `internal_cross_count`, e una misura dimensionless stabile come log-odds o mutual information tra `generator_class` ed `event_type` condizionata a N."
    },
    {
      "lens": 4,
      "severity": "medium",
      "claim": "`order_memory` porta il crossing / `internal_cross` resta stabile quando il generatore conserva ordine aperto",
      "evidence": "Sugli accepted event rows order_memory ha 819 internal_cross, 11 internal_multi, ma anche 7 no_cross su 837. Quindi non e' un invariante senza eccezioni; e' una dominanza con controesempi visibili.",
      "suggestion": "Riformulare il perimetro come `order_memory produce crossing-or-multi in 830/837 accepted rows; i 7 no_cross vanno isolati per source_mode, N, phase e r_threshold`."
    },
    {
      "lens": 4,
      "severity": "high",
      "claim": "periodic_closure accetta label ma rompe il crossing",
      "evidence": "Nel totale periodic_closure produce 306 internal_cross su 1179 accepted event rows, e nel best-per-mode a N=89 produce internal_cross=33 su 33 senza no_cross. Quindi periodic_closure non rompe sempre il crossing; rompe spesso o in specifici sotto-perimetri.",
      "suggestion": "Specificare il contro-perimetro: `periodic_closure disaccoppia label e crossing in 873/1179 accepted event rows, ma non a N=89 best-per-mode; isolare periodic_21/45/72 e soglie che generano internal_cross`."
    },
    {
      "lens": 5,
      "severity": "low",
      "claim": "la classe operativa del generatore deve entrare nel contratto boundary",
      "evidence": "Il report usa generatori Sturmian, periodic approximants, block shuffles e random/Markov, ma non ancora ancora il finding a risultati classici vicini su parole Sturmian, approximants periodici, subshift/word complexity o stabilita dei fattori sotto perturbazioni.",
      "suggestion": "Prima di promuovere il contratto come scoperta, aggiungere una riga `nearest classical result` con il teorema o famiglia nota piu' vicina: Sturmian words, periodic approximants, factor complexity, symbolic dynamics."
    }
  ],
  "summary": "Il report e' parzialmente coerente, ma L2 e L4 si rompono: usa stabilita e rottura del crossing dove i dati mostrano variazione di scala ed eccezioni non isolate."
}