# Agent Report - Vc Memory Crossing Gradient
**Date**: 2026-05-09 08:29
**Piano**: 101
**Tension explored**: TENS_SCALE_TRASCENDENZA_LIMITE / TRASCENDENZA_LIMITE
**verdict**: CONSTRAINT on memory/crossing split
observables_registry: 1.0.0-2026-05-06
observables_used: [`label_jaccard`, `acceptance_rate`, `hamming_ratio`, `source_mode`, `event_type`, `vc_interp`, `r_floor`] - osservabili domain-native, non canonici SR/SR2/L1/L2/triple_var
**observable_contract**: claim=la soglia di memoria del boundary si vede variando blocchi e periodi attorno alle scale 21/34; observable=`label_jaccard`, `acceptance_rate`, `hamming_ratio`, `source_mode`, `event_type`, `vc_interp`, `r_floor`; operator=griglia fine di block shuffle e periodic approximant contro lettore gap-label phi e curva `r(V)`; generator=non-Sturmian candidate pool gia' usato nel gate 08:19; denominator=`N=144`, phases `{0,0.25,0.5,0.75}`, r_threshold `{0.48,0.50,0.52}`, block sizes `{2,3,5,8,10,13,16,21,24,27,31,34,37,40,45,50,55}`, periods `{5,8,10,13,16,21,24,27,31,34,37,40,45,50,55,72,89}`, 128 balanced random trials, 96 mode trials; non_possible=se `label_jaccard` alto non implica `internal_cross`, il label-set isolato non puo' essere usato come null indipendente del boundary; not_tested=scale `N!=144`, fit power-law, GUE/Poisson transfer, gap_ratio.

## Respiro fuori-tempo
- **Combo**: A2 confine det=-1 + A9 terzo incluso + QxG continuo/discreto + topologia del label reader + tensione `TRASCENDENZA_LIMITE`.
- **Dipolo / punto-zero**: memoria lunga / crossing spettrale; punto-zero = sequenza che conserva abbastanza label phi prima che il tipo di generatore decida se attraversa o resta sopra soglia.
- **Piano superiore**: topologia assiomatica del bordo. Il confine non viene letto come valore `V_c`, ma come coerenza o divergenza tra label-set e evento di crossing.
- **Operatori laterali scelti**: boundary operator, periodic approximant, cut a blocchi. Entrano per separare scala conservata, periodo chiuso e dispersione random.
- **Contaminazione cognitiva**:
  - **CE-0019 / CE-0001 KSAR**: reiterazione del deposito 08:19 senza cambiare strumento; il sistema aveva gia' mostrato il nodo memoria/crossing.
  - **YSN DeltaLink**: il label-set e' topologia del lettore; `internal_cross` e' dinamica della curva. La loro divergenza e' il confine, non errore.
  - **Cornelius gene**: "Il boundary passa quando memoria e crossing co-operano; cade quando il label-set resta solo."
  - **PVI attack**: block shuffle lunghi possono sembrare prova solo perche' massimizzano label_jaccard; per questo il verdict usa anche `event_type` e hamming.
  - **Vault**: `periodic_approximant_21` resta frammento Lazarus: conserva molti label, ma rompe il crossing in 9/12 righe evento.
- **Proto-ipotesi**: il boundary non ha una soglia unica di memoria. Il taglio a blocchi conserva crossing su molte scale anche quando il label-set e' medio; l'approssimante periodico puo' conservare label senza crossing. La dualita' operativa e' memoria di ordine / chiusura periodica.
- **Proiezione**: estendo la griglia di blocchi e periodi e includo anche i best rejected per leggere il gradiente, non solo i pass/fail.

## Claim Under Test
> Nel perimetro `N=144`, la separazione fra block shuffle e periodic approximant mostra dove `label_jaccard` e `internal_cross` smettono di essere lo stesso osservabile.

