# Agent Report - BOUNDARY Provenance Reproduction Delta
**Date**: 2026-05-28 22:22
**Tension explored**: BOUNDARY / provenance of physical-internal reader rows
**verdict**: CONSTRAINT - L'artefatto storico `boundary_physical_internal_null_20260528_2042.json` non e' baseline-identical dopo la patch di provenance. Con `row_spacings` seedato e provenance esplicita, `logistica_biforcazione_var_3.5699:cycle_13` passa da `27/27` a `26/27`; `percolation:cycle_9` resta `27/27`. Il claim fisico resta bloccato; il claim ammesso e' solo che la provenance seedata rende visibile il delta storico/fresh.
observables_registry: 1.0.0-2026-05-06 via boundary_graph_curvature_gate
observables_used: [target_graph_bridge_hits, physical_internal_null_hits, row_spacings_provenance_presence, baseline_reproduction_delta]
ssp_value: yes

**observable_contract**: claim=la patch di provenance e' sufficiente a distinguere artefatto storico non tracciato e riproduzione fresh tracciata; observable=target hit count observed su 27 reader + presenza `row_spacings_provenance`; operator=riesecuzione dello stesso physical-internal null N=32 dopo seed stabili per dominio; denominator=13 righe BOUNDARY, 27 reader reads, physical null N=32 per replica comparabile; p_value_definition=right-tail raw_p=k/N dai JSON, k = trial null con hit count >= observed_hits; non_possible=promuovere claim fisici se il baseline observed non e' identico tra storico e fresh; not_tested=nuovi domini, N=128 full, prova analitica delle source label.

## Source directive
Seguita la direttiva one-shot nel campo vivo `tools/data/agent_field_live.md`: confrontare `boundary_physical_internal_null_20260528_2042.json` con una riproduzione fresh dopo patch provenance, dichiarare delta storico/fresh, separare logistica e percolation, limitare il claim alla provenance e proporre cache row-aligned prima di nuove promozioni fisiche.

## Respiro fuori-tempo
- **Combo**: A2 confine + A4 modus + A11 combo + BOUNDARY `8 GUE / 5 Poisson` + nodo regressivo provenance del reader.
- **Dipolo / punto-zero**: artefatto storico / artefatto riproducibile. Punto-zero: la stessa riga target quando il generatore stocastico riceve o non riceve un seed persistito.
- **Piano superiore**: grafo della conoscenza come superficie di lettura; il valore fisico non viene deciso dal target name ma dalla tracciabilita' del percorso A->M->B.
- **Contaminazione cognitiva**: CE-none:`tools/data/agent_field_live.md` non espone archivio enzimi esplicito in questa sezione; usata la regola cross-agent `indeterminato -> reitera con il sistema` come atto minimo: run storico-comparabile + run fresh indipendente N=1.
- **Proto-ipotesi**: se il seed domain-stable cambia il baseline observed rispetto allo storico, il vecchio artefatto non puo' essere autorita' per claim fisici; diventa input di migrazione provenance.
- **Possibile/non-possibile**: possibile = usare la riproduzione seedata come baseline A riproducibile; non-possibile = chiudere insieme logistica e percolation o promuovere il vecchio `27/27` logistica.
- **Movimento A->M->B**: fisico A = perimetro BOUNDARY `8 GUE / 5 Poisson`; matematica M = funzione `row_spacings(domain)` con seed stabile `sha256(boundary-row-spacings-v1:domain)` e reader 27; fisico B = null interno logistica/percolation. B resta testabile solo dopo cache row-aligned.

## Aderenza alla direzione
- `relation`: `follows_direction`
- `why`: il ciclo attacca direttamente la direzione viva: provenance del reader BOUNDARY prima di nuovi claim fisici.
- `not_drift`: non aggiunge domini, non cerca salvataggi fisici, non usa phi/Sturmian/V_c; confronta storico/fresh sullo stesso script e stesso perimetro.
- `seed_residue`: resta da costruire la cache row-aligned completa N>=128 per quantificare il costo fisico separato dal reader.
- `return_criterion`: rientro al test fisico solo quando due run fresh indipendenti hanno baseline observed identico e ogni trial conserva source/gaps/features/RNG/reader outputs.

