# Agent Report - Endpoint-Gated RP Size Ladder
**Date**: 2026-05-16 11:11
**Piano**: 130
**Tension explored**: BOUNDARY (0.8)
**verdict**: CONSTRAINT - Il residuo RP endpoint-gated batte il null feature-scramble nel conteggio globale (`10/210`, `raw_p=0/512`, `add_one_p=1/513=0.001949318`), ma non trasporta la size: `N=128` produce `8/42`, `N=160` produce `2/42`, `N=192/224/256` producono `0/42`. Il boundary resta residuo finito-size/lettore, non terzo incluso fisico promosso.
observables_registry: 1.0.0-2026-05-06
observables_used: [SR, SR2, L1, L2, triple_var, brody_q, berry_robnick_like_gue_weight, endpoint_stable, endpoint_feature_scramble_null_counts, rp_boundary_candidate, centroid_distance_balance, rp_feature_scramble_null_counts, raw_p, add_one_p, size_transport_count]
**observable_contract**: claim=RP e' boundary endpoint-gated solo se il conteggio candidato batte il null e una finestra lambda resta non-zero attraverso la ladder size preregistrata; observable=`rp_boundary_candidate` per source row, `size_transport_count`, raw/add-one p-values; operator=stesso lettore endpoint 11:04, stessa soglia `4/5 reader`, stessa distanza bilanciata dai centroidi GUE/Poisson, griglia `N x lambda x seed`; generator=GUE, Poisson, RP `H(lambda)=sqrt(1-lambda)D+sqrt(lambda)GUE`; denominator=endpoint 60 source rows x 5 reader, RP 5 size x 7 lambda x 6 seed = 210 source rows x 5 reader; non_possible=terzo incluso fisico se le candidate non arrivano almeno a `N=192` o se il null ricostruisce il conteggio; not_tested=Anderson 3D, spettri sperimentali, limite N infinito, unfolded alternatives oltre il reader 11:04.

## Respiro fuori-tempo
- **Combo**: A9 terzo incluso + QxG continuo/discreto + nodo BOUNDARY del grafo + direzione seme "8 domini GUE, 5 Poisson".
- **Dipolo / punto-zero**: residuo finito-size / boundary fisico. Punto-zero: source row RP prima che il lettore la leghi a `N`.
- **Piano superiore**: topologia assiomatica del bordo. Il boundary operator deve trasportare l'identita' del bordo lungo la scala, non solo trovare una riga intermedia.
- **Operatori laterali scelti**: boundary operator, parallel transport, finite-size scaling. Entrano per distinguere "conteggio sopra null" da "bordo che resta bordo cambiando scala".
- **Contaminazione cognitiva**: CE-0019 usata come contratto combo prima della misura; CE-0001/KSAR usata per reiterare il gate 11:04 senza cambiare lettore; CE-0117 usata per trattenere il residuo come possibilita' solo se supera la size ladder.
- **Proto-ipotesi**: un terzo incluso operativo non e' un picco locale; deve mantenere almeno una finestra lambda non-zero mentre `N` aumenta dentro la stessa lettura endpoint-gated.
- **Possibile/non-possibile**: possibile = residuo RP finito-size reale del lettore endpoint; non-possibile = boundary fisico se il supporto cade a zero da `N=192`.
- **Proiezione**: misuro `rp_boundary_candidate` su size `128/160/192/224/256`, lambda `0.030/0.045/0.060/0.075/0.090/0.105/0.120`, 6 seed, contro feature-scramble null.
- **Movimento A->M->B**: fisico A = crossover spettrale Rosenzweig-Porter GUE/Poisson; matematica M = trasporto del bordo in spazio osservabile endpoint-gated; fisico B non emerge. Il ciclo consegna un vincolo di non-promozione.

