# Agent Report - Anderson Endpoint-Preserving Null
**Date**: 2026-05-16 11:24
**Piano**: 132
**Tension explored**: BOUNDARY (0.8)
**verdict**: CONSTRAINT - Il null endpoint-preserving riduce la ricostruzione del conteggio cross-size rispetto al feature-scramble pieno, ma non promuove il boundary fisico: nel perimetro compatto osserva `2` righe (`W=16.00`, `W=20.00`) e il null arriva almeno a `2` in `26/512` trial (`raw_p=0.050781250`, `add_one_p=0.052631579`). `W=20` ricompare nominato nel null `32/512` volte.
observables_registry: 1.0.0-2026-05-06
observables_used: [endpoint_preserving_mobility_candidate_feature_scramble, two_reader_all_sizes, graph_bridge_frequency, classical_audit_state, raw_p, add_one_p]
**observable_contract**: claim=`W=20` si nomina solo dopo un null endpoint-preserving che congela i poli fisici e rompe l'allineamento feature-row delle sole righe mobility-candidate; observable=intersezione cross-size di righe `stable_graph_bridge+classical_intermediate`; operator=righe compatte Anderson 3D dal deposito 11:17 + permutazione feature candidate-only; generator=poli metallic/localized fissi, righe candidate rimescolate dentro ciascuna size; denominator=11 disorder rows x 2 size compatte, 512 null trial; non_possible=promozione fisica se il null ricostruisce il conteggio o rinomina spesso il candidato; not_tested=nuovi autovalori, `L>=7`, exponent mobility edge, spettri sperimentali.

## Respiro fuori-tempo
- **Combo**: A9 terzo incluso + QxG continuo/discreto + nodo BOUNDARY + direzione seme "8 domini GUE, 5 Poisson".
- **Dipolo / punto-zero**: polo fisico congelato / riga candidata libera. Punto-zero: la riga disorder prima della nominazione.
- **Piano superiore**: topologia del bordo su grafo row-aligned; i poli sono vincolo fisico, la zona intermedia e' il campo da falsificare.
- **Operatori laterali scelti**: boundary operator, graph rewiring, spectrum-preserving/candidate-only shuffle.
- **Contaminazione cognitiva**: CE-0001/KSAR usata come reiterazione del kernel 11:17; PVI applicato al presupposto "un null piu' fisico salva W=20"; Vault = `W=20` resta candidato ricorrente, non scoperta.
- **Proto-ipotesi**: se il terzo incluso e' fisico, un null che preserva i poli non deve ricostruire la stessa molteplicita' cross-size.
- **Possibile/non-possibile**: possibile = il null endpoint-preserving e' piu' severo del feature-scramble pieno e lascia un residuo vicino soglia; non-possibile = promuovere `W=20` quando viene rinominato dal null.
- **Proiezione**: misuro conteggio cross-size su righe compatte del run 11:17 e `512` permutazioni candidate-only.
- **Movimento A->M->B**: fisico A = Anderson 3D mobility-edge row `W=20`; matematica M = null endpoint-preserving prima della nominazione; fisico B = stress test del candidato con poli fisici congelati. Il ritorno fisico resta vincolo.

## Aderenza alla direzione
- `relation`: `follows_direction`
- `why`: segue il frame BOUNDARY cross-dominio imponendo `null_first -> candidate_name -> physical_return` sul candidato Anderson lasciato aperto dal ciclo 11:17.
- `not_drift`: non torna a phi/Sturmian, V_c o fit locali; lavora sul dominio Anderson e sul nodo regressivo del null che aveva falsificato la promozione.
- `seed_residue`: restano non testati il perimetro completo 8 GUE / 5 Poisson e un audit fisico large-L.
- `why_not_drift`: il sotto-perimetro e' regressivo: isola il punto dove il gate precedente nominava il candidato prima che il null lo vincolasse.

## Re-discovery audit
- **Baseline noto piu vicino**: Anderson localization, crossover Wigner-Dyson/Poisson, Brody interpolation, finite-size scaling della transizione metallico/localizzato.
- **Cosa assorbe il baseline**: righe intermedie vicino a mobility edge, dipendenza da size piccole, sensibilita' a feature compatte.
- **Cosa resta Lab-specific**: il contratto `null-first` con poli fisici congelati e rimescolamento delle sole righe candidate prima della nominazione.
- **Separazione**: `two_reader_boundary_confirmed=2` nel perimetro compatto; `graph_only_residue` non sommato; `scope_change_declared=raw-reader_11:17_to_compact-row_null`; `graph_baseline_audit=kNN/row-feature rewiring`.

## Claim Under Test
> `W=20` resta candidato fisico solo se un null endpoint-preserving, applicato prima della nominazione, non ricostruisce il conteggio cross-size e non rinomina spesso la stessa riga.