## Question
Quando `label_jaccard` resta alto ma `internal_cross` cade, il boundary e' ancora trasporto di memoria o solo conservazione del vocabolario topologico?

## Experiment Design
- Strumento riusato: `tools/exp_vc_nonsturmian_label_null_gate.py`.
- Run: griglia fine di block sizes e periods attorno a `21/34`, con `--include-rejected-best`.
- Gate accettazione: `label_jaccard>=0.75`, `hamming_ratio>=0.03`.
- Curva `r(V)`: `V=0.5..3.0`, step `0.01`, soglie `0.48,0.50,0.52`.
- Denominatore grezzo: `178` candidati non-Sturmian accettati su audit rows della griglia.

## Results

Candidate gate, modi accettati:

| source_mode | accepted | phase support | best_jaccard | median_hamming |
|---|---:|---|---:|---:|
| block_shuffle_21 | 10 | phase 0.50: 10 | 0.818 | 0.069 |
| block_shuffle_27 | 1 | phase 0.50: 1 | 0.750 | 0.333 |
| block_shuffle_34 | 52 | phase 0.50: 48; phase 0.75: 4 | 1.000 | 0.083 |
| block_shuffle_37 | 2 | phase 0.50: 2 | 0.750 | 0.514 |
| block_shuffle_45 | 4 | phase 0.00: 4 | 0.769 | 0.264 |
| periodic_approximant_21 | 96 | phase 0.50: 96 | 0.750 | 0.153 |
| periodic_approximant_45 | 10 | phase 0.75: 10 | 0.818 | 0.375 |
| periodic_approximant_72 | 3 | phase 0.75: 3 | 0.818 | 0.389 |

Event summary sui best per modo:

| source_mode | event rows | events | vc_median | label_jaccard_median | hamming_median |
|---|---:|---|---:|---:|---:|
| phi_sturmian | 12 | internal_cross=12 | 1.079 | 1.000 | 0.000 |
| block_shuffle_21 | 12 | internal_cross=12 | 0.994 | 0.697 | 0.125 |
| block_shuffle_34 | 12 | internal_cross=12 | 1.374 | 0.864 | 0.056 |
| block_shuffle_45 | 12 | internal_cross=12 | 0.943 | 0.710 | 0.514 |
| periodic_approximant_21 | 12 | internal_cross=3; no_cross=9 | 0.792 | 0.542 | 0.139 |
| periodic_approximant_72 | 12 | floor_hit=1; internal_cross=11 | 0.636 | 0.599 | 0.389 |
| balanced_random | 12 | floor_hit=3; internal_cross=6; internal_multi=3 | 0.558 | 0.295 | 0.500 |
| markov_density | 12 | floor_hit=2; internal_cross=7; internal_multi=3 | 0.583 | 0.367 | 0.417 |

## Key Findings
1. **Verificato: gli accettati restano concentrati su scale discrete.** Passano `178` candidati non-Sturmian, ma solo otto source_mode: blocchi `21,27,34,37,45` e periodi `21,45,72`.
2. **Verificato: block shuffle e periodic approximant non sono lo stesso null.** I block shuffle accettati riportati hanno `internal_cross=12/12`; `periodic_approximant_21` ha `no_cross=9/12` pur avendo `96` candidati accettati.
3. **Verificato: `label_jaccard` isolato fonde osservabili divergenti.** `block_shuffle_34` ha label mediano `0.864` e crossing pieno; `periodic_approximant_21` accetta `96` candidati ma sul best per modo ha label mediano `0.542` e crossing parziale `3/12`.
4. **Verificato: random e Markov restano dispersione.** Balanced random accetta `0/512`; Markov-density accetta `0/384`. I loro best hanno eventi misti e label mediani bassi.
5. **Inferito: la memoria di scala lunga conserva il crossing quando resta ordine aperto; la chiusura periodica puo' conservare vocabolario topologico senza trasporto dinamico.**

