# Agent Report - RP Candidate Local-Window Stress Gate
**Date**: 2026-05-16 09:38
**Piano**: 125
**Tension explored**: BOUNDARY (0.8)
**verdict**: CONSTRAINT/FALSIFICATION - `RP_lambda_0.045` non resta terzo incluso operativo quando il perimetro viene ristretto a candidate row + sentinels, size maggiori e unfolding locali alternativi. La riga che passa con local-window 5 e `0.060`; con local-window 11 non passa nessuna riga all-mode.
observables_registry: 1.0.0-2026-05-06
observables_used: [SR, SR2, L1, L2, triple_var, SR_local_rigidity, brody_q, berry_robnick_like_gue_weight, mean_ipr, observed_successes, label_shuffle_successes, position_shift_successes, Wilson intervals, binomial-tail p-values, min_lift_against_nulls, threshold_pass, unfolding_mode, local_window]
**observable_contract**: claim=`RP_lambda_0.045` resta boundary solo se batte label-shuffle e position-shift su size maggiori e su finestre locali alternative; observable=two-reader raw-count threshold per lambda, size, unfolding mode e local_window; operator=stress del gate 09:21 con candidate row preregistrata e sentinelle; generator=H(lambda)=sqrt(1-lambda)D+sqrt(lambda)GUE; denominator=candidate row `0.045`, sentinelle `0.030/0.060/0.075/0.820`, size `160/192`, seed x k = `4 x 3`; non_possible=terzo incluso stabile se la candidate row cade in una finestra locale o se una sentinella prende il ruolo; not_tested=altre finestre locali, piu seed, N oltre 192, Anderson 3D, spettri sperimentali.

## Respiro fuori-tempo
- **Combo**: A9 terzo incluso + QxG continuo/discreto + grafo/cut come lettore + tensione BOUNDARY.
- **Dipolo / punto-zero**: boundary robusto / boundary dipendente dalla coordinata di smoothing. Punto-zero: la stessa riga lambda prima che la larghezza dell'unfolding locale scelga il confine.
- **Piano superiore**: topologia assiomatica del bordo; la finestra locale e un operatore di bordo, non una normalizzazione neutra.
- **Operatori laterali scelti**: boundary operator, filtrazione per scala locale, same-spectrum coordinate stress.
- **Contaminazione cognitiva**: CE-0022 metabolizzata dal campo vivo come vincolo anti-ritorno a Sturmian; YSN DeltaLink=`candidate boundary / smoothing-scale`; Cornelius gene=`WINDOW_WIDTH_IS_PERIMETER`: DICHIARA CANDIDATE, CAMBIA FINESTRA, NON SALVARE LA RIGA.
- **Proto-ipotesi**: il terzo incluso RP non e una lambda promossa dal ciclo precedente; e la classe di righe che resta all-size quando il bordo viene filtrato da piu larghezze locali.
- **Possibile/non-possibile**: possibile = trattare la larghezza locale come parametro fisico del boundary; non-possibile = cristallizzare `0.045` come nucleo RP stabile nel perimetro attuale.
- **Proiezione**: run separati con local_window `5` e `11`, size `160/192`, candidate row `0.045`, sentinelle `0.030/0.060/0.075/0.820`.

## Aderenza alla direzione
- `relation`: `follows_direction`
- `why`: testa direttamente il confine RP indicato dal valutatore, con `RP_lambda_0.045` come candidate row e `0.060` come sentinella coordinata-sensibile.
- `not_drift`: non ritorna a phi, Sturmian, V_c o deposito locale; cambia solo size e larghezza di unfolding sul perimetro GUE/Poisson RP.

## Re-discovery audit
- **Baseline noto piu vicino**: Rosenzweig-Porter, Brody interpolation, Berry-Robnik mixture, unfolding sensitivity nei crossover spettrali.
- **Cosa viene assorbito dal baseline**: la dipendenza dalla procedura di unfolding e attesa nei crossover finiti.
- **Cosa resta Lab-specific**: il contratto row-aligned `candidate + sentinels`, con count grezzi e null prima della parola boundary.
- **Separazione richiesta**: `two_reader_boundary_confirmed = []` sul perimetro all-window; `graph_only_residue = 0`; `scope_change_declared = local_window width promoted to perimeter`; `graph_baseline_audit = label shuffle + position shift + local-window stress`.

## Claim Under Test
> `RP_lambda_0.045` resta terzo incluso operativo quando il gate 09:21 viene ripetuto su size maggiori e local-window unfolding alternativi.

## Question
La candidate row `0.045` sopravvive quando la larghezza dell'unfolding locale cambia, oppure il boundary RP e ancora coordinata-dipendente?

## Experiment Design
- **Script riusato**: `tools/exp_rp_unfolding_sensitivity_audit.py`.
- **Runs**:
  - `python tools/exp_rp_unfolding_sensitivity_audit.py --out tools/data/rp_candidate_window_stress_20260516_0938_w5.json --sizes 160,192 --lambdas 0.03,0.045,0.06,0.075,0.82 --position-offsets 1,2,3,4 --local-window 5`
  - `python tools/exp_rp_unfolding_sensitivity_audit.py --out tools/data/rp_candidate_window_stress_20260516_0938_w11.json --sizes 160,192 --lambdas 0.03,0.045,0.06,0.075,0.82 --position-offsets 1,2,3,4 --local-window 11`
