{"filename":"agent_20260517_1348.md","content":"# Agent Report - SPY Recurrence Limit\n**Date**: 2026-05-17 13:48 UTC\n**Piano**: 29\n**Tension explored**: `TRAJECTORY_APPLY_20260517_1338 / SPY_LOCALITY_RECURRENCE_EXACT_WINDOWS`\n\n## Claim Under Test\nAfter exact-date transfer rejected QQQ and all controls, the only surviving real-market signal was SPY on the current exact window. The claim under test is whether that SPY locality recurs across adjacent exact windows strongly enough to keep the transfer branch alive.\n\nThis is not a trading signal, forecast, alpha, buy/sell indication, or public finance claim.\n\n## Question\nDoes SPY preserve D-ND orientation across adjacent exact windows under iid, block5, and block21 nulls, or is the current-window pass a partial local artifact that collapses under recurrence?\n\n## Experiment Design\nTool used: `finance_recurrence_diagnostic.py`, which wraps `market_data` and the D-ND ordered-vs-shuffle detector, writes a machine-checkable JSON/Markdown artifact, preserves `data_card` provenance, and tests the same asset across adjacent exact windows.\n\nCommand:\n\n```bash\npython3 /opt/D-ND_LAB/domains/finance/tools/finance_recurrence_diagnostic.py \\\n  --symbol SPY --shuffles 4096 --json\n```\n\nAdditional policy check:\n\n```bash\npython3 /opt/D-ND_LAB/domains/finance/tools/finance_reference_audit.py --json\n```\n\nNull baseline: iid shuffle, block permutation 5, and block permutation 21. Naive baseline: static VaR 95% and annualized realized volatility for each window. Prior-art boundary: Hamilton/HMM/Bai-Perron/RV frameworks can describe latent states, breaks, or volatility; this diagnostic tests only whether D-ND orientation survives ordered-vs-null recurrence.\n\n## Results\nMachine artifact: `data/finance/diagnostics/finance_recurrence_diagnostic_20260517_134619.json`\n\nRecurrence class: `current_iid_partial`. Boundary flags: `operational=false`, `public_claim=false`, `trading_signal=false`.\n\n| Window | Actual dates | n | iid | z_iid | block5 | z_b5 | block21 | z_b21 | robust all nulls | RV | VaR95 |\n|---|---|---:|---|---:|---|---:|---|---:|---|---:|---:|\n| current | 2026-02-09..2026-05-08 | 62 | `DND_DELTA` | 3.428 | `DND_DELTA` | 3.321 | `NO_DELTA` | 1.613 | false | 0.1474 | -0.01526 |\n| prev_1 | 2025-11-10..2026-02-09 | 61 | `NO_DELTA` | -0.671 | `NO_DELTA` | -0.727 | `NO_DELTA` | -0.666 | false | 0.1171 | -0.01257 |\n| prev_2 | 2025-08-11..2025-11-10 | 64 | `NO_DELTA` | -0.679 | `NO_DELTA` | -0.684 | `NO_DELTA` | -0.772 | false | 0.1111 | -0.01028 |\n| prev_3 | 2025-05-12..2025-08-11 | 62 | `NO_DELTA` | -0.597 | `NO_DELTA` | -0.557 | `NO_DELTA` | -0.584 | false | 0.1056 | -0.00853 |\n\nProvenance:\n\n- `current`: `yfinance://Ticker(SPY).history(start=2026-02-09, end=2026-05-09, interval=1d)`; retrieved `2026-05-17T13:22:01.127319+00:00`; era `2026Q1-Q2`; n_obs 63.\n- `prev_1`: `yfinance://Ticker(SPY).history(start=2025-11-10, end=2026-02-10, interval=1d)`; retrieved `2026-05-17T13:22:01.384087+00:00`; era `2025-2026`; n_obs 62.\n- `prev_2`: `yfinance://Ticker(SPY).history(start=2025-08-11, end=2025-11-11, interval=1d)`; retrieved `2026-05-17T13:22:01.648225+00:00`; era `2025Q3-Q4`; n_obs 65.\n- `prev_3`: `yfinance://Ticker(SPY).history(start=2025-05-12, end=2025-08-12, interval=1d)`; retrieved `2026-05-17T13:22:01.911198+00:00`; era `2025Q2-Q3`; n_obs 63.\n\nReference audit result: `reference_ready=true`, `latest_diagnostic.kind=recurrence_diagnostic`, `latest_diagnostic.classification.label=current_iid_partial`, `latest_diagnostic.boundary.operational=false`, `latest_diagnostic.boundary.public_claim=false`, `latest_diagnostic.boundary.trading_signal=false`.\n\nAssertions:\n\n| ID | Status | Detail |\n|---|---|---|\n| `REC_01` | PASS | The current SPY window reproduces iid and block5 DND_DELTA: z_iid 3.428, z_block5 3.321. |\n| `REC_02` | FAIL_FOR_ROBUSTNESS | The same current window fails block21: z_block21 1.613, `robust_all_nulls=false`. |\n| `REC_03` | FAIL_FOR_RECURRENCE | All three adjacent prior windows reject under iid, block5, and block21. |\n| `REC_04` | PASS_FOR_BASELINE_VISIBILITY | VaR/RV are explicit for every window; RV rises from prior windows to current, but D-ND promotion is still blocked by block21 and non-recurrence. |\n| `REC_05` | FAIL_FOR_OPERATIONAL | No window is robust across all nulls and no independent transfer remains; public claim and trading signal remain false. |\n\n## Key Findings\n1. SPY locality is real only in the narrow iid/block5 sense on the current exact window. It is not robust under block21.\n\n2. The recurrence test rejects the branch: adjacent SPY windows do not reproduce the current pass even under iid. This blocks both recurrence and transfer promotion.\n\n3. The current-window pass coincides with higher realized volatility than the three prior windows, but RV is not sufficient evidence of regime. The D-ND contract requires ordered-vs-null separation, and block21 removes it.\n\n4. The reference audit still reports `next_direction=SPY_LOCALITY_RECURRENCE_EXACT_WINDOWS` because trajectory application had just consumed the prior cycle. After this diagnostic, that direction is completed and should not be relaunched without a new object or mechanism.\n\n## Verdict\n**SPY_LOCALITY_RECURRENCE_REJECTED, NON_OPERATIONAL.** The surviving SPY observation is classified as `current_iid_partial`: useful for documenting the detector's locality limit, not for market evidence, public copy, kernel promotion, or exposure decisions. The next finance move should crystallize the limitation or design a materially new object; it should not repeat transfer/recurrence on the same SPY current-window premise.\n\n## Bicono della scoperta\n- **Due radici**:\n  - Root 1: current SPY has ordered-vs-shuffle separation under iid and block5.\n  - Root 2: block21 and three adjacent windows reject, so the apparent local orientation does not become recurrence.\n- **Singolare**: The singular point is the 21-day block null: it turns a visible local SPY pass into a non-promotable partial observation.\n- **Invariante di passaggio**: A real-market finance branch cannot advance from a single current-window iid/block5 pass; it needs block-preserving robustness and recurrence/transfer with exact provenance.\n- **Campo di possibilita'**: The live object is no longer \"SPY transfer candidate\" but \"detector locality limit.\" Future work must either crystallize that limit in docs/UI or predeclare a new measurable mechanism before any new experiment.\n\n## Files\n- Report: `data/finance/reports/agent_20260517_1348.md`\n- Diagnostic JSON: `data/finance/diagnostics/finance_recurrence_diagnostic_20260517_134619.json`\n- Diagnostic Markdown: `data/finance/diagnostics/finance_recurrence_diagnostic_20260517_134619.md`\n- Reference audit command: `domains/finance/tools/finance_reference_audit.py --json`\n- Seed updated: `data/finance/seed.json`\n","title":"Agent Report - SPY Recurrence Limit","verdict":"SPY_LOCALITY_RECURRENCE_REJECTED, NON_OPERATIONAL.** The surviving SPY observation is classified as `current_iid_partial`: useful for documenting the detector's locality limit, not for market evidence","bicono":{"roots":"- Root 1: current SPY has ordered-vs-shuffle separation under iid and block5.\n  - Root 2: block21 and three adjacent windows reject, so the apparent local orientation does not become recurrence.","singular":"The singular point is the 21-day block null: it turns a visible local SPY pass into a non-promotable partial observation.","invariant":"A real-market finance branch cannot advance from a single current-window iid/block5 pass; it needs block-preserving robustness and recurrence/transfer with exact provenance.","field":"The live object is no longer \"SPY transfer candidate\" but \"detector locality limit.\" Future work must either crystallize that limit in docs/UI or predeclare a new measurable mechanism before any new experiment."},"size":6784,"mtime":"2026-05-17T13:50:35.168856+00:00"}