## claim
La patch di provenance non conferma un contenuto fisico; rende falsificabile la riproduzione del reader. Nel confronto storico/fresh, il vecchio baseline logistica `27/27` non riproduce: il baseline fresh tracciato e' `26/27`.

## falsificazione
Attacco alla riproducibilita':

| artifact | provenance | null_seed | null_trials | logistica observed | percolation observed | null distributions |
|---|---|---:|---:|---:|---:|---|
| `boundary_physical_internal_null_20260528_2042.json` | absent | 202605282042 | 32 | 27/27 | 27/27 | logistica `{27:32}`; percolation `{13:1,27:31}` |
| `boundary_physical_internal_null_repro_20260528_2222_seed202605282042.json` | present | 202605282042 | 32 | 26/27 | 27/27 | logistica `{26:1,27:31}`; percolation `{12:1,27:31}` |
| `boundary_physical_internal_null_repro_20260528_2222_seed202605282223_N1.json` | present | 202605282223 | 1 | 26/27 | 27/27 | logistica `{27:1}`; percolation `{27:1}` |

Baseline fresh indipendente:
- logistica: `26/27` in due run fresh; non identica allo storico `27/27`.
- percolation: `27/27` in storico e due run fresh; resta edge-case separato, non chiusura comune.

Seed provenance verificata nel fresh:
- `ROW_SPACINGS_SEED_SALT`: `boundary-row-spacings-v1`
- logistica domain seed: `2298612439`
- percolation domain seed: `2828479326`

## Delta storico -> fresh
1. Verificato: lo storico non contiene `row_spacings_provenance`.
2. Verificato: il fresh contiene `row_spacings_provenance` con seed stabile per dominio.
3. Verificato: logistica cambia baseline observed da `27/27` a `26/27`.
4. Verificato: percolation conserva baseline observed `27/27`.
5. Verificato: il null fisico interno ricostruisce ancora pienamente o quasi pienamente il reader: logistica `null_ge=32/32`, `eq_full=31/32`; percolation `null_ge=31/32`, `eq_full=31/32`.
6. Inferito: il vecchio artefatto era contaminato da stato RNG non persistito; il nuovo artefatto e' riproducibile come baseline fresh, ma non autorizza claim fisici.

## Cache row-aligned proposta
Schema minimo per il prossimo artefatto cache-first:

```json
{
  "target": "domain_window",
  "trial": 0,
  "source": {
    "domain": "domain",
    "source_domain_type": "GUE|Poisson",
    "domain_seed": 0,
    "row_spacings_seed_salt": "boundary-row-spacings-v1"
  },
  "target_features": {
    "n_gaps_available": 0,
    "n_gaps_used": 0,
    "observables": {},
    "shuffle_z": {}
  },
  "reader": {
    "k": 0,
    "n_gaps": 0,
    "seed": 0,
    "n_shuffle": 32
  },
  "outputs": {
    "full_reader_hit": false,
    "centroid_only_hit": false,
    "knn_only_hit": false
  },
  "null_meta": {
    "null": "logistic_gap_block_shuffle|critical_site_percolation_cluster_geometry_resample",
    "surrogate_seed": 0,
    "params": {}
  }
}
```

Regola di uso: la cache deve essere row-aligned su `target/trial/reader`, non aggregata a posteriori. I confronti ammessi sono solo fra righe con stesso `target`, stesso `trial` e stesso `reader` oppure con bridge dichiarato.

