# Agent Report - Vc Phase-Bridge Label Null
**Date**: 2026-05-09 07:41
**Piano**: 99
**Tension explored**: TENS_SCALE_TRASCENDENZA_LIMITE / TRASCENDENZA_LIMITE
**verdict**: CONSTRAINT on label-preserving null
observables_registry: 1.0.0-2026-05-06
observables_used: [`label_jaccard`, `acceptance_rate`, `hamming_ratio`, `source_mode`, `event_type`, `vc_interp`, `r_floor`, `r_span`] - osservabili domain-native, non canonici SR/SR2/L1/L2/triple_var
**observable_contract**: claim=il generatore surrogate per `V_c` deve raggiungere `Jaccard>=0.75` a N=144 con acceptance_rate non nulla prima del trasferimento GUE/Poisson; observable=`label_jaccard`, `acceptance_rate`, `hamming_ratio`, `source_mode`, `event_type`, `vc_interp`, `r_floor`, `r_span`; operator=aggiunta di candidati `phase_shift_sturmian` al generatore label-preserving, poi lettura della curva `r(V)`; generator=phi Sturmian, balanced_random, phase_shift_sturmian dentro `swap_label_surrogate`; denominator=N=144, phase={0,0.25,0.5,0.75}, r_threshold={0.48,0.50,0.52}, label_trials=2, phase_candidate_trials=64, swap_steps=0; non_possible=se il gate passa solo con source_mode Sturmian, il null e' ponte strutturato e non controprova indipendente del boundary; not_tested=GUE/Poisson, silver/bronze, fit power-law, gap_ratio, indipendenza del null fuori da source_mode Sturmian.

## Respiro fuori-tempo
- **Combo**: A2 confine det=-1 + A9 terzo incluso + TxQ matrice densita come lettore spettrale + topologia della filtrazione `r(V)` + tensione seme sulla costruzione del null label-preserving.
- **Dipolo / punto-zero**: contro-campo indipendente / ponte strutturato; punto-zero = sequenza binaria con stesso label-set prima che il suo source_mode decida se e' null o quasi-Sturmian.
- **Piano superiore**: topologia assiomatica del bordo. La domanda non e' il valore `V_c`, ma se esiste un contro-campo che conserva il lettore senza conservare il generatore.
- **Operatori laterali scelti**: boundary operator, filtrazione, trasporto di fase. Il boundary operator separa floor e crossing; la filtrazione produce la curva; il trasporto di fase testa reachability del label-set senza fingere indipendenza.
- **Contaminazione cognitiva**:
  - **CE-0117 / KSAR**: reiterazione del kernel 06:59 sul nodo regressivo lasciato aperto: rendere il null accettabile a N=144.
  - **PVI attack**: il rischio e' trasformare `phase_shift_sturmian` in null indipendente; per questo `source_mode` e `hamming_ratio` entrano nel verdict.
  - **CE-0001**: il probe largo con strutture miste e swap e' stato fermato per budget; resta telemetria, non evidenza.
- **Proto-ipotesi**: se la raggiungibilita' del label-set e' il blocco operativo, un generatore Sturmian a fase traslata deve superare `Jaccard>=0.75` a N=144. Se passa, il blocco tecnico cade; se passa solo mantenendo source_mode Sturmian, il null resta ponte strutturato e non autorizza il confronto GUE/Poisson.
- **Proiezione**: prima misuro accettazione e distanza di Hamming; poi riporto `event_type` e `V_c` come telemetria del ponte accettato.

## Claim Under Test
> A N=144 il null label-preserving per `V_c` puo' raggiungere `Jaccard>=0.75` con acceptance_rate non nulla senza nascondere il proprio source_mode.

## Question
Il fallimento dello swap cieco a N=144 era limite del generatore, oppure impossibilita' del vincolo label-preserving?

## Experiment Design
- Script modificato: `tools/exp_vc_label_preserving_swap_gate.py`.
- Patch: aggiunta sorgente `phase_shift_sturmian` esplicita, con parametro `--phase-candidate-trials`.
- Hamiltoniana: diagonale `V * seq`, off-diagonal 1, autovalori tridiagonali.
- Curva: `r(V)` per `V=0.5..3.0`, step `0.01`.
- Gate null: `label_jaccard>=0.75`; audit obbligatorio `source_mode` e `hamming_ratio`.
- Run valido: `N=144`, 4 fasi, 2 candidati label per fase, 64 phase-candidates per candidato, `swap_steps=0`.
- Denominatore grezzo: `8` sequenze surrogate candidate; `24` righe evento per soglie `0.48/0.50/0.52`.

## Results
Sintesi aggregata:

| generator | conditions | floor_hit | internal_cross | internal_multi | vc_median | r_floor_median | label_jaccard_median | acceptance_rate | hamming_ratio_median |
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| phi_sturmian | 12 | 0 | 12 | 0 | 1.079034 | 0.659728 | 1.000000 | 1.0000 | 0.000000 |
| balanced_random | 12 | 3 | 6 | 3 | 0.565414 | 0.515496 |  |  | 0.430556 |
| swap_label_surrogate | 24 | 0 | 24 | 0 | 1.207107 | 0.683933 | 0.818182 | 0.7500 | 0.527778 |

Audit accettazione surrogate:

