diff --git a/docs/roadmap/ROADMAP.yaml b/docs/roadmap/ROADMAP.yaml index 4b2fac3..ebb4cd0 100644 --- a/docs/roadmap/ROADMAP.yaml +++ b/docs/roadmap/ROADMAP.yaml @@ -11,8 +11,8 @@ notes: - One task lives in one YAML file and changes state by moving between status folders. - Priority ordering is maintained here so agents can parse one short file first. priority_queue: - - CORE-002B - CORE-001D + - CORE-002C - BT-003B - CORE-002 - PORT-003 @@ -25,12 +25,12 @@ priority_queue: - OPS-001 - BT-003 recently_completed: + - CORE-002B - CORE-002A - CORE-001D1 - SEC-001 - SEC-001A - CORE-001A - - CORE-001B states: backlog: - DATA-002A @@ -45,7 +45,7 @@ states: - BT-001C - CORE-001D - CORE-002 - - CORE-002B + - CORE-002C in_progress: [] done: - DATA-001 @@ -65,5 +65,6 @@ states: - CORE-001B - CORE-001C - CORE-002A + - CORE-002B blocked: [] cancelled: [] diff --git a/docs/roadmap/backlog/CORE-002-instrument-aware-quote-units.yaml b/docs/roadmap/backlog/CORE-002-instrument-aware-quote-units.yaml index f15a721..8f4cb9d 100644 --- a/docs/roadmap/backlog/CORE-002-instrument-aware-quote-units.yaml +++ b/docs/roadmap/backlog/CORE-002-instrument-aware-quote-units.yaml @@ -21,7 +21,8 @@ acceptance_criteria: - Tests cover GLD share <-> troy-ounce conversion and reject unsupported mixed-unit operations. technical_notes: - `CORE-002A` is complete: overview now uses explicit GLD share -> USD/ozt conversion with quote-unit metadata and cache normalization. - - Next suggested slice is `CORE-002B`: apply the same explicit quote-unit model to the next visible ounce-based path, especially hedge/runtime portfolio displays that still assume ounce-native spots. + - `CORE-002B` is complete: hedge/runtime displays now use the explicit converted collateral spot seam and recompute runtime snapshots from that spot. + - Remaining suggested slice is `CORE-002C`: historical/workspace collateral conversion alignment for backtests/event-style GLD share defaults. - Prefer explicit instrument/unit types over ad hoc scale factors in page/service code. - This should integrate with the Decimal/unit-safe domain model rather than bypass it with raw floats. - Consider extending historical/unit types so both live overview paths and backtesting/event paths can share the same conversion rules. diff --git a/docs/roadmap/backlog/CORE-002C-historical-workspace-share-conversion.yaml b/docs/roadmap/backlog/CORE-002C-historical-workspace-share-conversion.yaml new file mode 100644 index 0000000..05d8258 --- /dev/null +++ b/docs/roadmap/backlog/CORE-002C-historical-workspace-share-conversion.yaml @@ -0,0 +1,22 @@ +id: CORE-002C +title: Historical Workspace Collateral to GLD Share Conversion Alignment +status: backlog +priority: P1 +effort: M +depends_on: + - CORE-002A + - CORE-001C +tags: + - core + - units + - backtesting + - event-comparison +summary: Align workspace-derived collateral defaults with explicit GLD share semantics in historical/backtest-style paths so workspace collateral is converted through named metadata rather than ad hoc share assumptions. +acceptance_criteria: + - Backtest/event-style workspace seeding uses explicit metadata-backed collateral/share conversion rules. + - Historical/unit materialization remains compatible while avoiding ambiguous share-vs-ounce assumptions. + - Unsupported or missing conversion metadata fails closed. + - Tests cover workspace-derived default seeding and changed browser-visible read paths where relevant. +technical_notes: + - Likely file targets include `app/domain/backtesting_math.py`, `app/services/backtesting/ui_service.py`, `app/services/backtesting/comparison.py`, and `app/services/event_comparison_ui.py`. + - Reuse the instrument metadata seam introduced in `CORE-002A`/`CORE-002B`. diff --git a/docs/roadmap/done/CORE-002B-hedge-quote-unit-rollout.yaml b/docs/roadmap/done/CORE-002B-hedge-quote-unit-rollout.yaml new file mode 100644 index 0000000..12d142e --- /dev/null +++ b/docs/roadmap/done/CORE-002B-hedge-quote-unit-rollout.yaml @@ -0,0 +1,21 @@ +id: CORE-002B +title: Hedge and Strategy Runtime Quote Unit Rollout +status: done +priority: P0 +effort: M +depends_on: + - CORE-002A + - CORE-001B +tags: + - core + - units + - hedge + - pricing +summary: Hedge/runtime displays now use the explicit instrument-aware GLD share->USD/ozt conversion seam. +completed_notes: + - Hedge page now resolves a live converted collateral spot through the shared quote-unit seam. + - Runtime hedge snapshots now recompute `gold_value`, `net_equity`, and related metrics from the converted spot instead of overwriting spot text only. + - Cached legacy GLD quotes continue to work through the existing quote normalization seam. + - Hedge UI text now distinguishes converted collateral spot from configured entry-price fallback. + - Added focused tests for quote resolution, runtime snapshot correctness, workspace seam behavior, and browser-visible hedge behavior. + - Validated with focused pytest coverage, `make build`, and live Playwright on `main`.