# Agent Report - RP Local-Window Persistence Curve
**Date**: 2026-05-16 10:07
**Piano**: 126
**Tension explored**: BOUNDARY (0.8)
**verdict**: CONSTRAINT - nel perimetro finito RP nessuna riga lambda resta terzo incluso operativo all-window. `RP_lambda_0.060` e' la cresta di persistenza (`7/8` celle local-window pass), ma cade a `window=11, N=160`; quindi non diventa invariante. Il confine RP e' classe dipendente dall'operatore `local_window`.
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, local_window]
**observable_contract**: claim=`local_window` e' asse del boundary RP, non parametro tecnico; observable=two-reader raw-count threshold per lambda x size x local_window; operator=curva di persistenza su `window={5,7,9,11}`; generator=H(lambda)=sqrt(1-lambda)D+sqrt(lambda)GUE; denominator=lambda sentinels `0.030/0.045/0.060/0.075/0.820`, size `160/192`, observed denominator `12` per cell, label null `768`, position null `48`; non_possible=terzo incluso RP all-window se una riga fallisce in una finestra o size; not_tested=N oltre 192, finestre pari/oltre 11, Anderson 3D, spettri sperimentali, molti seed.

## Respiro fuori-tempo
- **Combo**: A9 terzo incluso + QxG continuo/discreto + boundary operator topologico + tensione BOUNDARY/RP.
- **Dipolo / punto-zero**: lambda stabile / lettore di unfolding. Punto-zero: la stessa riga RP prima che la finestra locale la renda pass, positive-lift o fail.
- **Piano superiore**: topologia assiomatica del bordo; `local_window` opera come granularita' del bordo, non come normalizzazione.
- **Proto-ipotesi**: il confine RP finito non e' una lambda, ma una curva di persistenza nel piano `(lambda, local_window)` letta a size fissate.
- **Possibile/non-possibile**: possibile = usare `0.060` come cresta da stressare su N maggiori; non-possibile = chiamare `0.060` terzo incluso all-window nel perimetro attuale.
- **Proiezione**: completare la matrice `window={5,7,9,11}` con le finestre interne `7/9`, riusando gli estremi `5/11` gia' verificati nel ciclo 09:38.

## Contaminazione cognitiva
CE-0019 metabolizzata: il ciclo usa il "Respiro fuori-tempo" come vincolo pre-esperimento, non come linguaggio retroattivo. CE-0001/KSAR applicato come kernel reiterativo: il risultato 09:38 non viene promosso, viene riusato come estremi della curva e chiuso con due run minimi interni.

## Aderenza alla direzione
- `relation`: `follows_direction`
- `why`: misura direttamente se esistono invarianti all-window o se il boundary RP resta dipendente dall'operatore di unfolding `local_window`.
- `not_drift`: non torna a phi, Sturmian, V_c o vecchi generatori; usa solo il perimetro RP candidate/sentinels richiesto dalla consecutio viva.

## Re-discovery audit
- **Baseline noto piu vicino**: Rosenzweig-Porter crossover, Brody interpolation, Berry-Robnik mixture, unfolding sensitivity nei crossover spettrali finiti.
- **Cosa assorbe il baseline**: la sensibilita' alla procedura di unfolding e' attesa in spettri finiti.
- **Cosa resta Lab-specific**: il contratto row-aligned con due lettori, count grezzi e null per decidere se una riga puo' essere chiamata terzo incluso.
- **Separazione**: `two_reader_boundary_confirmed=[]` all-window; `graph_only_residue=0`; `scope_change_declared=local_window-as-boundary-axis`; `graph_baseline_audit=label shuffle + position shift`.

## Claim Under Test
> Nel perimetro RP finito esiste almeno una riga lambda che resta thresholded su tutte le finestre locali `5/7/9/11` e su entrambe le size `160/192`.

