Skip to content

feat(executor): L1346 (c) second half — price_cache + eod_reconcile prefer universe.SPY#208

Merged
cipher813 merged 1 commit into
mainfrom
feat/l1346-c-second-half-routing-flips
May 25, 2026
Merged

feat(executor): L1346 (c) second half — price_cache + eod_reconcile prefer universe.SPY#208
cipher813 merged 1 commit into
mainfrom
feat/l1346-c-second-half-routing-flips

Conversation

@cipher813
Copy link
Copy Markdown
Owner

Summary

Complete L1346 (c) retirement of SPY-special-cases in executor:

Non-SPY macro symbols (VIX/TNX/IRX/sector ETFs) remain macro-routed (still Close-only).

Defensive fallback removable after L1346 (b)+(c) soak clean ≥1 Saturday cycle.

Test plan

  • Full executor suite 962 pass
  • Sat 5/30 + Mon 6/2 EOD reconcile: SPY closing price reads from universe (logs show universe-path, NOT fallback)

Composes with

🤖 Generated with Claude Code

…refer universe.SPY with macro fallback

Completes the L1346 (c) retirement of SPY-special-cases across the
executor. Pre-fix sites used `if ticker in _MACRO_SYMBOLS` to route
SPY reads to macro library (Close-only); post-L1346 #245 universe.SPY
now has full OHLCV via `_UNIVERSE_EXTRA`.

Implementation (mirrors alpha-engine-predictor #196 defensive shape):

- `executor/price_cache.py::load_price_histories` — gates on
  `_MACRO_SYMBOLS_NO_OHLCV = _MACRO_SYMBOLS - {"SPY"}`. SPY routes to
  universe first; on universe-read failure, defensive fallback to
  macro.SPY (clearly logged via dual-exception-class read_errors line).
- `executor/eod_reconcile.py` — same routing flip + defensive fallback.

Non-SPY macro symbols (VIX/TNX/IRX/sector ETFs) remain macro-routed
(still Close-only in macro library; no universe entry).

Defensive fallback can be removed once L1346 (b)+(c) soak clean for
≥1 Saturday cycle (operator-promoted soak; ~1-2 Saturdays out).

Test plan:
- Full executor suite 962 pass.
- Pre-existing alpha-engine #185 ATR exclusion site already updated
  to `_MACRO_SYMBOLS_NO_OHLCV` (PR #207).

Closes ROADMAP L1346 (c) second half. Combined with #207 (first half)
+ #196 (predictor (b) gate), the entire L1346 retirement arc is now
shipped except the operator soak-watch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@cipher813 cipher813 merged commit accecfc into main May 25, 2026
1 check passed
@cipher813 cipher813 deleted the feat/l1346-c-second-half-routing-flips branch May 25, 2026 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant