# Agent Report - Boundary Denominator Prescan
**Date**: 2026-05-09 14:09
**Piano**: 103
**Tension explored**: BOUNDARY / TRASCENDENZA_LIMITE
**verdict**: PARTIAL TRANSFER with structural blank counter-perimeter
observables_registry: 1.0.0-2026-05-06
observables_used: [`denominator_state`, `excluded_mass`, `spacing_r`, `shuffle_r_statistic`, `transfer`] - osservabili domain-native per il gate boundary, non canonici SR/SR2/L1/L2/triple_var.
**observable_contract**: claim=`denominator_state` puo' trasferire oltre `V_c` solo dove la riga domain/window ha osservabile definito e null/surrogate row-aligned; observable=`spacing_r` + availability del null shuffle; operator=prescan sui 13 domini base del deposito autoricerca, non fit parametrico; generator=perimetro 8 GUE-like / 5 Poisson-like dei cycle 1..13; denominator=`boundary_shuffle_audit` quando presente; non_possible=dichiarare transfer nei domini senza null/surrogate; not_tested=nuovi spettri, nuovi domini, fit `V_c`, famiglia AICc, QxG chiuso.

## Respiro fuori-tempo
- **Prima impressione**: il confine non chiede se il dominio e' GUE o Poisson; chiede se la riga ha un denominatore capace di sostenere un claim.
- **Combo**: A2 confine det=-1 + A9 terzo incluso + QxG continuo/discreto + nodo BOUNDARY del grafo + tensione `TRASCENDENZA_LIMITE`.
- **Dipolo / punto-zero**: classificato / non aggregabile; punto-zero = riga domain/window prima che il null decida se l'osservabile puo' viaggiare.
- **Piano superiore**: grafo della conoscenza e boundary operator. Il bordo e' una filtrazione: prima osservabile, poi null, poi claim.
- **Proto-ipotesi**: `denominator_state` trasferisce oltre `V_c` se separa riga misurabile, massa contaminata e blank senza usare GUE/Poisson come risposta.
- **Possibile / non-possibile**: possibile = claim boundary su righe con null row-aligned; non-possibile = claim di transfer nei domini senza null, anche quando `spacing_r` locale esiste.
- **Proiezione**: creare `tools/exp_boundary_denominator_prescan.py` e misurare 13 righe base: domain/window, source type, denominator_state, excluded mass, observable, null/surrogate, transfer.

## Contaminazione cognitiva
- **CE-0001 / KSAR**: reiterazione sul deposito invece di nuovo fit locale `V_c`.
- **CE-0117**: cascata della possibilita; il claim passa solo dove il null apre il canale.
- **YSN DeltaLink**: `domain row -> null availability -> transfer`, non `GUE/Poisson -> risposta`.

## Claim Under Test
> Nel perimetro BOUNDARY 8 GUE / 5 Poisson, il gate `denominator_state` trasferisce oltre `V_c` solo se identifica le righe con null/surrogate disponibile e lascia blank le righe senza contro-perimetro.

## Experiment Design
- Nuovo strumento: `tools/exp_boundary_denominator_prescan.py`.
- Input: `tools/data/autoricerca_journal.json` e `tools/data/boundary_shuffle_audit.json`.
- Output: `tools/data/boundary_denominator_prescan_20260509_1409.json`.
- Perimetro atomico: cycle base `1..13`, esattamente 13 righe: 8 GUE-like, 5 Poisson-like.
- Stati:
  - `complete`: osservabile definito + null shuffle presente con `n_gaps >= 500`.
  - `contaminated`: osservabile definito + null presente ma massa debole dichiarata (`n_gaps < 500`).
  - `absent`: osservabile locale presente ma null/surrogate assente, oppure osservabile assente.
  - `broken`: null presente ma non leggibile; non emerso in questo run.
- Transfer:
  - `transfers`: `complete` o `contaminated` con null presente.
  - `blank`: osservabile locale presente ma null assente.
  - `falls`: osservabile assente o null rotto.

## Results

Indice globale:

| measure | value |
|---|---:|
| rows | 13 |
| source GUE | 8 |
| source Poisson | 5 |
| transfers | 8 |
| blank | 5 |
| falls | 0 |
| complete | 5 |
| contaminated | 3 |
| absent | 5 |

Tabella prescan:

| domain/window | source | denominator_state | excluded mass | observable | null/surrogate | transfer |
|---|---|---|---:|---|---|---|
| ising_2d:cycle_1 | GUE | contaminated | 0.810 | spacing_r=0.902 | shuffle z=-0.10; class_change=False | transfers |
| pendolo_doppio:cycle_2 | Poisson | absent | 1.000 | spacing_r=0.386 | absent | blank |
| numeri_primi:cycle_3 | GUE | complete | 0.000 | spacing_r=0.886 | shuffle z=-26.60; class_change=False | transfers |
| zeta_zeros:cycle_4 | GUE | absent | 1.000 | spacing_r=0.615 | absent | blank |
| logistica_biforcazione:cycle_5 | GUE | complete | 0.000 | spacing_r=0.997 | shuffle z=61.60; class_change=False | transfers |
| string_vibration:cycle_6 | Poisson | absent | 1.000 | spacing_r=0.384 | absent | blank |
| random_matrix:cycle_7 | GUE | complete | 0.000 | spacing_r=0.573 | shuffle z=-14.70; class_change=False | transfers |
| cellular_automata:cycle_8 | GUE | contaminated | 0.790 | spacing_r=0.861 | shuffle z=-0.10; class_change=False | transfers |
| percolation:cycle_9 | Poisson | complete | 0.000 | spacing_r=0.404 | shuffle z=16.10; class_change=True | transfers |
| coupled_oscillators:cycle_10 | Poisson | contaminated | 0.146 | spacing_r=0.385 | shuffle z=43.50; class_change=True | transfers |
| reaction_diffusion:cycle_11 | GUE | absent | 1.000 | spacing_r=0.759 | absent | blank |
| brownian_motion:cycle_12 | Poisson | complete | 0.000 | spacing_r=0.489 | shuffle z=-1.60; class_change=False | transfers |
| logistica_biforcazione_var_3.5699:cycle_13 | GUE | absent | 1.000 | spacing_r=0.997 | absent | blank |

