# Agent Report - Vc Fit-Ready Denominator Gate
**Date**: 2026-05-09 13:37
**Piano**: 102
**Tension explored**: TENS_SCALE_TRASCENDENZA_LIMITE / TRASCENDENZA_LIMITE (0.6 / 0.9)
**verdict**: CONSTRAINT on fit-ready V_c denominators
observables_registry: 1.0.0-2026-05-06
observables_used: [`denominator_state`, `fit_ready_rows`, `excluded_rows`, `excluded_events`, `vc_median_fit_ready`, `slope_per_N`] - osservabili domain-native, non canonici SR/SR2/L1/L2/triple_var
**observable_contract**: claim=`fit(V_c)` e' ammesso solo quando il denominatore e' fit-ready; observable=stato strutturale del denominatore e curva `vc_median_fit_ready`; operator=lettura del deposito 08:46 con separazione `complete/contaminated/broken/absent`; generator=classi `reference_order`, `order_memory`, `periodic_closure`, `random_dispersion`; denominator=JSON `vc_generator_class_direction_audit_20260509_0846`, livelli separati `per_mode_best` e `accepted_candidates`, soglie `r={0.48,0.50,0.52}`, N={89,144,233,377}; non_possible=righe `no_cross` e `floor_hit` non entrano nel fit e restano massa esclusa; not_tested=nuovi spettri, nuovi N, nuovi generatori, gap_ratio, power-law non lineare.

## Respiro fuori-tempo
- **Prima impressione**: il valore `V_c` non e' il punto-zero; il punto-zero e' la riga prima che il confine decida se `V_c` esiste.
- **Combo**: A2 confine det=-1 + A9 terzo incluso + QxG continuo/discreto + grafo dei generatori + tensione `TENS_SCALE_TRASCENDENZA_LIMITE`.
- **Dipolo / punto-zero**: curva fittabile / curva non definita; punto-zero = denominatore fit-ready prima della regressione numerica.
- **Piano superiore**: grafo della conoscenza e bicono-dipoli. Il fit e' un arco consentito solo dopo che il nodo-evento conserva attraversamento.
- **Operatori laterali scelti**: boundary operator, graph cut, filtrazione. Entrano per tagliare il deposito in stati strutturali prima del fit.
- **Contaminazione cognitiva**:
  - **CE-0001 / KSAR**: reiterazione sul deposito 08:46 senza nuovo campo dati.
  - **CE-0117**: cascata della possibilita; il fit diventa possibile solo nel sottografo che conserva evento.
  - **YSN DeltaLink**: `event_type -> fit_ready -> scale_curve`, non `N -> V_c`.
- **Proto-ipotesi**: la scala di `V_c` e' un osservabile secondario. L'osservabile primario e' il denominatore fit-ready: se il denominatore e' broken, la curva non fallisce, non esiste sul perimetro.
- **Proiezione**: costruisco una tabella fit-ready dal deposito 08:46. Se una classe perde almeno un N intero, il fit aggregato diventa non-possibile per quella classe e soglia.

## Claim Under Test
> Nel perimetro del deposito 08:46, `fit(V_c)` e' lecito solo per classi/soglie con denominatore `complete` o, con avvertenza, `contaminated`; e' non-possibile per stati `broken` o `absent`.

## Question
Il fallimento del fit di scala e' una proprieta della forma numerica, oppure una proprieta del denominatore che decide dove `V_c` esiste?

## Experiment Design
- Nuovo strumento: `tools/exp_vc_fit_ready_scale_table.py`.
- Input: `tools/data/vc_generator_class_direction_audit_20260509_0846.json`.
- Output: `tools/data/vc_fit_ready_scale_table_20260509_1337.json`.
- Nessun nuovo spettro calcolato: il ciclo misura il deposito row-aligned del ciclo precedente.
- Stati strutturali:
  - `complete`: ogni N ha righe fit-ready e zero righe escluse.
  - `contaminated`: ogni N ha righe fit-ready, ma esiste massa esclusa.
  - `broken`: almeno un N non ha righe fit-ready.
  - `absent`: nessuna riga fit-ready.
- Contratto osservabile-operatore: `vc_defined = event in {internal_cross, internal_multi}`; `fit_ready = vc_defined and vc_interp is not null`; `no_cross/floor_hit` sono massa esclusa, non missing neutro.

## Results

Indice stati:

| state | class-threshold entries |
|---|---:|
| complete | 7 |
| contaminated | 6 |
| broken | 5 |
| absent | 0 |

Soglia `r=0.50`, livello `per_mode_best`:

| class | state | fit_ready/total | excluded | Vc first->last | slope_per_N |
|---|---|---:|---:|---:|---:|
| reference_order | complete | 16/16 | 0 | 1.191 -> 0.879 | -0.001043 |
| order_memory | complete | 48/48 | 0 | 1.317 -> 0.774 | -0.001833 |
| periodic_closure | contaminated | 36/47 | 11 no_cross | 0.999 -> 0.650 | -0.000913 |
| random_dispersion | broken | 20/32 | 12 floor_hit | 0.763 -> 0.541 | -0.001462 |

