docs: record CORE-002 completion
This commit is contained in:
@@ -12,10 +12,7 @@ notes:
|
|||||||
- Priority ordering is maintained here so agents can parse one short file first.
|
- Priority ordering is maintained here so agents can parse one short file first.
|
||||||
priority_queue:
|
priority_queue:
|
||||||
- CORE-001D
|
- CORE-001D
|
||||||
- CORE-002C
|
|
||||||
- BT-003B
|
- BT-003B
|
||||||
- BT-003B
|
|
||||||
- CORE-002
|
|
||||||
- PORT-003
|
- PORT-003
|
||||||
- BT-002
|
- BT-002
|
||||||
- BT-001C
|
- BT-001C
|
||||||
@@ -26,12 +23,12 @@ priority_queue:
|
|||||||
- OPS-001
|
- OPS-001
|
||||||
- BT-003
|
- BT-003
|
||||||
recently_completed:
|
recently_completed:
|
||||||
|
- CORE-002
|
||||||
|
- CORE-002C
|
||||||
- CORE-001D2B
|
- CORE-001D2B
|
||||||
- CORE-001D2A
|
- CORE-001D2A
|
||||||
- CORE-002B
|
- CORE-002B
|
||||||
- CORE-002A
|
- CORE-002A
|
||||||
- CORE-001D1
|
|
||||||
- SEC-001
|
|
||||||
states:
|
states:
|
||||||
backlog:
|
backlog:
|
||||||
- DATA-002A
|
- DATA-002A
|
||||||
@@ -45,8 +42,6 @@ states:
|
|||||||
- BT-003B
|
- BT-003B
|
||||||
- BT-001C
|
- BT-001C
|
||||||
- CORE-001D
|
- CORE-001D
|
||||||
- CORE-002
|
|
||||||
- CORE-002C
|
|
||||||
in_progress: []
|
in_progress: []
|
||||||
done:
|
done:
|
||||||
- DATA-001
|
- DATA-001
|
||||||
@@ -67,7 +62,9 @@ states:
|
|||||||
- CORE-001C
|
- CORE-001C
|
||||||
- CORE-001D2A
|
- CORE-001D2A
|
||||||
- CORE-001D2B
|
- CORE-001D2B
|
||||||
|
- CORE-002
|
||||||
- CORE-002A
|
- CORE-002A
|
||||||
- CORE-002B
|
- CORE-002B
|
||||||
|
- CORE-002C
|
||||||
blocked: []
|
blocked: []
|
||||||
cancelled: []
|
cancelled: []
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
id: CORE-002
|
|
||||||
title: Instrument-Aware Quote Units and Conversion Multipliers
|
|
||||||
status: backlog
|
|
||||||
priority: P0
|
|
||||||
effort: M
|
|
||||||
depends_on:
|
|
||||||
- CORE-001A
|
|
||||||
- CORE-001B
|
|
||||||
- CORE-001C
|
|
||||||
tags: [core, units, pricing, domain]
|
|
||||||
summary: >
|
|
||||||
Complete the instrument-aware quote-unit rollout so quoted instruments like GLD are
|
|
||||||
handled explicitly as USD/share and only converted to ounce-equivalent values through
|
|
||||||
named metadata-backed seams.
|
|
||||||
acceptance_criteria:
|
|
||||||
- GLD quotes are modeled explicitly as prices per share, not as ambiguous gold-ounce prices.
|
|
||||||
- Instrument metadata encodes that 1 GLD share represents 0.1 troy ounces of gold exposure.
|
|
||||||
- Storage/domain value classes know the unit relationship and convert correctly when calculations combine instrument prices with ounce-based quantities.
|
|
||||||
- Cross-unit operations fail closed when no explicit instrument conversion path exists.
|
|
||||||
- Visible ounce-based pages beyond overview use the explicit conversion seam instead of heuristic fallbacks.
|
|
||||||
- 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.
|
|
||||||
- `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.
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
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`.
|
|
||||||
20
docs/roadmap/done/CORE-002-instrument-aware-quote-units.yaml
Normal file
20
docs/roadmap/done/CORE-002-instrument-aware-quote-units.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
id: CORE-002
|
||||||
|
title: Instrument-Aware Quote Units and Conversion Multipliers
|
||||||
|
status: done
|
||||||
|
priority: P0
|
||||||
|
effort: M
|
||||||
|
depends_on:
|
||||||
|
- CORE-001A
|
||||||
|
- CORE-001B
|
||||||
|
- CORE-001C
|
||||||
|
tags:
|
||||||
|
- core
|
||||||
|
- units
|
||||||
|
- pricing
|
||||||
|
- domain
|
||||||
|
summary: Instrument-aware quote-unit semantics are now rolled out across overview, hedge/runtime, and historical workspace-derived paths.
|
||||||
|
completed_notes:
|
||||||
|
- `CORE-002A`: overview now treats GLD quotes as USD/share and converts through explicit instrument metadata.
|
||||||
|
- `CORE-002B`: hedge/runtime now recomputes live collateral metrics from converted quote-unit semantics.
|
||||||
|
- `CORE-002C`: historical/backtest/event workspace defaults now convert stored collateral weight into GLD share units explicitly.
|
||||||
|
- Unsupported or missing conversion metadata fails closed instead of being guessed.
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
id: CORE-002C
|
||||||
|
title: Historical Workspace Collateral to GLD Share Conversion Alignment
|
||||||
|
status: done
|
||||||
|
priority: P1
|
||||||
|
effort: M
|
||||||
|
depends_on:
|
||||||
|
- CORE-002A
|
||||||
|
- CORE-001C
|
||||||
|
tags:
|
||||||
|
- core
|
||||||
|
- units
|
||||||
|
- backtesting
|
||||||
|
- event-comparison
|
||||||
|
summary: Historical workspace defaults now convert persisted collateral weight into GLD share units through instrument metadata instead of dividing raw USD notional by historical entry spot.
|
||||||
|
completed_notes:
|
||||||
|
- Added `asset_quantity_from_workspace_config(...)` in `app/domain/backtesting_math.py`.
|
||||||
|
- Backtests and event comparison workspace defaults now seed GLD historical units from stored collateral weight via the instrument metadata seam.
|
||||||
|
- Added regressions for workspace-seeded historical defaults and route-level browser checks.
|
||||||
|
- Follow-up UX hardening now explains undercollateralized historical starts with user-facing validation instead of raw internal model errors.
|
||||||
Reference in New Issue
Block a user