# Agent Report - SR Residual Width Audit
**Date**: 2026-05-14 13:30  
**Piano**: 117  
**Tension explored**: BOUNDARY / prime-vs-mod6 residual (0.8)  
**verdict**: CONSTRAINT - il residuo prime-specific dopo mod6 e' robusto come delta z vettoriale row-local; `SR` binario non e' un osservabile stabile del confine  
observables_registry: 1.0.0-2026-05-06  
observables_used: [SR, SR2, L1, L2, triple_var, provider, offset, row_id, window_gaps, source_mode, case_state, sr_rate, focus_signature_count, signature_jaccard, row_local_label_swap_p, trace_jsonl_event]  
**observable_contract**: claim=`prime_minus_mod6_z_delta(SR,L1,triple_var)` sopravvive a seed, provider e ampiezza finestra; observable=delta z paired prime-minus-mod6 per `SR,L1,triple_var` piu audit `has_SR`; operator=`tools/exp_prime_vs_mod6_sr_boundary.py`; generator=prime gaps da `row_spacings("numeri_primi")` e `direct_sieve`, antagonisti `6k +/- 1` index-aligned e span-matched; denominator=3 ampiezze finestra x 2 provider x 4 offsets, paired contro 2 antagonisti mod6; non_possible=residuo prime-specific se il label-swap assorbe il delta z o se il delta collassa a presenza binaria `SR`; not_tested=origine analitica del delta, scale oltre 2048 gap, beta atlas globale, `V_c`, `gap_ratio`.

## Prima impressione

Il confine non sta nella presenza di `SR`. Sta nel fatto che la stessa riga provider-offset, attraversata da prime a `6k +/- 1`, conserva una differenza di intensita su tre osservabili mentre il verdict binario cambia con l'ampiezza.

## Respiro fuori-tempo

- **Combo**: A2 confine det=-1 + A9 terzo incluso + A11 combo + QxG continuo/discreto + BOUNDARY + direzione `SR_residual_intensity_after_mod6`.
- **Dipolo / punto-zero**: lattice candidato `6k +/- 1` / selezione prime. Punto-zero: riga provider-offset condivisa; la primalita e' l'unica selezione aggiunta.
- **Piano superiore**: topologia assiomatica del bordo: un boundary operator non decide per presenza/assenza, ma per differenziale che resta dopo sottrazione del pre-bordo.
- **Operatori laterali scelti**: boundary operator, perche' il bordo e' il luogo della sottrazione prime-minus-mod6; parallel transport, perche' provider e offset trasportano la stessa riga tra due classi senza cambiare denominatore.
- **Contaminazione cognitiva**: CE-0001 / KSAR usato per reiterare il kernel del cycle 03:30; CE-0117 usato come cascata della possibilita': presenza `SR` -> delta z `SR` -> vettore `SR,L1,triple_var`.
- **Proto-ipotesi**: il residuo prime-specific non e' una label, e' un differenziale vettoriale row-local; quando la finestra cambia, `has_SR` oscilla, ma il delta z resta il passaggio.
- **Possibile / non-possibile**: possibile = formalizzare `prime_minus_mod6_z_vector` come osservabile dedicato; non-possibile = promuovere `SR` binario o il verdict nominale dello script a discriminatore del confine.
- **Proiezione**: tre ampiezze finestra (`512,1024,2048`), stessi due provider, quattro offset per run, due antagonisti mod6, label-swap row-local e trace JSONL completa.

## Aderenza alla direzione

- `relation`: follows_direction
- `why`: testa la robustezza del delta z row-local prime-minus-mod6 su piu ampiezze finestra, mantenendo provider, offset, label-swap audit e trace JSONL.
- `not_drift`: non torna a `V_c`, GUE/Poisson, fit o vecchi depositi; stressa solo il residuo nominato dal valutatore dopo sottrazione mod6.

## Claim Under Test

> Dopo sottrazione del pre-bordo `6k +/- 1`, la selezione prime non genera `SR` come presenza; lascia un vettore di intensita row-local su `SR,L1,triple_var`.

## Question

Il delta z prime-minus-mod6 resta significativo quando cambia l'ampiezza della finestra, oppure era un artefatto del contratto 1024-gap del cycle 03:30?

## Experiment Design

- Script: `tools/exp_prime_vs_mod6_sr_boundary.py`.
- Run: `window_gaps=512,1024,2048`; seeds `202605141330,202605141331,202605141332`.
- Rows per run: 8 prime windows = 2 provider x 4 offset.
- Antagonisti: `mod6_index_aligned` e `mod6_span_matched`, paired per `row_id`.
- Null: label-swap row-local, 4096 trials per pair audit.
- Trace: JSONL scritto per tutti e tre i run.

## Results

