# Agent Report - Physical Internal Null Preflight
**Date**: 2026-05-28 20:42
**Tension explored**: BOUNDARY / graph-only residue
**verdict**: CONSTRAINT - Sul grafo cached `k=3, n_gaps=2048, seed=20260515`, i due residui graph-only `logistica_biforcazione_var_3.5699:cycle_13` e `percolation:cycle_9` vengono ricostruiti dai rispettivi null fisici interni in `128/128` trial. Questo non chiude il test 27/27 richiesto dal seme; blocca pero' la promozione fisica dal singolo reader perche il candidato non mostra costo fisico interno nel preflight.
observables_registry: 1.0.0-2026-05-06 via boundary_graph_curvature_gate
observables_used: [single_graph_candidate_hit, physical_internal_null_candidate_hit]
**observable_contract**: claim=un target graph-only mantiene costo fisico sul preflight solo se il candidato observed `1/1` non viene ricostruito spesso da un surrogate domain-native; observable=hit del target come `third_included_candidate` nel grafo cached; operator=sostituzione della sola riga target con feature da null fisico interno; generator=13 righe BOUNDARY cached + logistic block gap-order shuffle + percolation critical cluster resample; denominator=13 righe, 8 GUE / 5 Poisson, un reader cached; p_value_definition=right-tail raw_p=k/N, k = trial fisici con hit >= observed; non_possible=chiamare questo un test 27/27 o promuovere a residuo fisico se il null ricostruisce `1/1`; not_tested=grid 27 reader, confronto N-matched con null graph, promozione a due lettori.

## Respiro fuori-tempo
- **Combo**: A9 terzo incluso + A11 combo + BOUNDARY `8 GUE / 5 Poisson` + grafo conoscenza come reader + tensione del seme sui residui graph-only.
- **Dipolo / punto-zero**: dinamica fisica interna / ricostruzione del reader. Punto-zero: la riga target quando conserva il nome fisico ma cambia la realizzazione interna.
- **Piano superiore**: topologia del grafo e bicono possibile/non-possibile; il candidato e una posizione nel grafo, non una proprieta fisica finche il null interno non costa.
- **Contaminazione cognitiva**: CE-none:`tools/data/agent_field_live.md` letto; il campo vivo richiede null fisici interni e non contiene archivio enzimi esplicito da metabolizzare. KSAR usato come reiterazione del kernel 12:30 sul nodo regressivo lasciato aperto.
- **Proto-ipotesi**: se un residuo graph-only resta candidato quando la riga viene sostituita da un surrogate fisico domain-native, il costo osservato appartiene al reader locale e non alla dinamica fisica.
- **Possibile/non-possibile**: possibile = usare il preflight per filtrare target prima del 27/27; non-possibile = promuovere il residuo fisico dal singolo reader.
- **Movimento A->M->B**: fisico A = confine GUE/Poisson con logistica/percolation; matematica M = posizione kNN-centroid nel grafo feature; fisico B = null interno di orbita/cluster. B non emerge come costo: resta vincolo sul reader.

## Aderenza alla direzione
- `relation`: `local_regression`
- `why`: il ciclo attacca la direzione viva sostituendo i due residui graph-only con null fisici interni, ma lo fa su un solo reader cached invece del grid 27/27.
- `not_drift`: non usa phi/Sturmian/V_c, non aggiunge domini e mantiene il denominatore 13 righe `8 GUE / 5 Poisson`; il sotto-perimetro e dichiarato come preflight per costo runtime.
- `seed_residue`: resta non testato il full `27/27` contro surrogate dinamici interni N-matched.
- `why_not_drift`: il risultato torna al nodo regressivo del seme, cioe separare dinamica fisica da ricostruzione del reader grafico.

## Re-discovery audit
- **Baseline noto piu vicino**: graph candidate stability, kNN boundary stability, percolation-on-graph, surrogate dinamici interni.
- **Cosa assorbe il baseline**: il singolo-reader candidate hit e ricostruito dal null fisico in `128/128`; quindi il preflight non evidenzia costo fisico.
- **Cosa resta Lab-specific**: l'uso del grafo BOUNDARY 13x8/5 come filtro regressivo prima del full 27-reader audit.
- `two_reader_boundary_confirmed`: no.
- `graph_only_residue`: `logistica_biforcazione_var_3.5699:cycle_13`, `percolation:cycle_9`.
- `scope_change_declared`: si, da 27-reader grid a single-reader cached preflight.
- `graph_baseline_audit`: il confronto a label/degree/feature null resta quello del 20260516_1230; questo ciclo aggiunge solo il null fisico interno preflight.

