From aa85ffd3a3b22f21aeaf8510d8512b7fa34bd724 Mon Sep 17 00:00:00 2001 From: Jeroen Grusewski Date: Tue, 21 Jul 2026 00:56:15 +0000 Subject: [PATCH] docs(vrp): mark VRP removal complete + record outstanding CronJob deploy action Co-Authored-By: Claude Opus 4.8 --- docs/superpowers/VRP-REMOVAL-TODO.md | 47 +++++++++++++--------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/docs/superpowers/VRP-REMOVAL-TODO.md b/docs/superpowers/VRP-REMOVAL-TODO.md index 5ce89e6..f09c091 100644 --- a/docs/superpowers/VRP-REMOVAL-TODO.md +++ b/docs/superpowers/VRP-REMOVAL-TODO.md @@ -1,30 +1,27 @@ -# VRP full removal — TODO (fresh session, subagent-driven + review) +# VRP full removal — DONE (2026-07-20/21) -**Decision (2026-07-20):** remove the VRP code entirely (revival not planned); KEEP the 13yr OPRA data -(`xsp_option_bars` table + OPRA .dbn) — it's expensive, separable, and not in the way. +**Status: COMPLETE.** VRP code fully removed on branch `chore/remove-vrp-code` (9 commits over base a263b67), +full suite green (2018 passed, 2 skipped), whole-branch review clean (no Critical/Important). OPRA data KEPT. -**Why a fresh session:** the removal is cross-cutting (~7 modules + 11 test files + orchestration/CLI/ -persistence/vendor/registry refs + the `vrp_nav` Dagster asset). Too big to do safely at low context; a -half-done removal risks broken imports in the nightly pipeline. Do it subagent-driven with review, like the -positioning-cap work. +## What was removed +- 7 VRP application modules (`vrp_book/eval/defined_risk_eval/exec_record/marking/pricing/research`) + `black_scholes.py` +- The DVOL pipeline (`deribit_dvol.py`, `dvol_ingest.py`, the `VolIndexClient` port) — DVOL was the IV leg of VRP +- The `vrp_nav` Dagster asset + its ~14 OPRA-freeze/backfill helper chain +- The `XspOptionBarsRepo` **class** + the `_build_vrp` migration builder + the `backfill-xsp-opra`/`ingest-dvol`/ + `execute-vrp`/`vrp-eval`/`vrp-defined-risk-eval` CLI commands + the `fxhnt-opra-backfill` CronJob manifest +- The `vrp`/`vrp_exec` registry entries + `_REF_ALIAS`/`_IBKR_ACCOUNT_SIDS`/`SIM_BOOKS` literals +- 13 VRP test files; comment/docstring scrubs across 16 files; test updates (assert vrp-ABSENT / synthetic entries) -**The coupling that made a shim-free registry-removal impossible (must be resolved by removing the code):** -- `vrp_exec_record.py` reads `STRATEGY_REGISTRY["vrp"].definition.params.ladder` (line ~225) and - `run_track("vrp_exec")` needs the `vrp_exec` definition. Once the code is gone, nothing reads the registry - entries, so `"vrp"`/`"vrp_exec"` come out cleanly. +## What was KEPT (Constraint 1 — verified intact) +- `xsp_option_bars` **table** + `XspOptionBarRow` model (`cockpit_models.py:436`) + the 13-year OPRA `.dbn` data +- `ForwardNavRepo.xsp_freeze_max_date()` (`forward_nav.py:145`) — still reads the kept table +- The generic freeze-staleness health axis (`_FREEZE_SOURCES = {"opra-pit"}`) stays +- `deribit_funding` (carry edge) untouched -**Files to DELETE:** `src/fxhnt/application/vrp_book.py, vrp_eval.py, vrp_exec_record.py, vrp_marking.py, -vrp_pricing.py, vrp_defined_risk_eval.py`; tests `tests/**/*vrp*.py` (11 files); the `vrp_nav` asset. +## Outstanding — a DEPLOY action (not code) +The `fxhnt-opra-backfill` CronJob **manifest** is removed from git, but if it exists as a live resource on the +bizworx Kapsule it must be deleted by hand: `kubectl delete cronjob fxhnt-opra-backfill` (ns foxhunt). The git +removal does not stop a running cluster resource. -**Refs to CLEAN (grep `vrp` in each):** `registry.py` (del `vrp`+`vrp_exec` entries), `cli.py` (vrp commands), -`adapters/orchestration/assets.py` + `migration_builders.py` (`vrp_nav`), `dashboard_service.py` -(`_IBKR_ACCOUNT_SIDS` drop "vrp"), `sim_curves.py` (`SIM_BOOKS`), `forward_ingest.py` (`_REF_ALIAS`), -`adapters/persistence/xsp_option_bars.py` (KEEP the table/repo — it's the OPRA data store — but drop any -vrp-strategy coupling), `vendor/surfer/__init__.py` (check if vrp import). - -**KEEP:** `xsp_option_bars` table + repo (13yr OPRA data), the OPRA .dbn archive. - -**Also fixes:** the false VRP `STALE` health alarm disappears for free (no registry entry -> health-loop -doesn't iterate it). No `forward_health.py` change needed once the entry is gone. - -**Cockpit already excludes VRP** (archived:True filter) — so the UI is already clean; this is code hygiene. +## Not-yet-merged +Branch `chore/remove-vrp-code` — awaiting the operator's merge decision.