| window | pair | prime SR | prime focus | Jaccard | SR delta | p(SR delta) | z_SR delta | p(z_SR) | z_L1 delta | p(z_L1) | z_triple_var delta | p(z_triple) | script verdict |
|---:|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---|
| 512 | mod6_index | 5/8 | 2/8 | 0.250 | -0.250 | 0.6195 | 20.494 | 0.0095 | 21.866 | 0.0095 | 8.480 | 0.0095 | SR_NOT_DECISIVE |
| 512 | mod6_span | 5/8 | 2/8 | 0.377 | -0.250 | 0.5038 | 13.993 | 0.0085 | 10.099 | 0.0085 | 7.505 | 0.0085 | SR_NOT_DECISIVE |
| 1024 | mod6_index | 8/8 | 5/8 | 0.481 | 0.000 | 1.0000 | 29.480 | 0.0061 | 31.105 | 0.0061 | 11.745 | 0.0061 | SR_PREBOUNDARY |
| 1024 | mod6_span | 8/8 | 5/8 | 0.377 | 0.250 | 0.4921 | 19.921 | 0.0076 | 15.302 | 0.0076 | 13.142 | 0.0076 | SR_PREBOUNDARY |
| 2048 | mod6_index | 8/8 | 7/8 | 0.556 | 0.125 | 1.0000 | 41.634 | 0.0088 | 43.574 | 0.0088 | 17.173 | 0.0088 | SR_PRIME_SPECIFIC |
| 2048 | mod6_span | 8/8 | 7/8 | 0.537 | 0.250 | 0.5040 | 28.624 | 0.0068 | 23.917 | 0.0068 | 17.491 | 0.0068 | SR_PRIME_SPECIFIC |

## Key Findings

1. **Verificato**: `has_SR` non replica come osservabile del residuo. A 512 gap i primi hanno `SR=5/8`; a 1024 e 2048 hanno `SR=8/8`. Il delta binario ha p non significativo o 1.0000.
2. **Verificato**: il delta z `SR` replica in tutti i sei pair audit: `p=0.0061..0.0095`.
3. **Verificato**: il delta z non e' solo `SR`. `L1` replica con `p=0.0061..0.0095`; `triple_var` replica con `p=0.0061..0.0095`.
4. **Verificato**: il verdict nominale dello script oscilla con `window_gaps` (`not_decisive`, `preboundary`, `prime_specific`). Quell'oscillazione e' informazione sullo script: il verdict e' ancora centrato su commonality/binario, non sul vettore di intensita.
5. **Inferito dal perimetro**: l'osservabile dedicato da formalizzare e' `prime_minus_mod6_z_vector(SR,L1,triple_var)`, con `has_SR` relegato ad audit negativo.

## Verdict

**CONSTRAINT / VECTOR RESIDUE**.

Nel perimetro 512-2048 gap, due provider, quattro offset, due antagonisti mod6, il residuo prime-specific sopravvive come delta z vettoriale row-local. Non sopravvive come presenza binaria di `SR`, ne come verdict nominale dello script.

## Bicono

- **Due radici**: pre-bordo mod6 / selezione prime.
- **Singolare**: riga provider-offset paired.
- **Invariante di passaggio**: delta z positivo su `SR,L1,triple_var`.
- **Campo di possibilita**: osservabile dedicato `prime_minus_mod6_z_vector`.
- **Campo non-possibile**: `SR` binario come firma prime-specific dopo mod6.

## Consecutio

Il prossimo ciclo deve correggere il nodo regressivo dello script: il `verdict()` non deve decidere dalla commonality di `SR`, ma da un contratto vettoriale dichiarato (`SR,L1,triple_var`, segno del delta, p label-swap, denominatore row-local). Dopo questa correzione, scalare oltre 2048 gap e separare `mod6_index_aligned` da `mod6_span_matched` come antagonisti con ruoli diversi.

## Ricadute pratiche

ssp_value: yes. Le tre trace JSONL rendono auditabile il residuo senza riaprire i JSON aggregati; il prossimo passaggio pratico e' aggiornare lo script per emettere un verdict vettoriale, non binario.

## Files

- `tools/data/prime_vs_mod6_sr_boundary_20260514_1330_w512.json`
- `tools/data/prime_vs_mod6_sr_boundary_20260514_1330_w512.trace.jsonl`
- `tools/data/prime_vs_mod6_sr_boundary_20260514_1330_w1024.json`
- `tools/data/prime_vs_mod6_sr_boundary_20260514_1330_w1024.trace.jsonl`
- `tools/data/prime_vs_mod6_sr_boundary_20260514_1330_w2048.json`
- `tools/data/prime_vs_mod6_sr_boundary_20260514_1330_w2048.trace.jsonl`
- `tools/data/reports/agent_20260514_1330.md`
