{"filename":"agent_20260517_1018.md","content":"# Agent Report — Precondition Gate Test\n**Date**: 2026-05-17 10:18 UTC\n**Piano**: 25\n**Tension explored**: `TRAJECTORY_APPLY_20260517_0626 / T17_ADAPTIVE_AGGREGATION_REJECTED`\n\n## Claim Under Test\nAdaptive split/window aggregation has been rejected for the current lag-map matched-filter family. The active claim is narrower: the selected precondition\n\n`matched_filter_score_at_candidate_split >= 0.55`\n\nis a provisional finite-sample admission gate for `lag_memory_const_vol`, not another tuned score. If true, it should select recoverable positives on an independent synthetic seed block while not selecting iid, drift, or volatility controls.\n\n> Post-falsifier correction: read the 75.0% result as conditional enrichment inside the admitted cohort, not as an unconditional increase in recovered positives. The gate selects 24/36 positives, retains 18/20 robust positives, loses 2/20 robust positives, and selects 0/108 controls.\n\n## Question\nDoes the selected matched-filter precondition produce admitted-cohort robust recovery above 70% while keeping controls below the 5% selection and robust false-positive ceilings, and while reporting rejected positives separately?\n\n## Experiment Design\nScript executed:\n\n`python3 data/finance/experiments/precondition_gate_test_20260517_1018.py`\n\nThe run used fresh seeds `6220..6231`, not the audit seed block that selected the contract. Scope:\n\n- cases: 144 total\n- positives: 36 `lag_memory_const_vol`\n- controls: 108 across `iid_const_vol`, `drift_const_vol`, `vol_only`\n- planted splits: 0.35, 0.50, 0.65\n- shuffles per null: 48\n- null families: `iid_shuffle`, `circular_block_5`, `circular_block_21`\n- gate: `matched_filter_score_at_candidate_split >= 0.55`\n- optional area gate: `area_gap_abs_at_candidate_split >= 0.0`\n\nThe detector score remains the local lag-map matched filter:\n\n`max(delta rho_1, 0) + max(-delta rho_2, 0)`\n\nNull baseline: the same split-profile matched-filter scan is applied to ordered data and to iid, block5, and block21 surrogates.\n\nNaive baseline: this gate test does not use VaR/RV in the admission rule. The relevant local baseline is the ungated robust rate on the same independent seed block. Prior fixed matched-filter calibration already showed RV/VaR localization at 8.3% on the positive object, so VaR/RV are not the source of this admission gain.\n\nPrior-art boundary: Hamilton/HMM would model a latent state, Bai-Perron would search parameter breaks, RV-based regimes would rank volatility scale, and standard matched filtering / threshold classification / precision-recall analysis would describe the admission mechanism. This cycle only tests whether a local M-orientation precondition separates recoverable ordered structure from controls under shuffle and block-preserving nulls. It remains exposed to selective-inference, scan-aware validation, and multiple-testing constraints.\n\n## Results\n| Cohort | Cases | Stage1 iid+block5 | Robust all-null | Median iid z | Median block5 z | Median block21 z | Median gate score |\n|---|---:|---:|---:|---:|---:|---:|---:|\n| All positives | 36 | 27/36 = 75.0% | 20/36 = 55.6% | 18.644 | 16.041 | 6.949 | 0.606 |\n| Admitted positives | 24 | 22/24 = 91.7% | 18/24 = 75.0% | 25.635 | 24.538 | 12.275 | 0.672 |\n| Rejected positives | 12 | 5/12 = 41.7% | 2/12 = 16.7% | 4.910 | 4.284 | 2.579 | 0.490 |\n| All controls | 108 | 0/108 = 0.0% | 0/108 = 0.0% | -0.211 | -0.206 | -0.206 | 0.087 |\n| Admitted controls | 0 | 0.0% | 0.0% | n/a | n/a | n/a | n/a |\n\nAbsolute retention check:\n\n- ungated robust positives: 20/36\n- admitted robust positives: 18/24\n- robust positives retained by gate: 18/20\n- robust positives lost by gate: 2/20\n- positive coverage by gate: 24/36\n\nSelection by variant:\n\n| Variant | Selected | Selection rate | Robust after gate |\n|---|---:|---:|---:|\n| `lag_memory_const_vol` | 24/36 | 66.7% | 18/24 = 75.0% |\n| `iid_const_vol` | 0/36 | 0.0% | 0.0% |\n| `drift_const_vol` | 0/36 | 0.0% | 0.0% |\n| `vol_only` | 0/36 | 0.0% | 0.0% |\n\nAssertions:\n\n| ID | Status | Detail |\n|---|---|---|\n| `PRECONDITION_GATE_01` | PASS | Admitted positives = 24, above the minimum 12-case support. |\n| `PRECONDITION_GATE_02` | PASS | Admitted-cohort robust precision = 75.0% vs ungated positive robust rate = 55.6%; this is conditional enrichment, not absolute recovery gain. |\n| `PRECONDITION_GATE_03` | PASS | Admitted controls = 0/108; control selection = 0.0%. |\n| `PRECONDITION_GATE_04` | PASS | Admitted control robust false positives = 0.0%. |\n| `PRECONDITION_GATE_05` | PASS | Admitted positive robust = 75.0%; rejected positive robust = 16.7%. |\n\n## Key Findings\n1. The selected precondition passes on an independent seed block as a conditional admission rule. It admits 24/36 positives; inside that admitted cohort robust all-null recovery is 18/24 = 75.0%. Across all positives, robust recovery remains 20/36 = 55.6%, with 18/20 robust positives retained and 2/20 robust positives excluded.\n\n2. The gate does not select controls in this run. `iid_const_vol`, `drift_const_vol`, and `vol_only` all have 0/36 selected cases; aggregate control selection and robust false positives are both 0.0%.\n\n3. The gate biases selection toward recoverable positives before block21 admission: admitted robust recovery is 75.0%, while rejected positive robust recovery is 16.7%. Admitted positives have median block21 z = 12.275, while rejected positives have median block21 z = 2.579 and robust recovery only 16.7%.\n\n4. This is not a market claim and not a trading signal. It is an admissibility constraint for the synthetic lag-memory calibration object.\n\n## Verdict\n**PRECONDITION_GATE_PASS, PROVISIONAL.** The current contract `matched_filter_score_at_candidate_split >= 0.55` is validated as a finite-sample admission gate for the next lag-memory calibration cycle. It can be used as a precondition before any block21 repair/statistic test on `lag_memory_const_vol`, provided every run keeps admitted positives, rejected positives, robust-positive retention/loss, and all controls visible.\n\nNo real-market promotion is authorized. The next cycle may test a materially different block-aware statistic only inside the admitted cohort, while still reporting rejected positives and all controls.\n\n## Bicono della scoperta\n- **Due radici**:\n  - Root 1: Ungated `lag_memory_const_vol` still carries ordered structure, but robust recovery is only 55.6% on this independent seed block.\n  - Root 2: The local matched-filter score at the candidate split selects the subset where block21 survival is already structurally present: 75.0% robust precision after admission, 18/20 robust positives retained, zero controls selected.\n- **Singolare**: The singular point is the rejected-positive cohort: it has similar area-gap scale but gate score below 0.55 and median block21 z = 2.579, exposing why block21 repair attempts failed when applied ungated.\n- **Invariante di passaggio**: Under the current finite-sample contract, a future lag-memory case is admissible only if the local candidate split score is at least 0.55 before block21 admission or aggregation. Post-hoc continuity and window freedom remain rejected.\n- **Campo di possibilita'**: Use this precondition as a provisional calibration contract. The next useful experiment maps the rejected positives before adding any new repair operator; if the gate later leaks controls above 5%, falls below 70% admitted robust precision, or loses too many robust positives, retire it instead of retuning.\n\n## Files\n- Experiment script: `data/finance/experiments/precondition_gate_test_20260517_1018.py`\n- Experiment output: `data/finance/experiments/precondition_gate_test_20260517_1018.json`\n- Report: `data/finance/reports/agent_20260517_1018.md`\n","title":"Agent Report — Precondition Gate Test","verdict":"PRECONDITION_GATE_PASS, PROVISIONAL.** The current contract `matched_filter_score_at_candidate_split >= 0.55` is validated as a finite-sample admission gate for the next lag-memory calibration cycle. ","bicono":{"roots":"- Root 1: Ungated `lag_memory_const_vol` still carries ordered structure, but robust recovery is only 55.6% on this independent seed block.\n  - Root 2: The local matched-filter score at the candidate split selects the subset where block21 survival is already structurally present: 75.0% robust precision after admission, 18/20 robust positives retained, zero controls selected.","singular":"The singular point is the rejected-positive cohort: it has similar area-gap scale but gate score below 0.55 and median block21 z = 2.579, exposing why block21 repair attempts failed when applied ungated.","invariant":"Under the current finite-sample contract, a future lag-memory case is admissible only if the local candidate split score is at least 0.55 before block21 admission or aggregation. Post-hoc continuity and window freedom remain rejected.","field":"Use this precondition as a provisional calibration contract. The next useful experiment maps the rejected positives before adding any new repair operator; if the gate later leaks controls above 5%, falls below 70% admitted robust precision, or loses too many robust positives, retire it instead of retuning."},"size":7710,"mtime":"2026-05-17T10:29:03.046201+00:00"}