## Verdict
**CONSTRAINT**: nel perimetro `N=144`, il boundary non e' determinato da `label_jaccard` da solo. Il block shuffle lungo conserva il crossing anche quando il label mediano non supera sempre il gate; l'approssimante periodico puo' passare il gate come candidato e perdere il crossing. Il contratto valido e': `source_mode + memoria di scala + event_type`, non `label_jaccard` isolato.

Il nodo regressivo si sposta da "non-Sturmian vs Sturmian" a "ordine aperto vs chiusura periodica". La memoria lunga non e' ancora indipendenza: e' ponte di trasporto. La periodicita' e' contro-campo parziale perche' conserva label e puo' rompere crossing.

## Bicono della scoperta
- **Due radici**: ordine aperto a blocchi lunghi . chiusura periodica con vocabolario conservato.
- **Singolare**: il lettore gap-label phi prima della curva `r(V)`, dove topologia del label-set e dinamica del crossing non sono ancora separati.
- **Invariante di passaggio**: `event_type=internal_cross` sopravvive al block shuffle lungo; non e' garantito dalla sola accettazione label-preserving.
- **Campo di possibilita**: qui diventa possibile costruire un null a due assi (`label_jaccard`, `event_type`) per il boundary; qui diventa non-possibile usare `label_jaccard>=0.75` come certificato di indipendenza.

## Consecutio
Il prossimo passo e' fare il passaggio fuori da `N=144`: ripetere solo sui modi discriminanti (`block_shuffle_21/34/45`, `periodic_21/45/72`, random, Markov) a `N={89,144,233,377}`. Se block e periodic si separano anche in scala, il boundary ha due assi stabili; se collassano, la separazione era un artefatto di `N=144`.

## Auto-audit: source flags e 5 lenti
- **Fonti**: Verificato da `tools/data/agent_field_live.md`, `tools/LAB_AGENT_CONTEXT.md`, `tools/data/seme.json`, `tools/dnd_scenario.py --best`, report `agent_20260509_0819.md`, JSON `tools/data/vc_memory_crossing_gradient_20260509_0829.json`.
- **L1 hard constraint**: il verdict non dice indipendenza; dice contratto a due assi.
- **L2 count grezzi**: riportati `178`, `0/512`, `0/384`, `12/12`, `9/12`, `3/12`.
- **L3 no observable drift**: `gap_ratio`, fit power-law e GUE/Poisson non sono testati.
- **L4 edge cases**: accettazioni concentrate su phase `0.50` e `0.75`; il perimetro phase-general resta aperto.
- **L5 re-discovery vs discovery**: non e' scoperta che blocchi lunghi preservino ordine; il finding e' la divergenza operativa tra label reader e crossing sotto generatori non-Sturmian.

## Telemetria
- No API paid run: `ANTHROPIC_API_KEY` e `OPENAI_API_KEY` non presenti nell'ambiente.
- Verifica script: `python -m py_compile tools/exp_vc_nonsturmian_label_null_gate.py` completato senza errori.
- Run valido: `python tools/exp_vc_nonsturmian_label_null_gate.py --ns 144 --phases 0,0.25,0.5,0.75 --r-thresholds 0.48,0.50,0.52 --random-trials 128 --mode-trials 96 --block-sizes 2,3,5,8,10,13,16,21,24,27,31,34,37,40,45,50,55 --periods 5,8,10,13,16,21,24,27,31,34,37,40,45,50,55,72,89 --min-hamming-ratio 0.03 --label-jaccard-min 0.75 --label-threshold 2.0 --top-k 12 --max-label 34 --seed 202605090829 --include-rejected-best --out tools/data/vc_memory_crossing_gradient_20260509_0829.json`.

## Files
- Script riusato: `tools/exp_vc_nonsturmian_label_null_gate.py`
- Data: `tools/data/vc_memory_crossing_gradient_20260509_0829.json`
- Report: `tools/data/reports/agent_20260509_0829.md`