| phase | trial | source_mode | label_jaccard | hamming_ratio | accepted |
|---:|---:|---|---:|---:|---|
| 0.00 | 0 | phase_shift_sturmian | 0.642857 | 0.048611 | false |
| 0.00 | 1 | phase_shift_sturmian | 0.642857 | 0.048611 | false |
| 0.25 | 0 | phase_shift_sturmian | 1.000000 | 0.763889 | true |
| 0.25 | 1 | phase_shift_sturmian | 0.818182 | 0.763889 | true |
| 0.50 | 0 | phase_shift_sturmian | 1.000000 | 0.055556 | true |
| 0.50 | 1 | phase_shift_sturmian | 0.750000 | 0.291667 | true |
| 0.75 | 0 | phase_shift_sturmian | 1.000000 | 0.763889 | true |
| 0.75 | 1 | phase_shift_sturmian | 0.818182 | 0.763889 | true |

Subset accettato:

| subset | accepted_sequences | event_rows | internal_cross | vc_median | r_floor_median | label_jaccard_median | hamming_ratio_median | hamming_ratio_min |
|---|---:|---:|---:|---:|---:|---:|---:|---:|
| accepted phase bridge | 6/8 | 18 | 18 | 1.194263 | 0.681807 | 0.909091 | 0.763889 | 0.055556 |

## Key Findings
1. **Verificato: a N=144 il gate label-preserving diventa raggiungibile.** Il nuovo source_mode accetta `6/8` sequenze surrogate; sulle righe evento l'acceptance_rate aggregata e' `0.75`.
2. **Verificato: il ponte accettato conserva la forma Sturmian del boundary.** Le righe surrogate hanno `24/24` internal_cross, `0` floor-hit e `0` internal_multi; il random bilanciato resta misto (`3/12` floor-hit, `6/12` internal_cross, `3/12` internal_multi).
3. **Verificato: il risultato non e' indipendenza del null.** Tutti i surrogate accettati hanno `source_mode=phase_shift_sturmian`. Quindi il gate dimostra reachability del label-set dentro la famiglia Sturmian, non controprova esterna del boundary.
4. **Verificato: Hamming separa due casi.** Il mediano accettato e' alto (`0.763889`), ma esiste un accettato vicino alla reference (`0.055556`); il report non puo' usare l'accettazione senza riportare distanza e source_mode.
5. **Inferito: lo swap cieco falliva come generatore, non come impossibilita' del vincolo.** Il nodo regressivo ora si sposta: dalla raggiungibilita' del label-set alla sua indipendenza dal generatore Sturmian.

## Verdict
**CONSTRAINT**: il null label-preserving per `V_c` raggiunge `Jaccard>=0.75` a `N=144` con acceptance_rate non nulla (`6/8` sequenze, `0.75` sulle righe evento), ma solo come `phase_shift_sturmian`. Quindi il Lab ha un ponte strutturato accettabile per testare coerenza interna del boundary, non un contro-campo indipendente per trasferire verso GUE/Poisson.

La formulazione valida e': `phase_shift_sturmian` chiude il problema di reachability a N=144; non chiude il problema di indipendenza. Il prossimo confronto deve costruire un null non-Sturmian con `source_mode` diverso e `hamming_ratio` dichiarato, oppure dichiarare che il boundary `V_c` resta definito dentro la famiglia Sturmian.

## Bicono della scoperta
- **Due radici**: label-preserving raggiungibile . null indipendente non raggiunto.
- **Singolare**: il ponte di fase Sturmian, dove il contro-campo conserva il generatore e percio' non e' ancora contro-campo.
- **Invariante di passaggio**: `event_type=internal_cross` sopravvive quando il label-set e l'ordine Sturmian sopravvivono; non sopravvive nel random bilanciato.
- **Campo di possibilita**: qui diventa possibile usare un ponte label-preserving a N=144 per audit interno di `V_c`; qui diventa non-possibile passare a GUE/Poisson finche' `source_mode` resta Sturmian.

## Consecutio
Il prossimo passo non e' confrontare GUE/Poisson. E' spezzare il ponte: cercare un generatore non-Sturmian che mantenga `label_jaccard>=0.75` e `hamming_ratio` non triviale, oppure promuovere il vincolo che il label-set alto e' raggiungibile solo attraverso trasporto Sturmian nel perimetro 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_0637.md`, `agent_20260509_0652.md`, `agent_20260509_0659.md`, JSON `tools/data/vc_label_preserving_phase_bridge_20260509_0741.json`.
- **L1 hard constraint**: il verdict non autorizza GUE/Poisson; dichiara source_mode Sturmian come limite.
- **L2 count grezzi**: riportati `6/8`, `18/18`, `24/24`, `3/12`, `6/12`, `3/12`.
- **L3 no silent patching**: il nuovo candidato e' nominato come `phase_shift_sturmian`, non mascherato da swap indipendente.
- **L4 edge cases**: fase 0.00 fallisce in entrambi i trial; fase 0.50 trial0 passa ma con Hamming basso `0.055556`.
- **L5 re-discovery vs discovery**: la stabilita' Sturmian sotto fase e' attesa; il finding del ciclo e' il vincolo operativo: reachability si chiude, indipendenza resta aperta.

## 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_label_preserving_swap_gate.py` completato senza errori.
- Run fermato per budget: probe con `swap_steps=600`, `structured_trials=80`, `supertile_orders=3..9` non ha prodotto output entro il budget ed e' stato terminato.
- Run valido: `python tools/exp_vc_label_preserving_swap_gate.py --ns 144 --phases 0,0.25,0.5,0.75 --random-trials 1 --label-trials 2 --swap-steps 0 --structured-trials 0 --phase-candidate-trials 64 --min-hamming-ratio 0.03 --seed 202605090741 --out tools/data/vc_label_preserving_phase_bridge_20260509_0741.json`.

## Files
- Script modificato: `tools/exp_vc_label_preserving_swap_gate.py`
- Data: `tools/data/vc_label_preserving_phase_bridge_20260509_0741.json`
- Report: `tools/data/reports/agent_20260509_0741.md`