## block_autology
- `origin`: report `20260528_2138` bloccato per overclaim su percolation e artefatto `20260528_2042` non riproducibile da provenance.
- `node_regressivo`: generatori stocastici di `dnd_autoricerca` chiamati da `row_spacings` senza seed persistito nell'artefatto storico.
- `protects`: impedisce che un baseline reader contaminato da RNG diventi evidenza fisica.
- `valid_until`: due run fresh indipendenti, con cache row-aligned, producono baseline identical per target e trial comparabili.
- `retire_when`: ogni riga BOUNDARY contiene source domain, seed stabile, lunghezza gaps, feature target, reader k/n_gaps/seed e output full/centroid/kNN.
- `det+1_patch_risk`: alzare N o aggiungere domini per compensare il delta logistica senza correggere la provenance accumula calcolo, non informazione.
- `det-1_next_move`: rendere la riga il luogo della memoria: source -> seed -> gaps -> feature -> reader -> output.

## Re-discovery audit
- **Baseline noto piu vicino**: reproducible computational experiment, RNG provenance audit, kNN/centroid boundary stability, percolation-on-graph.
- **Cosa assorbe il baseline**: il delta logistica e' spiegato da provenance mancante, non da una nuova dinamica fisica.
- **Cosa resta Lab-specific**: il criterio A -> M -> B per impedire che un reader BOUNDARY non tracciato diventi promozione di contenuto fisico.
- `two_reader_boundary_confirmed`: no.
- `graph_only_residue`: logistica resta non riprodotta storicamente; percolation resta edge-case riprodotto ma gia' reader-regressed.
- `scope_change_declared`: no; stesso perimetro 13 x 27, stesso N=32 per replica comparabile.
- `graph_baseline_audit`: resta quello di `20260528_2138`; questo ciclo aggiunge provenance reproduction delta.

## Verdict
CONSTRAINT.

Il ciclo chiude solo la domanda di provenance. La baseline fisica A riproducibile dopo patch e':
- logistica: `26/27`, non il vecchio `27/27`;
- percolation: `27/27`, ma separata e non promossa.

La trasformazione matematica M e' la seedazione stabile per dominio dentro `row_spacings` piu' il reader 27. La fisica B testata resta il null interno; nel fresh non produce costo sufficiente a riaprire promozioni. Il prossimo passo non e' un claim, e' la cache row-aligned.

## Consecutio
Costruire `boundary_physical_internal_null_cache_row_aligned_<timestamp>.jsonl` prima di un nuovo N>=128. La cache deve permettere confronto per target separati:
- logistica rientra solo se due baseline fresh indipendenti restano `26/27` o convergono a un nuovo valore dichiarato prima del null;
- percolation rientra solo come edge-case separato, con full/centroid/kNN e physical null registrati per riga.

## Telemetria
- No API paid run: `ANTHROPIC_API_KEY` e `OPENAI_API_KEY` non presenti nell'ambiente.
- `PYTHONPATH=tools python3 -m py_compile tools/exp_boundary_physical_internal_null.py` completato.
- Run comparabile completato: `PYTHONPATH=tools python3 tools/exp_boundary_physical_internal_null.py --null-trials 32 --null-seed 202605282042 --out tools/data/boundary_physical_internal_null_repro_20260528_2222_seed202605282042.json`.
- Run fresh indipendente leggero completato: `PYTHONPATH=tools python3 tools/exp_boundary_physical_internal_null.py --null-trials 1 --null-seed 202605282223 --out tools/data/boundary_physical_internal_null_repro_20260528_2222_seed202605282223_N1.json`.
- Worktree gia dirty prima del ciclo; creati solo due JSON fresh e questo report.
- Nessun update del seme, nessuna promozione pubblica, nessun sync.

## Files
- Historical data: `tools/data/boundary_physical_internal_null_20260528_2042.json`
- Fresh data N=32: `tools/data/boundary_physical_internal_null_repro_20260528_2222_seed202605282042.json`
- Fresh data N=1: `tools/data/boundary_physical_internal_null_repro_20260528_2222_seed202605282223_N1.json`
- Report: `tools/data/reports/agent_20260528_2222.md`