## Experiment Design
- **Script riusato**: `tools/exp_rp_unfolding_sensitivity_audit.py`.
- **Nuovi run**:
  - `python tools/exp_rp_unfolding_sensitivity_audit.py --out tools/data/rp_candidate_window_stress_20260516_1007_w7.json --sizes 160,192 --lambdas 0.03,0.045,0.06,0.075,0.82 --position-offsets 1,2,3,4 --local-window 7`
  - `python tools/exp_rp_unfolding_sensitivity_audit.py --out tools/data/rp_candidate_window_stress_20260516_1007_w9.json --sizes 160,192 --lambdas 0.03,0.045,0.06,0.075,0.82 --position-offsets 1,2,3,4 --local-window 9`
- **Estremi riusati**: `tools/data/rp_candidate_window_stress_20260516_0938_w5.json`, `tools/data/rp_candidate_window_stress_20260516_0938_w11.json`.
- **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 finestre.

## Results
| local_window | all-mode thresholded rows | stato |
|---:|---|---|
| 5 | `RP_lambda_0.060` | cresta passa |
| 7 | `RP_lambda_0.060` | cresta passa |
| 9 | `RP_lambda_0.060` | cresta passa |
| 11 | `[]` | nessuna riga all-mode |

### Local-Window Row Counts
| window | lambda | N=160 | N=192 | persistence |
|---:|---|---|---|---:|
| 5 | 0.045 | `9/12`, null `372/768`, `24/48`, max p `0.072998`, lift `0.250000`, positive_lift_unthresholded | `12/12`, null `376/768`, `20/48`, max p `0.000190`, lift `0.510417`, pass | 1/2 |
| 7 | 0.045 | `6/12`, null `293/768`, `21/48`, max p `0.437758`, lift `0.062500`, positive_lift_unthresholded | `12/12`, null `414/768`, `24/48`, max p `0.000602`, lift `0.460938`, pass | 1/2 |
| 9 | 0.045 | `3/12`, null `352/768`, `23/48`, max p `0.972944`, lift `-0.229167`, fail | `12/12`, null `401/768`, `24/48`, max p `0.000411`, lift `0.477865`, pass | 1/2 |
| 11 | 0.045 | `6/12`, null `337/768`, `20/48`, max p `0.441425`, lift `0.061198`, positive_lift_unthresholded | `11/12`, null `411/768`, `24/48`, max p `0.006303`, lift `0.381510`, pass | 1/2 |
| 5 | 0.060 | `9/12`, null `357/768`, `20/48`, max p `0.044580`, lift `0.285156`, pass | `10/12`, null `381/768`, `18/48`, max p `0.018062`, lift `0.337240`, pass | 2/2 |
| 7 | 0.060 | `9/12`, null `318/768`, `20/48`, max p `0.020559`, lift `0.333333`, pass | `12/12`, null `368/768`, `17/48`, max p `0.000147`, lift `0.520833`, pass | 2/2 |
| 9 | 0.060 | `9/12`, null `341/768`, `20/48`, max p `0.032377`, lift `0.305990`, pass | `9/12`, null `329/768`, `14/48`, max p `0.025102`, lift `0.321615`, pass | 2/2 |
| 11 | 0.060 | `9/12`, null `382/768`, `23/48`, max p `0.070513`, lift `0.252604`, positive_lift_unthresholded | `12/12`, null `380/768`, `15/48`, max p `0.000215`, lift `0.505208`, pass | 1/2 |
| 5 | 0.075 | `9/12`, null `403/768`, `23/48`, max p `0.100007`, lift `0.225260`, positive_lift_unthresholded | `12/12`, null `360/768`, `21/48`, max p `0.000113`, lift `0.531250`, pass | 1/2 |
| 7 | 0.075 | `8/12`, null `438/768`, `24/48`, max p `0.356501`, lift `0.096354`, positive_lift_unthresholded | `9/12`, null `331/768`, `15/48`, max p `0.026214`, lift `0.319010`, pass | 1/2 |
| 9 | 0.075 | `12/12`, null `415/768`, `20/48`, max p `0.000620`, lift `0.459635`, pass | `6/12`, null `265/768`, `12/48`, max p `0.202007`, lift `0.154948`, positive_lift_unthresholded | 1/2 |
| 11 | 0.075 | `9/12`, null `419/768`, `23/48`, max p `0.127896`, lift `0.204427`, positive_lift_unthresholded | `9/12`, null `340/768`, `18/48`, max p `0.031714`, lift `0.307292`, pass | 1/2 |

