From bd8ff1bf452999a73de89e7e2cfe719190a2878d Mon Sep 17 00:00:00 2001 From: Justin Ko Date: Fri, 26 Jun 2026 15:52:44 +0900 Subject: [PATCH] =?UTF-8?q?docs(gov):=20BAT-018/REQ-043=20=EA=B1=B0?= =?UTF-8?q?=EB=B2=84=EB=84=8C=EC=8A=A4=20=EB=A7=88=EA=B0=90=20=E2=80=94=20?= =?UTF-8?q?Implemented=20+=20release-candidate=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - REQ-043: Approved → Implemented (BAT-018 PR #14 squash d93c0bc, 팀장 QC PASS, origin/main 머지) - BAT-018: in-progress → release-candidate (배포 별도 — 미배포) - dcy-008 생성된 REQ 참조에 Implemented 반영 - srs/index.md Requirement Register 및 Recent Change Log Summary 갱신 (최신 5건) Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5 --- .../index.md | 2 +- docs/batches/index.md | 2 +- ...625_current-holding-wac-cost-basis-read.md | 2 +- ...q-043_holdings-cost-basis-read-endpoint.md | 33 ++++++++++++++++++- docs/srs/index.md | 4 +-- 5 files changed, 37 insertions(+), 6 deletions(-) diff --git a/docs/batches/bat-018_20260625_holdings-cost-basis-endpoint/index.md b/docs/batches/bat-018_20260625_holdings-cost-basis-endpoint/index.md index 159fb4e..de16a66 100644 --- a/docs/batches/bat-018_20260625_holdings-cost-basis-endpoint/index.md +++ b/docs/batches/bat-018_20260625_holdings-cost-basis-endpoint/index.md @@ -1,6 +1,6 @@ # BAT-018: 현재 보유 평단(WAC) 조회 엔드포인트 신설 (REQ-043) -- Status: in-progress +- Status: release-candidate - Profile: batch-lite - Source Discovery: dcy-008 (현재 보유 종목별 평단(WAC) 조회 API) - Included REQ: REQ-043 diff --git a/docs/batches/index.md b/docs/batches/index.md index a7ef079..c578c59 100644 --- a/docs/batches/index.md +++ b/docs/batches/index.md @@ -25,4 +25,4 @@ | BAT-015 | standard | released | REQ-033, REQ-034, REQ-035 | dcy-005 | [bat-015](./bat-015_20260601_rel-001-feedback-cleanup/) | | BAT-016 | standard | released | REQ-036, REQ-037, REQ-038 | dcy-006 | [bat-016](./bat-016_20260605_ledger-accounting-consolidation/) | | BAT-017 | standard | released | REQ-039, REQ-040, REQ-041, REQ-042 | dcy-007 | [bat-017](./bat-017_20260618_trade-history-and-pnl-api/) | -| BAT-018 | batch-lite | in-progress | REQ-043 | dcy-008 | [bat-018](./bat-018_20260625_holdings-cost-basis-endpoint/) | +| BAT-018 | batch-lite | release-candidate | REQ-043 | dcy-008 | [bat-018](./bat-018_20260625_holdings-cost-basis-endpoint/) | diff --git a/docs/discovery/dcy-008_20260625_current-holding-wac-cost-basis-read.md b/docs/discovery/dcy-008_20260625_current-holding-wac-cost-basis-read.md index ae1c9da..28cdcf2 100644 --- a/docs/discovery/dcy-008_20260625_current-holding-wac-cost-basis-read.md +++ b/docs/discovery/dcy-008_20260625_current-holding-wac-cost-basis-read.md @@ -9,7 +9,7 @@ - 대체됨: 없음 - 후속 Discovery 참조: 없음 - 교차 서비스 발원(driver): trex-core `dcy-034_20260625_slot-account-blocking-reconcile-sync-coldstart` FR-7 — trex-core가 cold-start 시 슬롯 평단을 seed하려면 portfolio-hub의 현재 보유분 평단 read가 필요하다. 본 Discovery는 그 의존을 portfolio-hub측 변경 단위로 정식화한다. -- 생성된 REQ 참조: REQ-043 (GET /v1/portfolios/{id}/holdings/cost-basis 현재 보유 평단 read, Interface) → [req-043](../srs/Interface/req-043_holdings-cost-basis-read-endpoint.md) (draft-req, confirm-req 대기) +- 생성된 REQ 참조: REQ-043 (GET /v1/portfolios/{id}/holdings/cost-basis 현재 보유 평단 read, Interface) → [req-043](../srs/Interface/req-043_holdings-cost-basis-read-endpoint.md) (Implemented — BAT-018 PR #14 origin/main 머지, 팀장 QC PASS, 배포 별도) # 1. 계획 상태 요약 - 연계 문서 현황: diff --git a/docs/srs/Interface/req-043_holdings-cost-basis-read-endpoint.md b/docs/srs/Interface/req-043_holdings-cost-basis-read-endpoint.md index 3bfdcaa..7989bd2 100644 --- a/docs/srs/Interface/req-043_holdings-cost-basis-read-endpoint.md +++ b/docs/srs/Interface/req-043_holdings-cost-basis-read-endpoint.md @@ -1,6 +1,6 @@ # REQ-043: GET /v1/portfolios/{id}/holdings/cost-basis 현재 보유 평단(WAC) read 엔드포인트 신설 -- Status: Approved +- Status: Implemented - Type: Interface - Priority: High - Owner: Justin Ko @@ -64,6 +64,37 @@ ## Change Log +### CHG-20260626-01 +- Date: 2026-06-26 +- Author: Justin Ko (portfolio-hub-dev) + +#### Change Summary +- 상태 `Approved` → `Implemented` — BAT-018 구현 완료, PR #14 squash-merge(d93c0bc) 후 팀장 QC PASS 및 origin/main 머지 확인. + +#### Intent +- BAT-018(batch-lite) 구현·검증 완료: AC-1~11 전부 PASS, 신규 테스트 20개 + 기존 회귀 427개 0 실패(총 447 passed). `calculate_current_wac` 신규 domain 함수, `HoldingsCostBasisResponse` 스키마, GET 엔드포인트 additive 추가. 배포는 별도(미배포 — release-candidate 상태). + +#### Acceptance Criteria Delta +- No change (AC-1~11 유지, 전부 검증 완료). + +#### Impacted Area Delta +- No change. + +#### Delivery Trace Delta +- Batches: BAT-018 → release-candidate +- Releases: none (미배포) + +#### Revalidation Impact +- Reverification Needed: no +- Existing Implementation Invalidated: no +- Status Recommendation: Implemented +- Follow-up Action: 배포 시 release 문서 작성. + +#### Validation Plan +- BAT-018 verification.md 참조 (AC-1~11 PASS, 447 passed / 0 failed). + +--- + ### CHG-20260625-02 - Date: 2026-06-25 - Author: Justin Ko (portfolio-hub-dev) diff --git a/docs/srs/index.md b/docs/srs/index.md index 2b2e701..d06f3b3 100644 --- a/docs/srs/index.md +++ b/docs/srs/index.md @@ -123,12 +123,12 @@ | REQ-040 | GET /v1/portfolios/{id}/pnl/realized 실현 PnL 집계 엔드포인트 신설 | Interface | Implemented | High | Justin Ko | [req-040](./Interface/req-040_realized-pnl-query-endpoint.md) | | REQ-041 | WAC 기반 cost_basis 산출 및 실현 PnL 계산 로직 (service/domain 계층 격리) | Integration | Implemented | High | Justin Ko | [req-041](./Integration/req-041_wac-cost-basis-pnl-calculation.md) | | REQ-042 | 체결 내역/실현 PnL API 테스트 커버리지 (WAC 시나리오 기댓값 대조, 날짜 필터, 422) | Testing | Implemented | High | Justin Ko | [req-042](./Testing/req-042_trade-pnl-api-test-coverage.md) | -| REQ-043 | GET /v1/portfolios/{id}/holdings/cost-basis 현재 보유 평단(WAC) read 엔드포인트 신설 | Interface | Approved | High | Justin Ko | [req-043](./Interface/req-043_holdings-cost-basis-read-endpoint.md) | +| REQ-043 | GET /v1/portfolios/{id}/holdings/cost-basis 현재 보유 평단(WAC) read 엔드포인트 신설 | Interface | Implemented | High | Justin Ko | [req-043](./Interface/req-043_holdings-cost-basis-read-endpoint.md) | ## Recent Change Log Summary +- 2026-06-26: REQ-043 `Approved` → `Implemented` — BAT-018 PR #14 squash-merge(d93c0bc) 팀장 QC PASS 후 origin/main 머지 완료. AC-1~11 전부 PASS(447 passed / 0 failed). 배포 별도(release-candidate). - 2026-06-25: REQ-043 `Proposed` → `Approved` (confirm-req 팀장 승인) — dcy-008 근거 Discovery 양방향 링크 확정. OQ-1(service token 소유권 blocker) 해소: cold-start는 `managed_by_daemon_id=daemon` 포트폴리오만 조회하므로 null 케이스 blocker 아님, daemon scope 소유권 정책(REQ-029 선례) 유지 확정. OQ-2(domain 함수) 구현 단계 재량 위임. AC-1~11 유지. - 2026-06-25: REQ-043 신규 (Proposed) — trex-core dcy-034 cold-start 평단 seed(FR-7) 선행 의존으로 draft-req 실행. GET /v1/portfolios/{id}/holdings/cost-basis 현재 보유 WAC read 엔드포인트 신설(Interface). OQ-1=service token 소유권 정책(daemon_id 일치 여부), OQ-2=domain 함수 확장 vs 신규 분리 — confirm-req에서 결정 필요. - 2026-06-18: REQ-039/040/041/042 `Approved` → `Implemented` (BAT-017 release-candidate, 독립 QC PASS-WITH-NOTES, 50 passed/전체 427 회귀없음, WAC 199,300 검증). 잔여 비차단: symbol 필터 edge 테스트·HTTP_422 deprecated. - 2026-06-18: REQ-039/040/041/042 `Proposed` → `Approved` (confirm-req 일괄 승인, dcy-007 결정 정합·R-1 완화 반영·blocker 없음, M1 fast-track 동일 batch). -- 2026-06-18: REQ-039/040/041/042 신규 (Proposed) — dcy-007(일일 거래내역 + 실현 PnL 조회 API) draft-req 산출물. REQ-039 체결 내역 조회(Interface), REQ-040 실현 PnL 집계(Interface), REQ-041 WAC cost_basis 산출 로직(Integration), REQ-042 테스트 커버리지(Testing). OQ-1=WAC(사장님 결정), OQ-2=Out of Scope. R-1 경고 필드(data_completeness_warning + cost_basis_from)가 REQ-040 AC-5/AC-6 및 REQ-042 AC-1/AC-3에 반영.