docs: resolve VS-03/04/12/14 numbering collision (renumber to VS-26/27/28/29)

Renumbers the four 2026-08-07 slices (ApprovalWorkflow, AuditTrail,
TradeExecution, PortfolioReconciliation) to previously-unused VS-26..29,
leaving WBS_MASTER.csv's original VS-03/04/12/14 definitions (IngestMarketDataPIT,
ApplyCorporateActions, RankBuyCandidates, GenerateDailyRecommendations) untouched,
per docs/DECISIONS/ADR-WBS-001-slice-renumbering.md.

While investigating, found two things not yet resolved by this commit:
- DEBT-017 (duplicate ApprovalWorkflow implementation): the tested backend
  (ApprovalWorkflow/) is [DontRegister]'d dead code; the live one
  (Features/ApprovalWorkflow/, wired in Program.cs) has no dedicated tests.
  AEG-VS-26-01 downgraded from COMPLETED to BLOCKED in the tracker pending an
  architect decision on which implementation is canonical.
- Features/MarketData and Features/Portfolio (VS-03/04/05/08 Market Data
  Ingestion Dashboard, Portfolio Rebalance, Risk Metrics, Dashboard) are a
  third, already-implemented-and-tested body of work entirely absent from
  WBS_PROGRESS_TRACKER.csv. Flagged in CURRENT_ROADMAP.md as a follow-up.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-08 12:36:00 +09:00
parent 53be11673c
commit cedc8d79ee
10 changed files with 159 additions and 61 deletions
@@ -1,11 +1,11 @@
# VS-03: Model Approval Workflow
# VS-26: Model Approval Workflow
## Overview
This vertical slice implements a maker-checker approval workflow for model activation. It enforces separation of duties, state machine transitions, and evidence linkage for regulatory compliance.
**Status:** ✅ Ready for implementation
**Specification:** `docs/CURRENT/SLICE_SPECS/VS-03-SLICE_SPEC.md`
**Specification:** `docs/CURRENT/SLICE_SPECS/VS-26-SLICE_SPEC.md`
---
@@ -183,7 +183,7 @@ published_at, correlation_id
- **VS-00:** PIT envelope (published_at, correlation_id, revision)
- **VS-02:** Financial security master (governance foundation)
- **VS-04:** Audit trail (logs all approval events)
- **VS-27:** Audit trail (logs all approval events)
- **VS-10:** Sell decision (uses approved models)
---
@@ -198,7 +198,7 @@ published_at, correlation_id
6. ✅ FastEndpoints (ApprovalEndpoints.cs)
7. ✅ Unit/Integration tests
8. ⏳ Merge to main (awaiting PR review)
9. ⏳ Integration with VS-04 (audit trail subscribers)
9. ⏳ Integration with VS-27 (audit trail subscribers)
10. ⏳ Phase 2 implementation (after Phase 1 data available)
---
@@ -1,10 +1,10 @@
# VS-12: Trade Execution System (KIS Integration)
# VS-28: Trade Execution System (KIS Integration)
## Overview
VS-12 implements automated trade execution through Korea Investment & Securities (KIS) API. This vertical slice handles order submission, status polling, settlement confirmation, and reconciliation for approved sell decisions.
VS-28 implements automated trade execution through Korea Investment & Securities (KIS) API. This vertical slice handles order submission, status polling, settlement confirmation, and reconciliation for approved sell decisions.
**Depends On:** VS-10 (sell decisions) → VS-03 (approval) → VS-12 (execution) → VS-14 (reconciliation)
**Depends On:** VS-10 (sell decisions) → VS-26 (approval) → VS-28 (execution) → VS-29 (reconciliation)
## Architecture
@@ -21,7 +21,7 @@ PARTIAL_FILLED / FULLY_FILLED (execution progress)
CONFIRMED (settlement confirmed)
RECONCILED (cost basis updated by VS-14)
RECONCILED (cost basis updated by VS-29)
```
### Components
@@ -158,12 +158,12 @@ CREATE TABLE model_operations.trade_status_history (
### Incoming
- **VS-10 (Sell Decision):** Creates TradeSubmitted event → triggers SubmitTradeHandler
- **VS-03 (Approval):** Approval pre-requisite checked before trade submission
- **VS-26 (Approval):** Approval pre-requisite checked before trade submission
### Outgoing
- **TradeSubmittedEvent:** KIS order ID, quantity, sell decision ID
- **TradeFilledEvent:** Executed quantity, unit price, trade ID
- **TradeSettledEvent:** Net proceeds, trade ID → consumed by VS-14
- **TradeSettledEvent:** Net proceeds, trade ID → consumed by VS-29
### External (KIS API)
- **Order submission:** POST /v1/orders
@@ -182,10 +182,10 @@ CREATE TABLE model_operations.trade_status_history (
### Audit Trail
- ✅ INSERT-only trades & trade_status_history tables
- ✅ All state transitions logged with timestamps
- ✅ VS-04 audit trail integration
- ✅ VS-27 audit trail integration
### RBAC
- ✅ System role: Submit trades (via VS-03 approval)
- ✅ System role: Submit trades (via VS-26 approval)
- ✅ Operations: View & monitor execution
- ✅ Audit: Query immutable trail
@@ -196,7 +196,7 @@ CREATE TABLE model_operations.trade_status_history (
- [ ] HTTP client timeout configured (30 seconds default)
- [ ] Circuit breaker SLA validated (< 1% error rate)
- [ ] Hangfire jobs q-evaluation queue ready
- [ ] VS-04 audit trail integration verified
- [ ] VS-27 audit trail integration verified
- [ ] Logs & alerts configured for transient/permanent/liquidity errors
## Performance Considerations
@@ -216,9 +216,9 @@ CREATE TABLE model_operations.trade_status_history (
## Related Documentation
- **VS-10:** Sell Decision Engine (PLANNED)
- **VS-03:** Approval Workflow (MERGED, PR #23)
- **VS-04:** Audit Trail (MERGED, PR #24)
- **VS-14:** Portfolio Reconciliation (PLANNED)
- **VS-26:** Approval Workflow (MERGED, PR #23)
- **VS-27:** Audit Trail (MERGED, PR #24)
- **VS-29:** Portfolio Reconciliation (PLANNED)
- **CLAUDE.md:** KIS API reference, error handling patterns
---