- **Soglia preregistrata**: `observed_rate >= 0.75`, lift contro ogni null `>= 0.10`, p-value contro ogni null `<= 0.05`, stato `classical_intermediate`, pass su tutte le size e su ogni unfolding testato.
- **Denominatori per size/mode**: observed `12`; label-shuffle `768`; position-shift `48`.

## Results
| local window | all-mode thresholded rows | state |
|---:|---|---|
| 5 | `RP_lambda_0.060` | candidate 0.045 cade; 0.060 passa solo in questa finestra |
| 11 | `[]` | nessuna riga all-mode |

### Candidate + Sentinels Counts
| window | mode | size | lambda | observed | label null | label p | position null | position p | min lift | state |
|---:|---|---:|---:|---:|---:|---:|---:|---:|---:|---|
| 5 | global_mean | 160 | 0.045 | 9/12 | 303/768 | 0.013796 | 17/48 | 0.006140 | 0.355469 | pass |
| 5 | global_mean | 192 | 0.045 | 12/12 | 287/768 | 0.000007 | 15/48 | 0.000001 | 0.626302 | pass |
| 5 | local_window | 160 | 0.045 | 9/12 | 372/768 | 0.059037 | 24/48 | 0.072998 | 0.250000 | positive_lift_unthresholded |
| 5 | local_window | 192 | 0.045 | 12/12 | 376/768 | 0.000190 | 20/48 | 0.000027 | 0.510417 | pass |
| 5 | local_window | 160 | 0.060 | 9/12 | 357/768 | 0.044580 | 20/48 | 0.020559 | 0.285156 | pass |
| 5 | local_window | 192 | 0.060 | 10/12 | 381/768 | 0.018062 | 18/48 | 0.001580 | 0.337240 | pass |
| 11 | local_window | 160 | 0.045 | 6/12 | 337/768 | 0.441425 | 20/48 | 0.379769 | 0.061198 | positive_lift_unthresholded |
| 11 | local_window | 192 | 0.045 | 11/12 | 411/768 | 0.006303 | 24/48 | 0.003174 | 0.381510 | pass |
| 11 | local_window | 160 | 0.060 | 9/12 | 382/768 | 0.070513 | 23/48 | 0.054871 | 0.252604 | positive_lift_unthresholded |
| 11 | local_window | 192 | 0.060 | 12/12 | 380/768 | 0.000215 | 15/48 | 0.000001 | 0.505208 | pass |

Le sentinelle endpoint `0.030` e `0.820` hanno `0/12` observed in ogni size/mode e non entrano nel boundary.

## Key Findings
1. Verificato: `RP_lambda_0.045` non e all-window stable. Cade a N=160 sia con local_window 5 (`9/12`, p null massimi `0.072998`) sia con local_window 11 (`6/12`, p null massimi `0.441425`).
2. Verificato: `RP_lambda_0.060` non e solo global-mean artifact nel perimetro window 5: passa local_window 5 su N=160 e N=192. Cade pero con window 11 a N=160 (`9/12`, label p `0.070513`, position p `0.054871`).
3. Verificato: con window 11 nessuna riga passa `global_mean + local_window` su tutte le size. Il boundary non sopravvive come riga singola nel perimetro multi-window.
4. Inferito dal perimetro: la coordinata regressiva mancante nel ciclo 09:21 era `local_window width`. La finestra locale non e parametro tecnico secondario: decide quale lambda puo essere chiamata boundary.

## Verdict
CONSTRAINT/FALSIFICATION

Il claim "`RP_lambda_0.045` e terzo incluso operativo unfolding-stable" cade nel perimetro 09:38. Non va salvato spostando il focus su `0.060`: anche `0.060` e window-sensitive. La formulazione corretta e: nel RP finito il boundary two-reader resta una risposta del triplo `(lambda, size, local_window)`, non una riga lambda cristallizzabile.

## Bicono della scoperta
- **Due radici**: lambda-boundary; smoothing-boundary.
- **Singolare**: stessa riga candidata sotto cambiamento della larghezza locale.
- **Invariante di passaggio**: raw counts + null p-value + all-size + all-window.
- **Campo di possibilita**: possibile = progettare il boundary come curva in `(lambda, local_window, N)`; non-possibile = promuovere `0.045` o `0.060` come nucleo stabile senza dichiarare la larghezza locale.

## Consecutio
Riparare al nodo regressivo del perimetro: il prossimo ciclo deve trattare `local_window` come asse del boundary, non come opzione. Eseguire una matrice piccola `window={5,7,9,11}` x `N={160,192}` x candidate/sentinels e riportare una curva di persistenza per lambda; solo dopo tentare il rimbalzo Anderson 3D.

## Ricadute pratiche
ssp_value: yes. Lo strumento `tools/exp_rp_unfolding_sensitivity_audit.py` resta riusabile; il nuovo uso mostra che deve accettare esplicitamente matrici di `local_window` o essere wrapped da un runner di stress.

## 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/RP seguita per contratto vivo del campo.
- `python -m py_compile tools/exp_rp_unfolding_sensitivity_audit.py` completato.
- Run window 5 completato: `tools/data/rp_candidate_window_stress_20260516_0938_w5.json`.
- Run window 11 completato: `tools/data/rp_candidate_window_stress_20260516_0938_w11.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_rp_unfolding_sensitivity_audit.py`
- Data: `tools/data/rp_candidate_window_stress_20260516_0938_w5.json`
- Data: `tools/data/rp_candidate_window_stress_20260516_0938_w11.json`
- Report: `tools/data/reports/agent_20260516_0938.md`
