{
  "report_file": "agent_20260515_1915.md",
  "marked_at": "2026-05-15T19:28:16.389596+00:00",
  "coherent": false,
  "flags": [
    {
      "lens": 3,
      "severity": "medium",
      "claim": "observable_contract: una riga boundary a due lettori e' operativa solo se lo stato graph bridge sopravvive a perturbazioni del lettore e resta auditato dal baseline classico; Results: lab residue after stability = true con stable graph-only bridges = 3",
      "evidence": "Nei dati visibili solo 1 riga e' `stable_graph_bridge+classic_and_graph_bridge`; 3 righe sono `stable_graph_bridge+graph_only_bridge` e quindi non restano auditabili dal baseline classico. Se il criterio operativo richiede due lettori, il residuo Lab non puo' essere contato insieme al boundary a due lettori senza dichiarare un cambio di scope.",
      "suggestion": "Nel prossimo ciclo separare esplicitamente `two_reader_boundary_confirmed = 1` da `graph_only_residue = 3`; se le tre righe graph-only sono claim Lab-specific, dichiarare che il nodo regressivo corregge il contratto da `due lettori` a `frequenza grafica + audit dichiarato`, non a `audit positivo`."
    },
    {
      "lens": 5,
      "severity": "low",
      "claim": "Cosa resta Lab-specific: `percolation`, `reaction_diffusion`, `logistica_biforcazione_var_3.5699` sono `stable_graph_bridge+graph_only_bridge`, tutte 27/27. Il baseline classico le legge endpoint-like, il grafo le legge confine stabile.",
      "evidence": "Il report nomina Brody, Berry-Robnik-like e Rosenzweig-Porter per il crossover spettrale, ma le tre righe Lab-specific sono pattern di ponte in grafo kNN multi-osservabile; il baseline classico citato non copre direttamente stabilita' di classificazione kNN sotto perturbazione di k/n/seed.",
      "suggestion": "Aggiungere un audit di re-discovery per la parte grafica: stabilita' kNN, hub/bridge persistence, silhouette/cluster boundary stability o percolation-on-graph; poi distinguere cosa e' crossover spettrale noto e cosa e' artefatto/classificazione grafica."
    }
  ],
  "summary": "Il report e' quasi coerente sulla direzione viva e metabolizza il campo, ma L3 si rompe: il contratto dice boundary a due lettori mentre il residuo viene sostenuto anche da righe graph-only non confermate dal baseline classico."
}