# Agent Report - Endpoint-Gated RP Boundary
**Date**: 2026-05-16 11:04
**Piano**: 129
**Tension explored**: BOUNDARY (0.8)
**verdict**: CONSTRAINT - Il gate endpoint GUE/Poisson resta chiuso (`36/36`, feature-scramble `raw_p=0/512=0.0`, `add_one_p=1/513=0.001949318`). RP produce 6/54 righe terzo-incluse contro null massimo 1/54 (`raw_p=0/512=0.0`, `add_one_p=1/513=0.001949318`), ma tutte le candidate sono a `N=128`; `N=192` e `N=256` restano blank. Il residuo RP e' finito-size, non boundary 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]
**observable_contract**: claim=RP e' terzo incluso endpoint-gated solo se il gate GUE/Poisson resta chiuso e le righe RP bilanciate fra i centroidi endpoint battono il null feature-scramble row-aligned; observable=`endpoint_stable`, `centroid_distance_balance`, `rp_boundary_candidate`, raw/add-one p-values; operator=centroidi endpoint GUE/Poisson calibrati, score RP per distanza bilanciata da entrambi i poli, null che preserva marginali per reader e rompe accoppiamento feature-riga; generator=GUE, Poisson, RP `H(lambda)=sqrt(1-lambda)D+sqrt(lambda)GUE`; denominator=endpoint 36 source rows x 5 reader, RP 3 lambda x 3 size x 6 seed = 54 source rows x 5 reader; non_possible=terzo incluso se endpoint gate fallisce o null RP ricostruisce il numero osservato; not_tested=Anderson 3D, spettri sperimentali, limite N infinito, universalita analitica, nuova ricerca lambda.

## Respiro fuori-tempo
- **Combo**: A9 terzo incluso + QxG continuo/discreto + nodo BOUNDARY del grafo + tensione seme "8 domini GUE, 5 Poisson".
- **Dipolo / punto-zero**: endpoint chiuso / boundary intermedio. Punto-zero: vettore osservabile prima della distanza dai due centroidi.
- **Piano superiore**: topologia assiomatica del bordo. Il boundary operator non legge RP finche' i poli GUE/Poisson non sono invarianti.
- **Operatori laterali scelti**: boundary operator e parallel transport. Il primo decide il passaggio endpoint -> terzo incluso; il secondo chiede se la posizione RP si trasporta fra reader e size.
- **Contaminazione cognitiva**: CE-0019 metabolizzata come combo prima della misura; CE-0001/KSAR usata per reiterare il gate 10:58 invece di cercare una nuova lambda; CE-0117 usata per trattenere la possibilita' solo se apre un boundary non assorbito dal null.
- **Proto-ipotesi**: dopo endpoint chiuso, RP e' terzo incluso se una riga resta bilanciata fra i due endpoint in almeno 4/5 reader e il null feature-scramble non ricostruisce quel conteggio.
- **Possibile/non-possibile**: possibile = leggere RP come boundary finito-size controllato; non-possibile = promuoverlo a confine fisico se il supporto non attraversa le size.
- **Proiezione**: misuro `rp_boundary_candidate` su lambda `0.045/0.060/0.075`, size `128/192/256`, 6 seed.
- **Movimento A->M->B**: fisico A = crossover spettrale GUE/Poisson/RP; matematica M = distanza bilanciata da centroidi endpoint in spazio osservabile; fisico B non emerge. Il ciclo consegna un vincolo di size-stability prima del rimbalzo fisico.

## Aderenza alla direzione
- `relation`: `follows_direction`
- `why`: usa il filtro endpoint GUE/Poisson chiuso nel ciclo 10:58 e tenta il rientro controllato nel boundary RP come terzo incluso operativo.
- `not_drift`: non torna a phi/Sturmian, V_c, fit locali o graph-only; RP viene letto solo dopo endpoint gate e contro null row-aligned.
- `seed_residue`: restano non testati gli 8 domini GUE / 5 Poisson originali come perimetro largo, Anderson 3D e spettri fisici reali.
- `why_not_drift`: il sotto-perimetro e' regressivo perche' verifica se il prerequisito endpoint abilita il terzo incluso senza cancellare il residuo del seme.

## 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**: una finestra RP puo' collocarsi fra statistiche GUE e Poisson in size finite.
- **Cosa resta Lab-specific**: il contratto endpoint-gated: il terzo incluso viene letto solo dopo endpoint-null chiuso e con p-value raw/add-one dichiarato.
- **Separazione**: `two_reader_boundary_confirmed=[]`; `graph_only_residue=0`; `scope_change_declared=endpoint_gated_rp_boundary`; `graph_baseline_audit=non_applicabile:no_graph_reader`.

