diff --git a/docs/batches/bat-052_20260626_wac-realized-pnl-report/index.md b/docs/batches/bat-052_20260626_wac-realized-pnl-report/index.md index fc2ac95..c3d94c2 100644 --- a/docs/batches/bat-052_20260626_wac-realized-pnl-report/index.md +++ b/docs/batches/bat-052_20260626_wac-realized-pnl-report/index.md @@ -1,6 +1,6 @@ # BAT-052: WAC 실현손익 리포트 통합 (portfolio-hub /pnl/realized) -- Status: in-progress +- Status: release-candidate - Profile: standard - Discovery: dcy-035 - Created: 2026-06-26 diff --git a/docs/batches/bat-052_20260626_wac-realized-pnl-report/verification.md b/docs/batches/bat-052_20260626_wac-realized-pnl-report/verification.md index 5310202..93b644f 100644 --- a/docs/batches/bat-052_20260626_wac-realized-pnl-report/verification.md +++ b/docs/batches/bat-052_20260626_wac-realized-pnl-report/verification.md @@ -16,6 +16,15 @@ python3 -m pytest --tb=short -q - 스킵: 47 (DB/네트워크 필요 통합 테스트 — 기존 패턴) - 실패: 0 +## 검증 완료 판정 + +- QC 결과: PASS +- confirm-batch-verification: 완료 (2026-06-26) +- PR: #33 +- 머지 커밋: 81d06d9 +- 대상 브랜치: main +- 머지 일자: 2026-06-26 + ## 신규 테스트 커버리지 (51개) | 파일 | 테스트 수 | 대상 REQ | diff --git a/docs/batches/index.md b/docs/batches/index.md index 5d1ee68..d25ffe0 100644 --- a/docs/batches/index.md +++ b/docs/batches/index.md @@ -59,4 +59,4 @@ | BAT-049 | standard | released | REQ-098, REQ-099, REQ-100, REQ-101 | dcy-033 | [bat-049](./bat-049_20260621_alarm-system-dcy-033/) | | BAT-050 | standard | release-candidate | REQ-102, REQ-103, REQ-104, REQ-107, REQ-108 | dcy-034 (core-A) | [bat-050](./bat-050_20260626_reconcile-warning-blocking-gate-core-a/) | | BAT-051 | standard | release-candidate | REQ-105, REQ-106 | dcy-034 (core-B) | [bat-051](./bat-051_20260626_sync-verify-cli-cold-start-core-b/) | -| BAT-052 | standard | in-progress | REQ-109, REQ-110, REQ-111 | dcy-035 | [bat-052](./bat-052_20260626_wac-realized-pnl-report/) | +| BAT-052 | standard | release-candidate | REQ-109, REQ-110, REQ-111 | dcy-035 | [bat-052](./bat-052_20260626_wac-realized-pnl-report/) | diff --git a/docs/srs/Exception/req-111_operator-report-realized-pnl-degrade.md b/docs/srs/Exception/req-111_operator-report-realized-pnl-degrade.md index 9839cb1..8c1cd53 100644 --- a/docs/srs/Exception/req-111_operator-report-realized-pnl-degrade.md +++ b/docs/srs/Exception/req-111_operator-report-realized-pnl-degrade.md @@ -1,6 +1,6 @@ # req-111: 운영 리포트 — portfolio-hub 미가용 시 실현손익 섹션 에러 degrade -- Status: Approved +- Status: Implemented - Type: Exception - Priority: High - Owner: trex-core-dev @@ -39,6 +39,41 @@ ## Change Log +### CHG-20260626-02 +- Date: 2026-06-26 +- Author: trex-core-dev + +#### Change Summary +- BAT-052 구현·검증 완료(PR #33, 머지 커밋 81d06d9). confirm-batch-verification + confirm-req-implemented. Approved → Implemented. + +#### Intent +- dcy-035 FR-5 delivery 완료 확인 및 상태 전환. + +#### Acceptance Criteria Delta +- Updated: + - none (모든 AC-1~5 검증 완료, 상태 전환만) +- Added: + - none +- Removed: + - none + +#### Impacted Area Delta +- Docs: 없음 +- Modules: 변경 없음 (구현 완료 상태 유지) +- Tests: 717 passed / 47 skipped / 0 fail (BAT-052 verification) + +#### Delivery Trace Delta +- Batches: + - BAT-052 (verified, PR #33, 머지 커밋 81d06d9, 2026-06-26) +- Releases: + - none (M3 배포 대기) + +#### Revalidation Impact +- Reverification Needed: no +- Existing Implementation Invalidated: no +- Status Recommendation: Implemented +- Follow-up Action: none + ### CHG-20260626-01 - Date: 2026-06-26 - Author: trex-core-dev diff --git a/docs/srs/Integration/req-109_portfolio-hub-realized-pnl-read-adapter.md b/docs/srs/Integration/req-109_portfolio-hub-realized-pnl-read-adapter.md index 686f2d7..2497424 100644 --- a/docs/srs/Integration/req-109_portfolio-hub-realized-pnl-read-adapter.md +++ b/docs/srs/Integration/req-109_portfolio-hub-realized-pnl-read-adapter.md @@ -1,6 +1,6 @@ # req-109: portfolio-hub /pnl/realized read 포트 메서드 + HTTP 어댑터 -- Status: Approved +- Status: Implemented - Type: Integration - Priority: High - Owner: trex-core-dev @@ -43,6 +43,41 @@ ## Change Log +### CHG-20260626-02 +- Date: 2026-06-26 +- Author: trex-core-dev + +#### Change Summary +- BAT-052 구현·검증 완료(PR #33, 머지 커밋 81d06d9). confirm-batch-verification + confirm-req-implemented. Approved → Implemented. + +#### Intent +- dcy-035 FR-1 delivery 완료 확인 및 상태 전환. + +#### Acceptance Criteria Delta +- Updated: + - none (모든 AC-1~6 검증 완료, 상태 전환만) +- Added: + - none +- Removed: + - none + +#### Impacted Area Delta +- Docs: 없음 +- Modules: 변경 없음 (구현 완료 상태 유지) +- Tests: 717 passed / 47 skipped / 0 fail (BAT-052 verification) + +#### Delivery Trace Delta +- Batches: + - BAT-052 (verified, PR #33, 머지 커밋 81d06d9, 2026-06-26) +- Releases: + - none (M3 배포 대기) + +#### Revalidation Impact +- Reverification Needed: no +- Existing Implementation Invalidated: no +- Status Recommendation: Implemented +- Follow-up Action: none + ### CHG-20260626-01 - Date: 2026-06-26 - Author: trex-core-dev diff --git a/docs/srs/Interface/req-110_operator-report-wac-realized-pnl.md b/docs/srs/Interface/req-110_operator-report-wac-realized-pnl.md index 63cae86..7aeb71a 100644 --- a/docs/srs/Interface/req-110_operator-report-wac-realized-pnl.md +++ b/docs/srs/Interface/req-110_operator-report-wac-realized-pnl.md @@ -1,6 +1,6 @@ # req-110: 운영 리포트 WAC 실현손익 통합 — 전 인스턴스 공통 -- Status: Approved +- Status: Implemented - Type: Interface - Priority: High - Owner: trex-core-dev @@ -48,6 +48,41 @@ ## Change Log +### CHG-20260626-03 +- Date: 2026-06-26 +- Author: trex-core-dev + +#### Change Summary +- BAT-052 구현·검증 완료(PR #33, 머지 커밋 81d06d9). confirm-batch-verification + confirm-req-implemented. Approved → Implemented. + +#### Intent +- dcy-035 FR-2/FR-3/FR-4 delivery 완료 확인 및 상태 전환. + +#### Acceptance Criteria Delta +- Updated: + - none (모든 AC-1~7 검증 완료, 상태 전환만) +- Added: + - none +- Removed: + - none + +#### Impacted Area Delta +- Docs: 없음 +- Modules: 변경 없음 (구현 완료 상태 유지) +- Tests: 717 passed / 47 skipped / 0 fail (BAT-052 verification) + +#### Delivery Trace Delta +- Batches: + - BAT-052 (verified, PR #33, 머지 커밋 81d06d9, 2026-06-26) +- Releases: + - none (M3 배포 대기) + +#### Revalidation Impact +- Reverification Needed: no +- Existing Implementation Invalidated: no +- Status Recommendation: Implemented +- Follow-up Action: none + ### CHG-20260626-02 - Date: 2026-06-26 - Author: 팀장 (Claude) diff --git a/docs/srs/index.md b/docs/srs/index.md index 19d775c..1602380 100644 --- a/docs/srs/index.md +++ b/docs/srs/index.md @@ -189,17 +189,17 @@ | REQ-106 | trex-core verify 명령 — C 불일치 슬롯 재대조 + warning 해제 (C 전용 OQ-C) | Interface | Implemented | High | trex-core-dev | [req-106](./Interface/req-106_verify-cli-command.md) | | REQ-107 | 차단/해제 전이 식별 로깅 + 고영향 불일치 알람 | Exception | Implemented | High | trex-core-dev | [req-107](./Exception/req-107_blocking-reconcile-logging-and-alarm.md) | | REQ-108 | 차단형 reconcile 비기능 요건 — 내구성·회귀 방지·자동 정정 금지·wire 계약 최소 침습 | Non-Functional | Implemented | High | trex-core-dev | [req-108](./Non-Functional/req-108_reconcile-blocking-regression-and-nfr.md) | -| REQ-109 | portfolio-hub /pnl/realized read 포트 메서드 + HTTP 어댑터 | Integration | Approved | High | trex-core-dev | [req-109](./Integration/req-109_portfolio-hub-realized-pnl-read-adapter.md) | -| REQ-110 | 운영 리포트 WAC 실현손익 통합 — 전 인스턴스 공통 | Interface | Approved | High | trex-core-dev | [req-110](./Interface/req-110_operator-report-wac-realized-pnl.md) | -| REQ-111 | 운영 리포트 — portfolio-hub 미가용 시 실현손익 섹션 에러 degrade | Exception | Approved | High | trex-core-dev | [req-111](./Exception/req-111_operator-report-realized-pnl-degrade.md) | +| REQ-109 | portfolio-hub /pnl/realized read 포트 메서드 + HTTP 어댑터 | Integration | Implemented | High | trex-core-dev | [req-109](./Integration/req-109_portfolio-hub-realized-pnl-read-adapter.md) | +| REQ-110 | 운영 리포트 WAC 실현손익 통합 — 전 인스턴스 공통 | Interface | Implemented | High | trex-core-dev | [req-110](./Interface/req-110_operator-report-wac-realized-pnl.md) | +| REQ-111 | 운영 리포트 — portfolio-hub 미가용 시 실현손익 섹션 에러 degrade | Exception | Implemented | High | trex-core-dev | [req-111](./Exception/req-111_operator-report-realized-pnl-degrade.md) | ## Recent Change Log Summary +- 2026-06-26 :: REQ-109~111 **Approved → Implemented** (confirm-req-implemented, dcy-035): BAT-052 머지(PR #33, 81d06d9) 완료. QC PASS. 717 passed/47 skipped/0 fail. REQ-109(portfolio-hub /pnl/realized 포트+어댑터+stub AC-1~6), REQ-110(WAC 운영리포트 통합 AC-1~7, CHG-20260626-02 buy_fee편입 반영), REQ-111(degrade AC-1~5) 전 AC 검증 완료. M3 배포 대기. - 2026-06-26 :: REQ-109~111 **신규 생성(Proposed, draft-req dcy-035)**: 멀티데이 실현 PnL — WAC 기반 운영 리포트. REQ-109(portfolio-hub /pnl/realized read 포트+어댑터+stub), REQ-110(운영 리포트 WAC 실현손익 통합: 전 인스턴스 공통, 매수일 수수료 별도, completeness 경고), REQ-111(portfolio-hub 미가용 시 실현손익 섹션 에러 degrade, 폴백 없음). NFR-1(wire 불변)/NFR-3(데몬 격리)은 REQ-111 AC/Notes 흡수. NFR-2(일중 WAC==net 회귀)는 REQ-110 AC-2 흡수. OQ-2(기간)/OQ-3(수수료 출처)/OQ-4(N콜) design 인계. - 2026-06-26 :: REQ-102~108 **Approved → Implemented** (confirm-req-implemented, dcy-034): BAT-050(core-A, PR #31 ced7eda) + BAT-051(core-B, PR #32 07b393d) origin/main 머지 완료. QC(opus) PASS + 팀장 confirm-batch-verification. 최종 683 passed/47 skipped/0 fail. 차단형 reconcile(REQ-102·103), 전략 차단 게이트(REQ-104), sync/verify CLI(REQ-105·106), 차단/해제 로깅+알람(REQ-107), NFR(REQ-108) 전 AC 검증 완료. M3 배포 대기. - 2026-06-25 :: REQ-102~108 **Proposed → Approved** (confirm-req, 팀장): dcy-034 OQ-A/B/C 결정 + FR-7 참조 구체화 반영. **OQ-A**: REQ-105에 INACTIVE→HOLDING 전이 엣지 추가 승인(actor=sync/reconcile 제한, wire 무영향 — enum 5개 불변·엣지만 추가), AC-10 신규, FR-7 → portfolio-hub dcy-008/REQ-043(`GET /v1/portfolios/{id}/holdings/cost-basis`) 구체 참조 갱신. **OQ-B**: REQ-104에 차단 예외 명시 — 내부 안전망(safety-sell/watchdog/kill-switch)은 reconcile-warning 차단 우회, AC-2 갱신. **OQ-C**: REQ-106에 verify=C 전용 확정, B 케이스는 sync(REQ-105) 책임 명시. REQ-102·103·107·108은 초안 그대로 승인. - 2026-06-25 :: REQ-102~108 **신규 생성(Proposed, draft-req dcy-034)**: 슬롯↔실계좌 차단형 reconcile + sync/verify 명령 — M3 cold-start. REQ-102(durable warning store), REQ-103(B/C 차단형 reconcile), REQ-104(pause∨warning OR 게이트), REQ-105(sync CLI), REQ-106(verify CLI), REQ-107(차단/해제 로깅+알람), REQ-108(NFR: 내구성·회귀·자동정정금지·wire계약최소침습). FR-7(portfolio-hub WAC read)은 portfolio-hub-dev 별도 REQ로 위임, trex-core REQ에는 의존 참조만 포함. -- 2026-06-21 :: REQ-098·099·100·101 **Approved → Implemented** (confirm-req-implemented, BAT-049 release-candidate, dcy-033): 알람 시스템 1단계 구현·검증 완료. 단위 608 passed/47 skipped/0 fail, 신규 AlarmEmitter 29 테스트, ruff clean. 독립 opus QC=PASS-WITH-NOTES(blocker 0) + 팀장 실인프라 e2e(trex.alerts 발행 → trex-notifier → 텔레그램 HTTP 200). 기존 topology 불변 확인. 잔여(non-blocker): reset.py 2 code 간접 검증. - 2026-06-21 :: **BAT-048 confirm-batch-verification**(팀장): REQ-095·096 **Approved → Implemented**. 구현=`execution.py` `_resolve_fill_price` 단일화(application) + `_record_ledger` resolved_price + skip+강WARN. 검증=신규 21 단위 테스트(매수 16+매도 5), **전체 575 passed/47 skipped/0 fail**(팀장 독립 재실행) + ruff clean. 독립 opus QC=PASS-WITH-NOTES → NOTE-1(ruff 2건)·NOTE-2(매도 경로 테스트) 정정 완료. wire/LedgerTrade 스키마 불변(AC-5). REQ-097=스파이크 Implemented. - 2026-06-21 :: REQ-095·096·097 **Proposed → Approved** (confirm-req, 팀장): 세 REQ가 dcy-032 FR-1~4·NFR-1~3을 충실히 반영, AC 측정 가능, design Deferred 항목(백필 지점·지정가 부재 폴백·알람 채널) 명시 확인. REQ-095 AC-6(지정가 부재 폴백)은 design 확정 후 구체화(사장님 합의 deferral). - 2026-06-16 :: REQ-083 신규 생성(Proposed, draft-req dcy-030): KRX 호가단위(tick) 산출 유틸 — 가격→tick 순수 함수(2023.1.25~ 구간표) + floor/ceil 배수 헬퍼. 주식 전용(OQ-1). REQ-070 슬리피지 스냅이 소비.