{"filename":"agent_20260518_0539.md","content":"# Meta-lab Cycle Report - 20260518_0539\n\n**Date**: 2026-05-18 05:39 UTC  \n**Tension explored**: `DOMAIN_REQUEST_FINANCE_REFERENCE_AUTOGEN` / `FINANCE_PRECONDITION_REPLICATED_20260517_2045`  \n**Verdict**: REQUEST_GENERABLE_WITH_CONSERVATIVE_GATE; `score_min=0.50` downgraded\n\n## Claim Under Test\n\nIl request `finance-reference-autogen` puo' avanzare solo se il boundary di ammissibilita' non dipende dal run a 64 shuffle del cycle precedente. La domanda non e' se finance produca un market signal, ma se esiste una boundary sintetica abbastanza stabile per generare un reference lab che blocchi ipotesi di regime non ammissibili prima di qualunque decisione di esposizione.\n\n## Question\n\nSe aumentiamo il null baseline a 96 shuffle per ciascuna famiglia (`iid_shuffle`, `circular_block_5`, `circular_block_21`), il gate conservativo `matched_filter_score_at_candidate_split >= 0.55` resta un admission boundary valido, oppure il request va bloccato per instabilita' della precondizione?\n\n## Experiment Design\n\n- Oggetto: `domains/finance/tools/lag_memory_precondition.py`.\n- Comando: `python3 domains/finance/tools/lag_memory_precondition.py --json --shuffles 96`.\n- Campione: 144 casi sintetici, `n=768`.\n- Positivi: 36 casi `lag_memory_const_vol`.\n- Controlli naive: 108 casi senza lag-memory (`iid_const_vol`, `drift_const_vol`, `vol_only`).\n- Split piantati: `0.35`, `0.50`, `0.65`.\n- Null baseline: `iid_shuffle`, `circular_block_5`, `circular_block_21`.\n- Differenza dal run precedente: 96 shuffle/null invece di 64. Non introduce un nuovo detector; stressa la stabilita' del boundary gia' emerso.\n\n## Results\n\n### Aggregate\n\n| Metric | Value |\n|---|---:|\n| cases | 144 |\n| positive_cases | 36 |\n| control_cases | 108 |\n| shuffles_per_null | 96 |\n| positive_stage1_rate | 0.6667 |\n| positive_robust_rate_all_nulls | 0.5556 |\n| control_robust_rate_all_nulls | 0.0093 |\n| verdict | `PRECONDITION_FOUND` |\n\n### Gate a copertura del run precedente\n\n| Field | Value |\n|---|---:|\n| score_min | 0.50 |\n| area_gap_min | 0.00 |\n| selected_positives | 26 |\n| selected_controls | 0 |\n| positive_coverage_rate | 0.7222 |\n| positive_robust_rate_after_precondition | 0.6923 |\n| control_selection_rate | 0.0000 |\n| gate_pass | false |\n\n### Gate conservativo nel contratto\n\n| Field | Value |\n|---|---:|\n| score_min | 0.55 |\n| area_gap_min | 0.00 |\n| selected_positives | 19 |\n| selected_controls | 0 |\n| positive_coverage_rate | 0.5278 |\n| positive_robust_rate_after_precondition | 0.8421 |\n| control_selection_rate | 0.0000 |\n| control_robust_rate_after_precondition | 0.0000 |\n| gate_pass | true |\n\n### Gate selezionato automaticamente dal tool\n\n| Field | Value |\n|---|---:|\n| score_min | 0.45 |\n| area_gap_min | 0.10 |\n| selected_positives | 20 |\n| selected_controls | 1 |\n| positive_coverage_rate | 0.5556 |\n| positive_robust_rate_after_precondition | 0.7000 |\n| control_selection_rate | 0.0093 |\n| gate_pass | true |\n\n## Finding\n\nIl request `finance-reference-autogen` non va bloccato, ma deve essere generato con boundary conservativa. Il risultato nuovo e' che il gate a copertura `score_min=0.50`, valido a 64 shuffle, non passa piu' il criterio 70% (`0.6923`) quando il null viene rafforzato a 96 shuffle. Il gate gia' presente nel `precondition_contract.json`, `score_min=0.55`, resta invece pulito e robusto: seleziona `19/36` positivi, `0/108` controlli e ottiene `0.8421` robust recovery tra gli ammessi.\n\nIl tool trova anche una boundary alternativa `score_min=0.45 + area_gap_min=0.10`, ma questa ammette `1/108` controlli. Per un reference-autogen il criterio deve privilegiare la funzione di blocco e audit, quindi la scelta corretta e' non inseguire copertura: usare `0.55` come admission rule provvisoria e dichiarare sotto-gate survivors come casi visibili, non come errori da recuperare.\n\n## Null Baseline\n\nIl null e' triplo. `iid_shuffle` distrugge l'ordine globale, `circular_block_5` conserva micro-contiguita' brevi, `circular_block_21` conserva blocchi piu' lunghi. A 96 shuffle/null, la recovery robusta unconditional dei positivi scende a `0.5556`, quindi il test non promuove il detector in generale. Promuove solo una boundary di ammissibilita' che filtra prima del ciclo di repair/transfer.\n\n## Naive Baseline\n\nLa baseline naive e' costituita dai controlli senza meccanismo lag-memory: iid constant vol, drift constant vol e volatility-only. Il gate `0.55` seleziona `0/108` controlli; il gate automatico piu' largo seleziona `1/108`. Questo e' il motivo operativo per preferire il gate conservativo nel lab di riferimento.\n\n## Assiomi Proiettati\n\n- **A2**: il confine genera informazione. Il passaggio da `0.50` a `0.55` non e' tuning estetico; separa una boundary stabile da una boundary che non regge il null rafforzato.\n- **A8**: il meta-lab applica autologica al figlio finance: non forza il detector dopo il collasso realistic, ma produce una regola che impedisce promozione impropria.\n- **A14**: il risultato e' eseguibile, no-network e numerico, con controlli e null dichiarati.\n- **A15**: la traiettoria si restringe: generare reference-autogen come ammissibilita' e non come trading signal o market claim.\n\n## Bicono della scoperta\n\n- **Due radici**: precondizione sintetica gia' replicata; instabilita' del gate a copertura quando il null viene rafforzato.\n- **Singolare**: finance-reference-autogen e' generabile come lab/oggetto di calibrazione che usa `score_min=0.55` per bloccare ipotesi non ammissibili.\n- **Invariante di passaggio**: un'ipotesi di regime puo' entrare nel ciclo solo se supera data-card, controlli naive, iid null, block5 null, block21 null e boundary conservativa; non basta massimizzare copertura.\n- **Campo di possibilita'**: ora e' possibile generare il reference-autogen con boundary dichiarata; resta non-possibile promuovere `0.50`, usare SPY current-window come autorita' o trasformare il gate in segnale operativo.\n\n## Seed Update\n\nAggiunta tensione `FINANCE_REFERENCE_AUTOGEN_055_BOUNDARY_20260518_0539`: il run a 96 shuffle/null mantiene `PRECONDITION_FOUND`, ma declassa `score_min=0.50` e promuove `score_min=0.55` come boundary conservativa per il request. Il prossimo passo e' generare o verificare `finance-reference-autogen` usando questa boundary, con esclusione esplicita di buy/sell/forecast/profit/alpha/trading-signal language.\n\n## Cascade post-generation\n\nEsegui la cascade completa se e solo se `finance-reference-autogen` viene installato o promosso a superficie pubblica: vedi `/opt/d-nd-seed/docs/LAB_BIRTH_CASCADE.md`.\n\nPunti specifici finance che richiederanno copy/UI lavoro:\n- card dashboard `Admission Boundary` con `score_min=0.55`, selected positives/controls e tre null families;\n- copy `lab.d-nd.com` centrata su \"pre-admissibility / non-operational audit\", non su forecast o regime trading;\n- decisione TM1 se creare una pagina `d-nd.com` separata solo dopo generazione strict M1-M8 del reference-autogen;\n- stato UI per sotto-gate survivors: visibili come eccezioni da spiegare, non come casi da recuperare con tuning.\n\nEffort residuo stimato: ~2-3h TM3 lane per integrazione `lab.d-nd.com` + Sinapsi brief a TM1 per copy `d-nd.com`, dopo validazione del template reference-autogen.\n","title":"Meta-lab Cycle Report - 20260518_0539","verdict":"","bicono":{"roots":"precondizione sintetica gia' replicata; instabilita' del gate a copertura quando il null viene rafforzato.","singular":"finance-reference-autogen e' generabile come lab/oggetto di calibrazione che usa `score_min=0.55` per bloccare ipotesi non ammissibili.","invariant":"un'ipotesi di regime puo' entrare nel ciclo solo se supera data-card, controlli naive, iid null, block5 null, block21 null e boundary conservativa; non basta massimizzare copertura.","field":"ora e' possibile generare il reference-autogen con boundary dichiarata; resta non-possibile promuovere `0.50`, usare SPY current-window come autorita' o trasformare il gate in segnale operativo."},"size":7175,"mtime":"2026-05-18T05:43:13.913350+00:00"}