## Claim Under Test
> RP e' boundary endpoint-gated se il gate GUE/Poisson resta chiuso e le righe RP bilanciate fra centroidi endpoint battono il null feature-scramble row-aligned.

## Experiment Design
- **Script nuovo**: `tools/exp_endpoint_gated_rp_boundary.py`.
- **Run**: `python tools/exp_endpoint_gated_rp_boundary.py --out tools/data/endpoint_gated_rp_boundary_20260516_1104.json`.
- **Endpoint gate**: stesso perimetro 10:58, 36 source rows; pass se `36/36` endpoint-stable e feature-scramble `add_one_p<=0.05`.
- **RP boundary candidate**: una source row RP 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.

## Results
| gate | observed | null k/N | raw_p | add_one_p | max null | lettura |
|---|---:|---:|---:|---:|---:|---|
| Endpoint feature-scramble | 36/36 | 0/512 | 0.000000000 | 0.001949318 | 2 | endpoint chiuso |
| Endpoint label permutation | 36/36 | 15/128 | 0.117187500 | 0.124031008 | 36 | null permissivo, solo continuita' |
| RP feature-scramble | 6/54 | 0/512 | 0.000000000 | 0.001949318 | 1 | residuo sopra null |

| lambda | candidates | total | median balance | median bridge distance |
|---:|---:|---:|---:|---:|
| 0.045 | 2 | 18 | 0.614182 | 0.675690 |
| 0.060 | 3 | 18 | 0.632778 | 0.777805 |
| 0.075 | 1 | 18 | 0.588828 | 0.655661 |

| size | candidates | total | lettura |
|---:|---:|---:|---|
| 128 | 6 | 18 | residuo concentrato |
| 192 | 0 | 18 | blank |
| 256 | 0 | 18 | blank |

## Key Findings
1. Verificato: il gate endpoint GUE/Poisson resta chiuso sullo stesso denominatore del 10:58: `36/36`, feature-scramble `add_one_p=0.001949318`.
2. Verificato: il null label-permutation resta permissivo e viene riportato per continuita': `15/128`, `add_one_p=0.124031008`.
3. Verificato: RP batte il null feature-scramble sul conteggio globale: osservato `6/54`, null max `1/54`, `raw_p=0/512`, `add_one_p=0.001949318`.
4. Verificato: il supporto non trasferisce su size. Tutte le 6 candidate sono a `N=128`; `N=192` e `N=256` hanno `0/18`.
5. Inferito dal perimetro: il boundary RP rientra come residuo finito-size endpoint-gated, non come terzo incluso fisico stabile.

## Verdict
CONSTRAINT

Il terzo incluso RP esiste nel perimetro endpoint-gated solo come residuo `N=128`. Il null non lo assorbe, ma la size-stability lo blocca. Il prossimo ciclo deve separare due possibilita': residuo finito-size reale del lettore endpoint oppure boundary che si sposta con N. Non promuovere RP, Anderson 3D o sito pubblico finche' il residuo non sopravvive a una curva size preregistrata.

## Bicono della scoperta
- **Due radici**: endpoint GUE/Poisson chiuso; RP bilanciato ma non size-stable.
- **Singolare**: source row RP prima della distanza dai centroidi endpoint.
- **Invariante di passaggio**: raw/add-one p-value dichiarati e stesso denominatore source row x reader.
- **Campo di possibilita**: possibile = boundary finito-size endpoint-gated; non-possibile = boundary fisico promosso senza trasferimento a `N=192/256`.

## Consecutio
Il prossimo ciclo deve testare size-persistence del residuo endpoint-gated: fissare il criterio `4/5 reader`, mantenere il feature-scramble null, aumentare o riallineare le size, e chiedere se la finestra candidata resta non-zero fuori da `N=128`. Se resta `N=128` only, il nodo regressivo e' finite-size/reader calibration; se compare su size maggiori, il boundary torna candidato fisico.

## Ricadute pratiche
ssp_value: yes. `tools/exp_endpoint_gated_rp_boundary.py` diventa gate riusabile: impedisce di chiamare RP "terzo incluso" senza endpoint chiuso, p-value definito e audit size.

## 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.
- Primo run fallito per import errato di `parse_floats`; riparato nel nodo regressivo dello script e rilanciato.
- Run completato: `tools/data/endpoint_gated_rp_boundary_20260516_1104.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_boundary_20260516_1104.json`
- Report: `tools/data/reports/agent_20260516_1104.md`
