2eee44d19b
- VS-08_DASHBOARD_SLICE_SPEC.md: Comprehensive dashboard specification - VS-08_DATA_CONTRACT.md: PIT aggregation schema + caching strategy - VS08_DashboardPolicy.cs: Aggregation logic (health score, insights, validation) - VS08_DashboardEndpoint.cs: GET /api/dashboard/risk + cache layer - RiskDashboard.vue: Unified portfolio view with real-time metrics - VS08_DashboardIntegrationTests.cs: 5 core policy tests Status: GOV+DATA+DOMAIN+BE+ASYNC+FE complete (5/7 vertical slices) TESTOPS: In progress (test suite has minor compatibility issues with VS-04/07) Cumulative: Phase 2 Batch 3 + Phase 3 = 27/36 components (75% COMPLETE) Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
145 lines
5.4 KiB
Markdown
145 lines
5.4 KiB
Markdown
# Phase 2 Batch 3-4: Risk & Portfolio Domain (VS-04~08)
|
|
|
|
## 📋 Overview
|
|
|
|
**Domain:** Portfolio composition, risk metrics, stress testing, alerts, dashboard
|
|
**Pattern:** Vertical Slice (GOV → DATA → DOMAIN → BE → ASYNC → FE → TESTOPS)
|
|
**Strategy:** AGENTS.md v16.0 WBS Optimization — execute all non-blocking tasks immediately
|
|
|
|
---
|
|
|
|
## 🏗️ Component Structure
|
|
|
|
| VS | Name | Purpose | Data Model | Endpoint | Event |
|
|
|----|------|---------|------------|----------|-------|
|
|
| **VS-04** | Portfolio Composition | Aggregate positions & risk weights | `portfolios.*` (PIT) | POST /api/portfolio/rebalance | PortfolioRebalanced |
|
|
| **VS-05** | Risk Metrics | VAR, Sharpe, Sortino calculations | `risk_metrics.*` (PIT) | GET /api/portfolio/{id}/risk | RiskMetricsCalculated |
|
|
| **VS-06** | Stress Testing | Scenario analysis (bull/bear/rate-shock) | `stress_tests.*` (append-only) | POST /api/portfolio/{id}/stress | StressTestCompleted |
|
|
| **VS-07** | Risk Alerts | Threshold breach + escalation | `risk_alerts.*` (soft-delete) | GET /api/portfolio/{id}/alerts | RiskAlertTriggered |
|
|
| **VS-08** | Risk Dashboard | Real-time risk aggregation + UI | `risk_dashboard_agg` (denorm) | GET /api/dashboard/risk | (read-only) |
|
|
|
|
---
|
|
|
|
## 🔗 Dependencies & Parallelization
|
|
|
|
```
|
|
VS-04 (Portfolio Composition)
|
|
↓
|
|
VS-05 (Risk Metrics) ← requires portfolio data
|
|
↓
|
|
VS-06 (Stress Testing) ← requires risk metrics
|
|
↓
|
|
VS-07 (Risk Alerts) ← requires stress results
|
|
↓
|
|
VS-08 (Risk Dashboard) ← aggregates all above
|
|
```
|
|
|
|
**Parallelizable:**
|
|
- Each VS can be GOV+DATA defined in parallel (9 docs in parallel)
|
|
- DOMAIN logic for VS-04 & VS-05 in parallel (once specs done)
|
|
- BE endpoints for all VS in parallel (once DOMAIN ready)
|
|
|
|
**Critical Path:**
|
|
- VS-04 DATA must complete before VS-05 DOMAIN
|
|
- VS-05 DOMAIN must complete before VS-06 BE
|
|
- Total: Sequential on hot path, but 40% parallelization possible
|
|
|
|
---
|
|
|
|
## 📅 WBS Schedule (Optimized)
|
|
|
|
**Day 1 (Today): GOV + DATA (All 5 VS)**
|
|
- VS-04: `VS04_PORTFOLIO_SLICE_SPEC.md` + `VS04_DATA_CONTRACT.md`
|
|
- VS-05: `VS05_RISK_METRICS_SLICE_SPEC.md` + `VS05_DATA_CONTRACT.md`
|
|
- VS-06: `VS06_STRESS_TESTING_SLICE_SPEC.md` + `VS06_DATA_CONTRACT.md`
|
|
- VS-07: `VS07_RISK_ALERTS_SLICE_SPEC.md` + `VS07_DATA_CONTRACT.md`
|
|
- VS-08: `VS08_RISK_DASHBOARD_SLICE_SPEC.md` + (no separate data schema)
|
|
- **Deliverable:** 9 spec documents, schema validation complete
|
|
|
|
**Day 2: DOMAIN (VS-04, 05, 06, 07)**
|
|
- VS-04: Portfolio aggregation logic (12 tests)
|
|
- VS-05: Risk calculation logic (15 tests)
|
|
- VS-06: Scenario application logic (10 tests)
|
|
- VS-07: Alert threshold evaluation (8 tests)
|
|
- **Parallel:** All 4 can run in parallel after specs
|
|
- **Deliverable:** 45 unit tests, 4/4 domains PASS
|
|
|
|
**Day 3: BE + ASYNC (All 5 VS)**
|
|
- VS-04: Rebalance endpoint + Hangfire job
|
|
- VS-05: Risk metrics fetch endpoint + background calculator
|
|
- VS-06: Stress test trigger + async batch processing
|
|
- VS-07: Alert query endpoint + event publisher
|
|
- VS-08: Aggregation endpoint (read-only)
|
|
- **Deliverable:** 5 endpoints, 5 async jobs, 20 tests
|
|
|
|
**Day 4: FE + TESTOPS (Batch 3)**
|
|
- VS-04: Rebalance form + confirmation dialog
|
|
- VS-05: Risk metrics display + trend charts
|
|
- VS-06: Scenario builder UI + results visualization
|
|
- VS-07: Alert list + drill-down view
|
|
- VS-08: Risk dashboard (aggregate KPIs + real-time updates)
|
|
- **Deliverable:** 5 FE components, 12+ E2E tests
|
|
|
|
---
|
|
|
|
## 🎯 Acceptance Criteria (AGENTS.md v16.0)
|
|
|
|
**Per VS:**
|
|
- ✅ Contract-first: Specs + schema before code
|
|
- ✅ SOLID: No cross-cutting concerns, single responsibility
|
|
- ✅ Complexity: Cyclomatic complexity ≤ 10 (Policy exceptions)
|
|
- ✅ Idempotency: All jobs + scenarios replay-safe
|
|
- ✅ Audit: Correlation IDs, event published, PIT versioned
|
|
- ✅ Safety: Transaction boundaries, soft-deletes, no partial success
|
|
- ✅ Testing: Unit → Integration → Data → E2E coverage
|
|
- ✅ Traceability: ADR links, evidence preserved
|
|
|
|
**Cross-VS:**
|
|
- ✅ No SELECT * or direct module-to-module queries
|
|
- ✅ Async coupling via Outbox/Inbox (no direct function calls)
|
|
- ✅ Tech debt registered (if any deferral)
|
|
- ✅ Architecture tests pass
|
|
- ✅ All prior tests still pass (no regressions)
|
|
|
|
---
|
|
|
|
## 📊 Success Metrics
|
|
|
|
| Metric | Target | Checkpoint |
|
|
|--------|--------|------------|
|
|
| Test Pass Rate | 100% | End of each day |
|
|
| Architecture Violations | 0 | Before commit |
|
|
| Tech Debt Registered | 100% | In PR description |
|
|
| Code Review Comments | <5 | Per PR |
|
|
| Build Time | <5s | Continuous |
|
|
|
|
---
|
|
|
|
## 🚀 Execution Plan (This Session)
|
|
|
|
**Phase 2 Batch 3 Start (VS-04~07):**
|
|
|
|
1. ✅ Confirm domain scope (Risk & Portfolio) — **DONE**
|
|
2. ⏳ GOV + DATA (9 docs, parallel) — **START NOW**
|
|
3. ⏳ DOMAIN (4 VS, parallel) — **Follow after specs**
|
|
4. ⏳ BE + ASYNC (5 endpoints, parallel) — **Follow after domain**
|
|
5. ⏳ FE + TESTOPS (5 components, Batch 3) — **Follow after BE**
|
|
|
|
**Phase 2 Batch 4 (VS-08):**
|
|
6. ⏳ Risk Dashboard (depends on all others)
|
|
7. ⏳ Final integration testing
|
|
|
|
---
|
|
|
|
## 📝 Notes
|
|
|
|
- **SSH Tunnel:** Required for any DB-backed integration tests. Keep open during dev.
|
|
- **Parallel Execution:** GOV+DATA can be written concurrently; post in 5 separate docs
|
|
- **Debt Threshold:** Keep new debt <20 impact points per batch (manage quarterly paydown)
|
|
- **Git Strategy:** One commit per component (GOV+DATA) or (DOMAIN) or (BE+ASYNC), then squash if needed
|
|
|
|
---
|
|
|
|
**Status:** READY TO START
|
|
**Next Command:** Begin VS-04 GOV specification
|