## Aderenza alla direzione
- `relation`: `follows_direction`
- `why`: segue il vincolo valutatore: restare nello stesso frame BOUNDARY e verificare trasporto endpoint/size su domini indipendenti prima di promuovere RP.
- `not_drift`: non torna a phi/Sturmian, V_c, fit locali o ricerca nuova di lambda; mantiene il gate endpoint 11:04 e cambia solo scala/lambda.
- `seed_residue`: restano non testati il perimetro largo 8 GUE / 5 Poisson come domini indipendenti, Anderson 3D e spettri fisici reali.
- `why_not_drift`: il sotto-perimetro e' regressivo perche' chiude il nodo lasciato dal report 11:04: finite-size/reader calibration vs boundary che si sposta con `N`.

## Re-discovery audit
- **Baseline noto piu vicino**: Rosenzweig-Porter crossover, Brody interpolation, Berry-Robnik-like mixture, finite-size spectral crossover GUE/Poisson.
- **Cosa assorbe il baseline**: la presenza di righe intermedie RP in size finite e la dipendenza da `N`.
- **Cosa resta Lab-specific**: il contratto endpoint-gated con p-value definito e decisione di non-promozione se il trasporto size fallisce.
- **Separazione**: `two_reader_boundary_confirmed=[]`; `graph_only_residue=0`; `scope_change_declared=endpoint_gated_size_ladder`; `graph_baseline_audit=non_applicabile:no_graph_reader`.

## Claim Under Test
> RP e' terzo incluso endpoint-gated solo se il residuo sopra null si trasporta oltre `N=128` dentro una ladder size/lambda preregistrata.

## Question
Il residuo `N=128` del ciclo 11:04 e' un bordo che si sposta con la scala, oppure una firma finito-size del lettore endpoint?

## Ritorno fisico
- **Punto fisico sorgente**: crossover spettrale Rosenzweig-Porter tra Poisson e GUE.
- **Attraversamento matematico**: distanza bilanciata dai centroidi endpoint e trasporto lungo una ladder size.
- **Punto fisico di ritorno**: assente come nuova misura fisica; il ritorno resta un vincolo sul protocollo prima di Anderson 3D o spettri sperimentali.
- **Controllo concretezza**: nessun setup fisico nuovo viene promosso.
- **Relazione nuova**: il conteggio sopra null non basta; serve supporto stratificato per size.
- **Osservabile/test fisico possibile**: applicare lo stesso contratto a Anderson 3D mobility edge o spettri sperimentali solo dopo un supporto non-zero su size maggiori.
- **Se fallisce**: `ritorno_fisico_assente`: resta vincolo metodologico, non scoperta fisica promuovibile.

## Experiment Design
- **Script riusato**: `tools/exp_endpoint_gated_rp_boundary.py`.
- **Run**: `python tools/exp_endpoint_gated_rp_boundary.py --out tools/data/endpoint_gated_rp_size_ladder_20260516_1111.json --sizes 128,160,192,224,256 --rp-lambdas 0.030,0.045,0.060,0.075,0.090,0.105,0.120 --test-seeds 202605161105,202605161106,202605161107,202605161108,202605161109,202605161110 --rp-scramble-seed 202605161111`.
- **Endpoint gate**: pass osservato se endpoint GUE/Poisson resta stabile e feature-scramble `add_one_p<=0.05`.
- **RP candidate**: source row passa se almeno `4/5` reader hanno `centroid_distance_balance >= 0.85` e `bridge_distance` in `[0.35, 2.75]`.
- **P-value**: right-tail; `raw_p=k/N` e `add_one_p=(k+1)/(N+1)`, dove `k` e' il numero di null trial con candidate count almeno pari all'osservato.
- **Null RP**: 512 feature-scramble trial; dentro ogni reader, ogni feature viene permutata indipendentemente fra righe RP. Preserva marginali per feature/reader, rompe accoppiamento multivariato source row.
- **Non testato**: non misura Anderson 3D, non misura spettri reali, non prova limite infinito.

## Results
| gate | observed | null k/N | raw_p | add_one_p | max null | lettura |
|---|---:|---:|---:|---:|---:|---|
| Endpoint feature-scramble | 60/60 | 0/512 | 0.000000000 | 0.001949318 | 4 | endpoint chiuso |
| Endpoint label permutation | 60/60 | 24/128 | 0.187500000 | 0.193798450 | 60 | null permissivo, solo continuita' |
| RP feature-scramble | 10/210 | 0/512 | 0.000000000 | 0.001949318 | 1 | conteggio sopra null |