### Persistence Summary
| lambda | pass cells / 8 | fail cells | interpretation |
|---:|---:|---|---|
| 0.045 | 4/8 | `window=9,N=160` hard fail | high-size echo, not boundary |
| 0.060 | 7/8 | none hard; `window=11,N=160` positive_lift_unthresholded | persistence crest, not all-window invariant |
| 0.075 | 4/8 | none hard; multiple p-threshold misses | adjacent coordinate-sensitive ridge |

## Key Findings
1. Verificato: nessuna riga supera tutte le finestre `5/7/9/11` e tutte le size `160/192`.
2. Verificato: `RP_lambda_0.060` e' la riga piu persistente (`7/8` pass), ma non chiude il gate perche' a `window=11,N=160` ha `9/12`, label null `382/768`, position null `23/48`, max p `0.070513`, quindi resta `positive_lift_unthresholded`.
3. Verificato: `RP_lambda_0.045` non va salvata come candidate storica; mostra un hard fail a `window=9,N=160` (`3/12`, lift `-0.229167`, max p `0.972944`).
4. Verificato: `RP_lambda_0.075` non sostituisce `0.060`; alterna celle pass e celle non-thresholded, con persistenza `4/8`.
5. Inferito dal perimetro: il terzo incluso RP finito non e' nella riga lambda. Vive nella dipendenza strutturale fra granularita' del lettore e riga candidata.

## Verdict
CONSTRAINT

Il perimetro finito attuale dichiara assenza di terzo incluso RP all-window. `0.060` resta una cresta empirica utile per il prossimo stress, ma non e' un invariante. La riparazione regressiva e' completata: `local_window` entra nel claim come asse atomico, non come nota tecnica.

## Bicono della scoperta
- **Due radici**: riga lambda; operatore di unfolding.
- **Singolare**: la cella row-aligned prima che il lettore locale decida pass/non-pass.
- **Invariante di passaggio**: count grezzi + p-value contro due null + pass su tutte le finestre.
- **Campo di possibilita**: possibile = stressare la cresta `0.060` su N maggiori e finestre piu larghe; non-possibile = promuovere un boundary RP a lambda singola nel perimetro `N<=192`.

## Consecutio
Il prossimo ciclo non deve cercare un'altra lambda nello stesso perimetro. Deve cambiare asse fisico: o stressare `0.060` su N maggiori con `window=11/13/15`, oppure rimbalzare su Anderson 3D usando `local_window` come parte dichiarata del lettore. Se resta su RP finito, il claim corretto e' curva di persistenza, non boundary row.

## Ricadute pratiche
ssp_value: yes. Lo strumento `tools/exp_rp_unfolding_sensitivity_audit.py` resta riusabile; il prossimo miglioramento pratico e' un wrapper che accetta una lista di `local_window` e produce direttamente la tabella di persistenza.

## 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=7` completato: `tools/data/rp_candidate_window_stress_20260516_1007_w7.json`.
- Run `window=9` completato: `tools/data/rp_candidate_window_stress_20260516_1007_w9.json`.
- Estremi `window=5/11` letti dai dati verificati del ciclo 09:38.
- 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_1007_w7.json`
- Data: `tools/data/rp_candidate_window_stress_20260516_1007_w9.json`
- Data reused: `tools/data/rp_candidate_window_stress_20260516_0938_w5.json`
- Data reused: `tools/data/rp_candidate_window_stress_20260516_0938_w11.json`
- Report: `tools/data/reports/agent_20260516_1007.md`