## Question
Il candidato Anderson resta distinto dal null quando i poli fisici restano fissi e l'allineamento interno delle righe candidate viene rotto?

## Experiment Design
- **Script**: `tools/exp_anderson3d_endpoint_preserving_null.py`.
- **Run**: `python tools/exp_anderson3d_endpoint_preserving_null.py --out tools/data/anderson3d_endpoint_preserving_null_20260516_1124.json --null-trials 512`.
- **Source**: `tools/data/anderson3d_mobility_edge_two_reader_audit_20260516_1117.json`.
- **Null**: conserva righe `metallic_wigner_pole` e `localized_poisson_pole`; permuta colonne feature solo fra righe `mobility_candidate`, separatamente per size.
- **P-value**: right-tail; `raw_p=k/N`, `add_one_p=(k+1)/(N+1)`, con `k` = numero di null trial con conteggio cross-size almeno pari all'osservato compatto.
- **Non testato**: nessun nuovo Hamiltoniano, nessun `L>=7`, nessun exponent critico.

## Results
| measure | observed | null k/N | raw_p | add_one_p | max null | lettura |
|---|---:|---:|---:|---:|---:|---|
| compact two_reader_all_sizes | 2 | 26/512 | 0.050781250 | 0.052631579 | 2 | non promosso |
| mean null count | 0.517578125 | n/a | n/a | n/a | n/a | residuo inferiore al conteggio osservato |
| W=20 named by null | 32/512 | n/a | n/a | n/a | n/a | candidato ricostruibile |
| W=16 named by null | 33/512 | n/a | n/a | n/a | n/a | riga compatta riaperta |

| size | observed compact two-reader rows |
|---:|---|
| L=5 | `W=16.00`, `W=20.00` |
| L=6 | `W=16.00`, `W=16.50`, `W=20.00` |

## Key Findings
1. Verificato: il perimetro compatto nomina `W=16.00` e `W=20.00` come intersezione cross-size, mentre il report 11:17 nominava solo `W=20.00` sul lettore raw multi-seed.
2. Verificato: il null endpoint-preserving e' piu' restrittivo del feature-scramble pieno: `26/512` trial arrivano al conteggio osservato compatto, contro `112/128` del null pieno sul perimetro 11:17.
3. Verificato: `add_one_p=0.052631579`; con la formula preregistrata il risultato resta sopra soglia 0.05.
4. Verificato: `W=20.00` viene rinominato dal null in `32/512` trial; non e' zero.
5. Inferito dal perimetro: il nodo regressivo non e' "salvare W=20"; e' separare raw-reader multi-seed da compact-row null prima di ogni promozione.

## Verdict
CONSTRAINT

Il null endpoint-preserving apre un vincolo piu' informativo: preservare i poli fisici rende il candidato meno facile da ricostruire, ma non lo azzera. Il boundary non si promuove. La riga `W=20` resta in vault insieme a `W=16` come effetto del passaggio a righe compatte.

## Bicono della scoperta
- **Due radici**: conteggio osservato compatto `2`; ricostruzione endpoint-preserving non-zero.
- **Singolare**: riga mobility-candidate prima della nominazione.
- **Invariante di passaggio**: p-value dichiarato come `raw_p=k/N` e `add_one_p=(k+1)/(N+1)`.
- **Campo di possibilita**: possibile = costruire un audit raw-reader endpoint-preserving senza comprimere seed/k; non-possibile = promuovere `W=20` dal deposito compatto.

## Consecutio
Ripetere il null endpoint-preserving sul lettore raw multi-seed del ciclo 11:17, senza passare dalle mediane compatte. Se il null raw resta sopra soglia o rinomina `W=20`, il candidato Anderson resta proprieta' del lettore. Se scende a zero, solo allora ha senso pagare il costo computazionale di `L>=7`.

## Ricadute pratiche
ssp_value: yes. `tools/exp_anderson3d_endpoint_preserving_null.py` crea un audit riusabile per null endpoint-preserving candidate-only a partire da depositi Anderson compatti. Uso concreto: filtro pre-costoso prima di lanciare sparse eigensolver large-L.

## Telemetria
- No API paid run: `ANTHROPIC_API_KEY` e `OPENAI_API_KEY` non presenti nell'ambiente.
- `python -m py_compile tools/exp_anderson3d_endpoint_preserving_null.py` completato.
- Run completato: `tools/data/anderson3d_endpoint_preserving_null_20260516_1124.json`.
- Worktree gia dirty prima del ciclo; ignorate modifiche non correlate.
- Nessun update del seme.
- Nessuna promozione e nessun public sync.

## Files
- Script: `tools/exp_anderson3d_endpoint_preserving_null.py`
- Data: `tools/data/anderson3d_endpoint_preserving_null_20260516_1124.json`
- Report: `tools/data/reports/agent_20260516_1124.md`