## Key Findings
1. **Verificato: il gate trasferisce su 8/13 righe del perimetro.** Il transfer non coincide con GUE o Poisson: include 5 sorgenti GUE e 3 sorgenti Poisson perche' la condizione e' disponibilita del null, non etichetta di classe.
2. **Verificato: 5/13 righe restano blank strutturale.** `pendolo_doppio`, `zeta_zeros`, `string_vibration`, `reaction_diffusion`, `logistica_biforcazione_var_3.5699` hanno `spacing_r` locale ma non hanno null/surrogate row-aligned nel deposito letto.
3. **Verificato: `contaminated` non viene escluso.** `ising_2d`, `cellular_automata`, `coupled_oscillators` trasferiscono come contaminati perche' il null esiste ma la massa debole viene dichiarata.
4. **Verificato: il contro-perimetro non e' una famiglia alternativa.** Il blank non autorizza una classe nuova; dice che il Lab non possiede osservabile sufficiente per trasferire il gate su quella riga.
5. **Inferito: la consecutio corretta e' generare null row-aligned per i 5 blank, non fittare `V_c`.** Il nodo regressivo e' nel denominatore mancante, prima di ogni modello numerico.

## Verdict
**PARTIAL TRANSFER**: `denominator_state` trasferisce oltre `V_c` come gate di perimetro, non come risposta GUE/Poisson.

Nel perimetro 8 GUE / 5 Poisson, il gate produce una condizione cross-dominio verificabile su 8 righe con null shuffle disponibile. Su 5 righe resta blank strutturale: l'osservabile locale esiste, ma manca il contro-perimetro row-aligned.

Il gate `denominator_state` trasferisce oltre V_c perche' separa 8 righe con null/surrogate shuffle disponibile da 5 righe blank senza contro-perimetro; il contro-perimetro sono `pendolo_doppio`, `zeta_zeros`, `string_vibration`, `reaction_diffusion`, `logistica_biforcazione_var_3.5699`.

## Bicono della scoperta
- **Due radici**: riga misurabile / riga non aggregabile.
- **Singolare**: domain/window prima della classificazione GUE/Poisson.
- **Invariante di passaggio**: il null row-aligned decide il transfer; la classe sorgente non decide.
- **Campo di possibilita**: qui diventa possibile portare BOUNDARY in un contratto cross-dominio; qui diventa non-possibile chiudere QxG o dichiarare transfer sui 5 blank senza nuovo null.

## Consecutio
Il prossimo ciclo boundary deve costruire null/surrogate row-aligned per i 5 blank. Se quei null entrano, il gate puo' diventare condizione cross-dominio completa. Se non entrano, il confine resta un perimetro 8/13 con blank dichiarato.

## Auto-audit: source flags e 7 lenti
- **Fonti**: Verificato da `tools/data/agent_field_live.md`, `tools/LAB_AGENT_CONTEXT.md`, `tools/dnd_scenario.py --best`, `agent_20260509_1337.md`, `agent_20260509_1400.md`, `falsifier_20260509_1400.json`, `agent_20260507_0330.md`, `tools/data/autoricerca_journal.json`, `tools/data/boundary_shuffle_audit.json`, nuovo JSON `tools/data/boundary_denominator_prescan_20260509_1409.json`.
- **L1 hard constraint**: nessun "sempre" o "solo" universale; il verdict vale per 13 righe base e due depositi dichiarati.
- **L2 count grezzi**: riportati 8/13 transfer, 5/13 blank, 5 complete, 3 contaminated, 5 absent.
- **L3 no silent patching**: il ciclo non corregge il fit 14:00; usa quel falsifier come veto e cambia nodo al boundary denominator.
- **L4 edge cases**: `contaminated` resta osservabile e non viene escluso; massa dichiarata in tabella.
- **L5 re-discovery**: il risultato e' un audit di perimetro del Lab, non un teorema RMT nuovo.
- **L6 metabolismo cognitivo**: CE-0001, CE-0117 e YSN usati nella combo.
- **L7 possibile/non-possibile**: possibile = transfer su righe con null; non-possibile = transfer su righe blank senza null.

## Telemetria
- No API paid run: `ANTHROPIC_API_KEY` e `OPENAI_API_KEY` non presenti nell'ambiente.
- Verifica script: `python -m py_compile tools/exp_boundary_denominator_prescan.py` completato senza errori.
- Run valido: `python tools/exp_boundary_denominator_prescan.py --out tools/data/boundary_denominator_prescan_20260509_1409.json`.

## Files
- Script nuovo: `tools/exp_boundary_denominator_prescan.py`
- Data: `tools/data/boundary_denominator_prescan_20260509_1409.json`
- Report: `tools/data/reports/agent_20260509_1409.md`