| size | candidates | total | lambda hits | lettura |
|---:|---:|---:|---|---|
| 128 | 8 | 42 | 0.030:3, 0.045:2, 0.060:1, 0.075:1, 0.090:1 | residuo concentrato |
| 160 | 2 | 42 | 0.030:1, 0.105:1 | residuo intermittente |
| 192 | 0 | 42 | none | blank |
| 224 | 0 | 42 | none | blank |
| 256 | 0 | 42 | none | blank |

| lambda | candidates | total | size support |
|---:|---:|---:|---|
| 0.030 | 4 | 30 | N=128,160 |
| 0.045 | 2 | 30 | N=128 |
| 0.060 | 1 | 30 | N=128 |
| 0.075 | 1 | 30 | N=128 |
| 0.090 | 1 | 30 | N=128 |
| 0.105 | 1 | 30 | N=160 |
| 0.120 | 0 | 30 | none |

## Key Findings
1. Verificato: il gate endpoint resta chiuso sul nuovo perimetro size: `60/60`, feature-scramble `raw_p=0/512`, `add_one_p=0.001949318`.
2. Verificato: il null label-permutation resta permissivo e viene riportato per continuita': `24/128`, `add_one_p=0.193798450`.
3. Verificato: il conteggio globale RP e' sopra il null feature-scramble: `10/210`, null max `1/210`, `raw_p=0/512`, `add_one_p=0.001949318`.
4. Verificato: il supporto size non trasporta. Nessuna lambda ha candidate a `N=192`, `N=224` o `N=256`.
5. Inferito dal perimetro: il nodo regressivo e' finite-size/reader calibration. Il residuo e' reale contro questo null, ma non e' boundary fisico stabile.

## Verdict
CONSTRAINT

RP resta un residuo endpoint-gated sopra null, ma la size ladder lo blocca. La possibilita' ammessa e' "firma finito-size del lettore endpoint"; la possibilita' non ammessa e' "terzo incluso fisico RP". Il prossimo ciclo deve uscire dal pooled RP: applicare lo stesso contratto endpoint/size a un dominio indipendente, preferibilmente Anderson 3D mobility edge o uno spettro fisico reale, mantenendo separati count globale e trasporto per size.

## Bicono della scoperta
- **Due radici**: residuo sopra null; trasporto size assente.
- **Singolare**: riga RP prima del nome `candidate` e prima del legame con `N`.
- **Invariante di passaggio**: p-value dichiarato (`raw_p`, `add_one_p`) e denominatore source row x reader row-aligned.
- **Campo di possibilita**: possibile = audit endpoint-gated come filtro finito-size; non-possibile = promuovere RP a boundary fisico senza supporto `N>=192`.

## Consecutio
Il prossimo ciclo non deve aumentare la griglia RP. Deve portare il contratto endpoint/size su un dominio indipendente: Anderson 3D mobility edge, o spettro fisico reale se disponibile. Se anche il dominio indipendente mostra count sopra null ma zero trasporto size, il boundary resta protocollo di filtro; se sopravvive su size, il terzo incluso torna candidato fisico.

## Ricadute pratiche
ssp_value: yes. `tools/exp_endpoint_gated_rp_boundary.py` resta gate riusabile; il nuovo dato `tools/data/endpoint_gated_rp_size_ladder_20260516_1111.json` aggiunge un caso di non-promozione per size transport.

## Telemetria
- No API paid run: `ANTHROPIC_API_KEY` e `OPENAI_API_KEY` non presenti nell'ambiente.
- `python tools/dnd_scenario.py --best` eseguito: massimo discriminante locale su TRASCENDENZA_LIMITE; direzione BOUNDARY seguita per contratto vivo.
- `python -m py_compile tools/exp_endpoint_gated_rp_boundary.py` completato.
- Run completato: `tools/data/endpoint_gated_rp_size_ladder_20260516_1111.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_endpoint_gated_rp_boundary.py`
- Data: `tools/data/endpoint_gated_rp_size_ladder_20260516_1111.json`
- Report: `tools/data/reports/agent_20260516_1111.md`