## Claim Under Test
> Nel grafo cached del perimetro `8 GUE / 5 Poisson`, un residuo graph-only mostra costo fisico interno solo se il target observed `1/1` cade sotto surrogate domain-native.

## Experiment Design
- **Script full tentato**: `tools/exp_boundary_physical_internal_null.py`.
- **Script eseguito**: `tools/exp_boundary_physical_internal_null_preflight.py`.
- **Run**: `PYTHONPATH=tools python3 tools/exp_boundary_physical_internal_null_preflight.py --out tools/data/boundary_physical_internal_null_preflight_20260528_2042.json --null-trials 128`.
- **Cached graph**: `tools/data/boundary_graph_curvature_gate_20260515_1855.json`.
- **Reader**: `k=3`, `n_gaps=2048`, `seed=20260515`, 13 righe, labels `8 GUE / 5 Poisson`.
- **Null logistica**: block shuffle dei gap con block_size `34`; preserva marginale e blocchi locali, rompe ordine lungo.
- **Null percolation**: resampling site percolation critica, lattice `48`, `p=0.5927`, `samples=200`; preserva generatore e largest-cluster observable, cambia la realizzazione geometrica.
- **Non misurato**: full grid 27 reader, scaling, sorgente analitica delle label, promozione fisica.

## Results
| target | observed | physical null ge observed | raw_p | add_one_p | null hit distribution | state |
|---|---:|---:|---:|---:|---|---|
| `logistica_biforcazione_var_3.5699:cycle_13` | 1/1 | 128/128 | 1.0 | 1.0 | `{1:128}` | preflight_reconstructs_candidate |
| `percolation:cycle_9` | 1/1 | 128/128 | 1.0 | 1.0 | `{1:128}` | preflight_reconstructs_candidate |

## Key Findings
1. Verificato: nel reader cached entrambi i target sono candidate observed `1/1`.
2. Verificato: il null fisico interno della logistica ricostruisce il candidate hit in `128/128`; il blocco locale non porta costo visibile nel grafo base.
3. Verificato: il null fisico interno percolation ricostruisce il candidate hit in `128/128`; cambiare la realizzazione di cluster non fa cadere il candidato nel grafo base.
4. Inferito: sul singolo reader, il residuo appartiene alla geometria del reader piu che alla realizzazione fisica specifica. Il full 27/27 puo ancora falsificare o confermare questa inferenza.

## Verdict
CONSTRAINT.

Il ciclo non promuove alcun residuo fisico. Il preflight dice che il primo rimbalzo fisico non costa: quando la riga resta nello stesso ruolo di dominio ma cambia realizzazione interna, il grafo cached ricostruisce comunque il candidato. La consecutio non e aggiungere teoria; e rendere il full 27-reader audit computabile o ridurre il suo costo con cache feature row-aligned.

## Bicono della scoperta
- **Due radici**: candidato graph-only / surrogate fisico interno.
- **Singolare**: la riga target sostituita, con label e posizione nel denominatore conservate.
- **Invariante di passaggio**: 13 righe, `8 GUE / 5 Poisson`, target row-only replacement, p-value raw `k/N`.
- **Campo di possibilita**: possibile = full audit 27/27 con cache delle feature; non-possibile = promozione fisica dal single-reader candidate.

## Consecutio
Costruire cache feature per i 27 reader run e rieseguire il null fisico interno senza ricalcolare tutto il denominatore. Il criterio di ritorno al seme e: `observed 27/27` contro `physical_null_ge_observed/N` per logistica e percolation, separato dal label-count null del 12:30.

## Ricadute pratiche
ssp_value: yes. Il preflight chiarisce che il full null fisico deve essere cache-first: il calcolo diretto N=128 sul grid completo non e pratico nel ciclo interattivo.

## Telemetria
- No API paid run: `ANTHROPIC_API_KEY` e `OPENAI_API_KEY` non presenti nell'ambiente.
- `PYTHONPATH=tools python3 -m py_compile tools/exp_boundary_physical_internal_null.py` completato.
- `PYTHONPATH=tools python3 -m py_compile tools/exp_boundary_physical_internal_null_preflight.py` completato.
- Full script N=128 tentato e fermato per runtime; nessun JSON full prodotto.
- Run preflight completato: `tools/data/boundary_physical_internal_null_preflight_20260528_2042.json`.
- Worktree gia dirty prima del ciclo; ignorate modifiche non correlate.
- Nessun update del seme, nessuna promozione, nessun public sync.

## Files
- Script full: `tools/exp_boundary_physical_internal_null.py`
- Script preflight: `tools/exp_boundary_physical_internal_null_preflight.py`
- Data: `tools/data/boundary_physical_internal_null_preflight_20260528_2042.json`
- Report: `tools/data/reports/agent_20260528_2042.md`