Soglia `r=0.50`, livello `accepted_candidates`:

| class | state | fit_ready/total | excluded | Vc first->last | slope_per_N |
|---|---|---:|---:|---:|---:|
| order_memory | contaminated | 278/279 | 1 no_cross | 1.350 -> 0.899 | -0.001628 |
| periodic_closure | broken | 102/393 | 291 no_cross | 1.593 -> 0.605 | -0.017960 |

Accepted `order_memory` a `r=0.52`:

| class | state | fit_ready/total | excluded | Vc first->last | slope_per_N |
|---|---|---:|---:|---:|---:|
| order_memory | complete | 279/279 | 0 | 1.236 -> 0.781 | -0.001606 |

## Key Findings
1. **Verificato: il fit completo esiste nel livello best-per-mode per `reference_order` e `order_memory`.** A `r=0.50`, `reference_order` ha 16/16 righe fit-ready e `order_memory` ha 48/48.
2. **Verificato: sugli accepted, `periodic_closure` e' broken a tutte le soglie.** A `r=0.50`, 291/393 righe sono `no_cross`; N=233 e N=377 non hanno punti fit-ready, quindi la curva non puo' essere letta come scala.
3. **Verificato: `random_dispersion` nel best-per-mode e' broken a `r=0.50` e `r=0.52`.** A `r=0.50`, N=377 cade tutto in `floor_hit`; il valore al bordo non e' un punto interno di fit.
4. **Verificato: `order_memory` accepted si pulisce a `r=0.52`.** Passa da `contaminated` a `r=0.50` con 1 no_cross a `complete` a `r=0.52` con 279/279 righe fit-ready. La soglia modifica il denominatore, non solo il valore del fit.
5. **Inferito: la consecutio corretta non e' scegliere un modello power-law alternativo.** Prima va promosso il gate `denominator_state` nel contratto dei futuri fit `V_c`.

## Verdict
**CONSTRAINT**: `V_c` scaling e' ammesso solo dopo gate fit-ready.

Nel perimetro 08:46 -> 13:37, `order_memory` conserva un canale fittabile; `periodic_closure` conserva label ma rompe il denominatore sugli accepted; `random_dispersion` raggiunge il floor e non fornisce curva interna a N=377. Il claim corretto e':

`fit(V_c)` non opera su `V_c` aggregato. Opera su righe `fit_ready=True`, stratificate per livello, classe generatore e soglia.

## Bicono della scoperta
- **Due radici**: curva di scala / massa esclusa.
- **Singolare**: il denominatore prima della regressione, dove `V_c` puo' ancora essere valore, assenza di crossing, o floor.
- **Invariante di passaggio**: `fit_ready` sopravvive su `order_memory`; non sopravvive su `periodic_closure` accepted e su `random_dispersion` al bordo alto.
- **Campo di possibilita**: qui diventa possibile fittare `V_c` solo nel sottografo fit-ready; qui diventa non-possibile usare `no_cross` o `floor_hit` come missing data neutro.

## Consecutio
Il prossimo ciclo puo' rifare il fit parametrico solo su righe `complete` o dichiaratamente `contaminated`. Se entra `broken`, il risultato deve essere classificato come denominatore non-definito, non come cattivo fit.

## 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_0846.md`, JSON `tools/data/vc_generator_class_direction_audit_20260509_0846.json`, nuovo JSON `tools/data/vc_fit_ready_scale_table_20260509_1337.json`.
- **L1 hard constraint**: il verdict vale solo per il deposito 08:46 e le soglie/N/generatori dichiarati.
- **L2 count grezzi**: riportati 16/16, 48/48, 36/47, 20/32, 278/279, 102/393, 279/279.
- **L3 no observable drift**: non sono testati gap_ratio, nuovi N, nuovi spettri o power-law non lineare.
- **L4 edge cases**: `order_memory` accepted a `r=0.50` ha 1 no_cross; per questo e' `contaminated`, non `complete`.
- **L5 re-discovery vs discovery**: il finding non e' che `V_c` scende con N; il finding e' che la discesa e' leggibile solo dopo classificazione fit-ready del denominatore.

## 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_fit_ready_scale_table.py` completato senza errori.
- Run valido: `python tools/exp_vc_fit_ready_scale_table.py --input tools/data/vc_generator_class_direction_audit_20260509_0846.json --out tools/data/vc_fit_ready_scale_table_20260509_1337.json`.

## Files
- Script nuovo: `tools/exp_vc_fit_ready_scale_table.py`
- Data: `tools/data/vc_fit_ready_scale_table_20260509_1337.json`
- Report: `tools/data/reports/agent_20260509_1337.md`
