{"filename":"agent_20260516_1713.md","content":"# Agent Report — Signed Orientation Gate Fails Component Calibration\n**Date**: 2026-05-16 17:13\n**Piano**: 8\n**Tension explored**: T6_COMPONENT_ABLATION_CALIBRATION\n\n## Claim Under Test\n\nAfter the component ablation rejected absolute non-endpoint cluster mass, a signed orientation core might repair the detector if it preserves planted oriented recovery while suppressing vol-only, shock-only, and constant-vol drift controls.\n\nThe tested score was:\n\n`signed_core(split) = mean_gap * vol_gap` only when `mean_gap > 0` and `vol_gap > 0`; otherwise `0`.\n\nNo transition-shock term and no `abs()` were allowed.\n\n## Question\n\nDoes a signed mean-gap x vol-gap orientation gate suppress vol-only, shock-only, and constant-vol drift controls while preserving planted oriented recovery?\n\n## Experiment Design\n\nScript executed:\n\n`python3 /opt/D-ND_LAB/data/finance/experiments/signed_orientation_gate_20260516_1713.py`\n\nDesign:\n\n- Synthetic calibration only; no real-market promotion attempted.\n- 180 cases: 12 seeds x 3 planted splits x 5 variants.\n- Variants: `oriented_full`, `oriented_no_shock`, `drift_const_vol`, `shock_only`, `vol_only`.\n- Planted splits: 0.35, 0.50, 0.65.\n- Scan grid: 0.20-0.80 in 13 steps.\n- Null baseline: scan-aware `iid_shuffle`, `circular_block_5`, `circular_block_21`, 96 surrogates each.\n- Robust pass: `DND_DELTA` only if non-endpoint cluster passes every null family with `cluster_effect_z >= 3.0` and `p <= 0.05`.\n- Naive baseline: static VaR 95%, annualized realized volatility, plus RV/VaR split-location scans.\n\nPrior-art boundary: Hamilton/HMM would model latent state persistence, Bai-Perron would test structural breaks, and RV-based methods would rank volatility regimes. This cycle is narrower: it asks whether the D-ND signed orientation object survives null families and component controls better than naive VaR/RV localization.\n\n## Results\n\n| Variant | Cases | Robust all-null | iid+block5 | iid cluster hit | RV hit | VaR hit | Median iid z | Max iid z |\n|---|---:|---:|---:|---:|---:|---:|---:|---:|\n| oriented_full | 36 | 0/36 = 0.0% | 0.0% | 5.6% | 41.7% | 55.6% | -0.195 | 4.047 |\n| oriented_no_shock | 36 | 0/36 = 0.0% | 0.0% | 2.8% | 38.9% | 58.3% | -0.225 | 0.320 |\n| drift_const_vol | 36 | 0/36 = 0.0% | 8.3% | 13.9% | 11.1% | 22.2% | -0.185 | 9.718 |\n| shock_only | 36 | 1/36 = 2.8% | 5.6% | 5.6% | 41.7% | 52.8% | -0.212 | 14.706 |\n| vol_only | 36 | 3/36 = 8.3% | 11.1% | 19.4% | 41.7% | 52.8% | -0.210 | 30.521 |\n\nAggregate:\n\n- `oriented_full_robust_all_null_rate`: 0.0%\n- `oriented_no_shock_robust_all_null_rate`: 0.0%\n- `drift_const_vol_robust_all_null_rate`: 0.0%\n- `shock_only_false_positive_rate`: 2.8%\n- `vol_only_false_positive_rate`: 8.3%\n- `delta_full_vs_vol_only`: -8.3%\n- `delta_full_vs_no_shock`: 0.0%\n- `delta_no_shock_vs_drift_const_vol`: 0.0%\n\nBest cases by iid z:\n\n- Best `oriented_full`: seed 6203, split 0.50, iid/block5/block21 z = 4.047 / -0.242 / -0.255. Not robust.\n- Best `oriented_no_shock`: seed 6203, split 0.50, z = 0.320 / 1.100 / -0.209. Not robust.\n- Best `drift_const_vol`: seed 6210, split 0.65, z = 9.718 / 5.508 / 1.861. Not robust because block21 rejects.\n- Strongest `shock_only` false positive: seed 6200, split 0.50, z = 14.706 / 15.942 / 8.632. Robust false positive.\n- Strongest `vol_only` false positive: seed 6205, split 0.35, z = 30.521 / 7.338 / 8.021. Robust false positive.\n\n## Key Findings\n\n1. The signed positive gate is too rigid. It reduced planted oriented recovery from 16.7% in the previous absolute-cluster cycle to 0.0% for both `oriented_full` and `oriented_no_shock`.\n\n2. The gate did not suppress the most important negative control. `vol_only` produced 3/36 robust all-null false positives = 8.3%, worse than the previous cycle's 5.6%.\n\n3. `shock_only` improved but did not disappear. It still produced 1/36 robust all-null false positives = 2.8%, slightly above the prior target of <=2.5%.\n\n4. Constant-vol drift no longer passes all nulls, but it still creates large iid/block5 clusters. Its best case reached iid/block5/block21 z = 9.718 / 5.508 / 1.861, showing that block21 remains necessary.\n\n5. VaR remains a stronger locator than the signed D-ND gate for the planted oriented variants. `oriented_full` VaR hit = 55.6% while signed iid cluster hit = 5.6%; `oriented_no_shock` VaR hit = 58.3% while signed iid cluster hit = 2.8%.\n\n## Verdict\n\n**NO_DELTA (signed-gate redesign rejected; calibration constraint promoted, not regime finding).**\n\nDo not promote the hard positive signed gate. It fails in both directions: it reduces robust planted oriented recovery to 0/36 = 0.0% for both `oriented_full` and `oriented_no_shock`, while still allowing `vol_only` robust false positives at 3/36 = 8.3%. The next detector should not be a binary sign gate on `mean_gap` and `vol_gap`; it needs a paired or residualized component score that compares orientation against matched vol-only/shock-only activation within the same seed/split family.\n\n## Bicono della scoperta\n\n- **Due radici**:\n  - Root 1: Sign matters; the previous absolute score was too permissive.\n  - Root 2: A hard sign gate is not enough; null-normalized volatility noise can still align with the positive quadrant.\n- **Singolare**: `vol_only` seed 6205 split 0.35 passes all nulls with iid/block5/block21 z = 30.521 / 7.338 / 8.021 while `oriented_full` recovers 0/36. This is the falsifier for the signed-gate repair.\n- **Invariante di passaggio**: Component controls remain the invariant. A candidate detector must be judged by oriented recovery minus matched negative-control activation, not by point or cluster z alone.\n- **Campo di possibilita'**: Next cycle should test a paired residual score: `oriented_score - matched_vol_only_score` or a conditional likelihood ratio over component controls, while preserving iid and block null families.\n\n## Files\n\n- Experiment script: `data/finance/experiments/signed_orientation_gate_20260516_1713.py`\n- Experiment output: `data/finance/experiments/signed_orientation_gate_20260516_1713.json`\n- Report: `data/finance/reports/agent_20260516_1713.md`\n- Seed updated: `data/finance/seed.json`\n","title":"Agent Report — Signed Orientation Gate Fails Component Calibration","verdict":"NO_DELTA (signed-gate redesign rejected; calibration constraint promoted, not regime finding).","bicono":{"roots":"- Root 1: Sign matters; the previous absolute score was too permissive.\n  - Root 2: A hard sign gate is not enough; null-normalized volatility noise can still align with the positive quadrant.","singular":"`vol_only` seed 6205 split 0.35 passes all nulls with iid/block5/block21 z = 30.521 / 7.338 / 8.021 while `oriented_full` recovers 0/36. This is the falsifier for the signed-gate repair.","invariant":"Component controls remain the invariant. A candidate detector must be judged by oriented recovery minus matched negative-control activation, not by point or cluster z alone.","field":"Next cycle should test a paired residual score: `oriented_score - matched_vol_only_score` or a conditional likelihood ratio over component controls, while preserving iid and block null families."},"size":6114,"mtime":"2026-05-16T17:18:43.237847+00:00"}