docs: dcy-034 거버넌스 마감 — REQ-102~108 Implemented, BAT-050/051 release-candidate

BAT-050(PR #31 ced7eda, core-A) + BAT-051(PR #32 07b393d, core-B) origin/main
머지 완료 및 QC(opus) PASS + 팀장 confirm-batch-verification 반영.

- REQ-102~108: Approved → Implemented (상태 필드 + CHG-20260626-01 Change Log)
- docs/srs/index.md: Register 상태 7건 갱신, Recent Change Log Summary 마감 1줄 추가
- docs/batches/index.md: BAT-050 in-delivery → release-candidate, BAT-051 행 신규 추가
- bat-050/index.md, bat-051/index.md: in-delivery → release-candidate
- 코드 변경 없음 (문서 상태 필드만)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VHtM5Ws1HKCKQ4JGi6GRb5
This commit is contained in:
2026-06-26 15:55:51 +09:00
co-authored by Claude Opus 4.8
parent 3f10c2379b
commit 5b2e256c8d
11 changed files with 194 additions and 18 deletions
@@ -1,6 +1,6 @@
# BAT-050: reconcile-warning 차단형 게이트 (core-A)
- Status: in-delivery
- Status: release-candidate
- Profile: standard
- Discovery: dcy-034
- Created: 2026-06-26
@@ -1,6 +1,6 @@
# BAT-051: sync/verify CLI cold-start onboarding (core-B)
- Status: in-delivery
- Status: release-candidate
- Profile: standard
- Discovery: dcy-034
- Created: 2026-06-26
+2 -1
View File
@@ -57,4 +57,5 @@
| BAT-047 | standard | released | REQ-091, REQ-092, REQ-093, REQ-094 | dcy-031 | [bat-047](./bat-047_20260619_event-publisher-connection-reliability/) |
| BAT-048 | standard | released | REQ-095, REQ-096, REQ-097 | dcy-032 | [bat-048](./bat-048_20260621_fill-price-backfill-guard-logging-alert-spike/) |
| 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 | in-delivery | 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-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/) |
@@ -1,6 +1,6 @@
# req-102: reconcile-warning durable store — slot_id/pid 키 별도 테이블
- Status: Approved
- Status: Implemented
- Type: Data
- Priority: High
- Owner: trex-core-dev
@@ -43,6 +43,31 @@
## Change Log
### CHG-20260626-01
- Date: 2026-06-26
- Author: trex-core-dev
- Status: Approved → Implemented
- Summary: BAT-050(PR #31, ced7eda) + BAT-051(PR #32, 07b393d) origin/main 머지 완료. QC(opus) PASS + 팀장 confirm-batch-verification. 683 passed / 47 skipped / 0 fail. slot_reconcile_warning 테이블 마이그레이션, ReconcileWarningStore(in-memory/PG) 신규 구현, 전 AC 검증 완료.
#### Acceptance Criteria Delta
- 없음 (기존 AC 그대로 충족)
#### Impacted Area Delta
- 없음
#### Delivery Trace Delta
- Batches: BAT-050 (core-A)
- Releases: M3 (배포 대기)
#### Revalidation Impact
- Reverification Needed: no
- Existing Implementation Invalidated: no
- Status Recommendation: Implemented
- Follow-up Action: M3 배포 시 PG durable 검증.
#### Validation Plan
- BAT-050 verification.md AC 매핑 전항목 PASS 확인됨.
### CHG-20260625-02
- Date: 2026-06-25
- Author: trex-core-dev
@@ -1,6 +1,6 @@
# req-107: 차단/해제 전이 식별 로깅 + 고영향 불일치 알람
- Status: Approved
- Status: Implemented
- Type: Exception
- Priority: High
- Owner: trex-core-dev
@@ -44,6 +44,31 @@
## Change Log
### CHG-20260626-01
- Date: 2026-06-26
- Author: trex-core-dev
- Status: Approved → Implemented
- Summary: BAT-050/051(PR #31/#32) origin/main 머지 완료. QC(opus) PASS + 팀장 confirm-batch-verification. B/C 케이스 WARNING 로그 필드(slot_id/case_code/qty before-after), sync/verify 해제 INFO 로그(AC-3/4), A케이스 CRITICAL 알람 회귀 전 AC 검증 완료.
#### Acceptance Criteria Delta
- 없음
#### Impacted Area Delta
- 없음
#### Delivery Trace Delta
- Batches: BAT-050 (core-A, AC-1/2/5), BAT-051 (core-B, AC-3/4)
- Releases: M3 (배포 대기)
#### Revalidation Impact
- Reverification Needed: no
- Existing Implementation Invalidated: no
- Status Recommendation: Implemented
- Follow-up Action: 없음.
#### Validation Plan
- BAT-050/051 verification.md AC 매핑 전항목 PASS 확인됨.
### CHG-20260625-02
- Date: 2026-06-25
- Author: trex-core-dev
@@ -1,6 +1,6 @@
# req-103: 차단형 reconcile — B/C 불일치 슬롯 reconcile-warning 전이
- Status: Approved
- Status: Implemented
- Type: Integration
- Priority: High
- Owner: trex-core-dev
@@ -43,6 +43,31 @@
## Change Log
### CHG-20260626-01
- Date: 2026-06-26
- Author: trex-core-dev
- Status: Approved → Implemented
- Summary: BAT-050(PR #31, ced7eda) origin/main 머지 완료. QC(opus) PASS + 팀장 confirm-batch-verification. reconcile_core_holdings B케이스·reconcile_positions C케이스 차단, 정상 케이스 오발동 없음, A케이스 기존 동작 유지, 전 AC 검증 완료.
#### Acceptance Criteria Delta
- 없음
#### Impacted Area Delta
- 없음
#### Delivery Trace Delta
- Batches: BAT-050 (core-A)
- Releases: M3 (배포 대기)
#### Revalidation Impact
- Reverification Needed: no
- Existing Implementation Invalidated: no
- Status Recommendation: Implemented
- Follow-up Action: 없음.
#### Validation Plan
- BAT-050 verification.md AC 매핑 전항목 PASS 확인됨.
### CHG-20260625-02
- Date: 2026-06-25
- Author: trex-core-dev
@@ -1,6 +1,6 @@
# req-104: 전략 차단 게이트 — pause ∨ reconcile-warning 중 하나라도 걸리면 차단
- Status: Approved
- Status: Implemented
- Type: Interface
- Priority: High
- Owner: trex-core-dev
@@ -49,6 +49,31 @@
## Change Log
### CHG-20260626-01
- Date: 2026-06-26
- Author: trex-core-dev
- Status: Approved → Implemented
- Summary: BAT-050(PR #31, ced7eda) origin/main 머지 완료. QC(opus) PASS + 팀장 confirm-batch-verification. pause∨reconcile-warning OR 게이트, 안전망 우회(OQ-B), slots RPC reconcile_warned 필드, 전 AC 검증 완료.
#### Acceptance Criteria Delta
- 없음
#### Impacted Area Delta
- 없음
#### Delivery Trace Delta
- Batches: BAT-050 (core-A)
- Releases: M3 (배포 대기)
#### Revalidation Impact
- Reverification Needed: no
- Existing Implementation Invalidated: no
- Status Recommendation: Implemented
- Follow-up Action: 없음.
#### Validation Plan
- BAT-050 verification.md AC 매핑 전항목 PASS 확인됨.
### CHG-20260625-02
- Date: 2026-06-25
- Author: trex-core-dev
+26 -1
View File
@@ -1,6 +1,6 @@
# req-105: trex-core sync 명령 — 슬롯 수량을 브로커에 맞춰 갱신 + warning 해제
- Status: Approved
- Status: Implemented
- Type: Interface
- Priority: High
- Owner: trex-core-dev
@@ -53,6 +53,31 @@
## Change Log
### CHG-20260626-01
- Date: 2026-06-26
- Author: trex-core-dev
- Status: Approved → Implemented
- Summary: BAT-051(PR #32, 07b393d) origin/main 머지 완료. QC(opus) PASS + 팀장 confirm-batch-verification. sync CLI(--portfolio-id/--all/--dry-run/--live), INACTIVE→HOLDING 전이, WAC seed, warning 해제, 전 AC 검증 완료.
#### Acceptance Criteria Delta
- 없음
#### Impacted Area Delta
- 없음
#### Delivery Trace Delta
- Batches: BAT-051 (core-B)
- Releases: M3 (배포 대기)
#### Revalidation Impact
- Reverification Needed: no
- Existing Implementation Invalidated: no
- Status Recommendation: Implemented
- Follow-up Action: M3 배포 시 cold-start 운영 검증.
#### Validation Plan
- BAT-051 verification.md AC 매핑 전항목 PASS 확인됨.
### CHG-20260625-02
- Date: 2026-06-25
- Author: trex-core-dev
@@ -1,6 +1,6 @@
# req-106: trex-core verify 명령 — C 불일치 슬롯 재대조 + warning 해제
- Status: Approved
- Status: Implemented
- Type: Interface
- Priority: High
- Owner: trex-core-dev
@@ -44,6 +44,31 @@
## Change Log
### CHG-20260626-01
- Date: 2026-06-26
- Author: trex-core-dev
- Status: Approved → Implemented
- Summary: BAT-051(PR #32, 07b393d) origin/main 머지 완료. QC(opus) PASS + 팀장 confirm-batch-verification. verify CLI(--portfolio-id/--json), C케이스 재대조+warning 해제, B케이스 거부+sync 안내, 전 AC 검증 완료.
#### Acceptance Criteria Delta
- 없음
#### Impacted Area Delta
- 없음
#### Delivery Trace Delta
- Batches: BAT-051 (core-B)
- Releases: M3 (배포 대기)
#### Revalidation Impact
- Reverification Needed: no
- Existing Implementation Invalidated: no
- Status Recommendation: Implemented
- Follow-up Action: 없음.
#### Validation Plan
- BAT-051 verification.md AC 매핑 전항목 PASS 확인됨.
### CHG-20260625-02
- Date: 2026-06-25
- Author: trex-core-dev
@@ -1,6 +1,6 @@
# req-108: 차단형 reconcile 비기능 요건 — 내구성·회귀 방지·자동 정정 금지·wire 계약 최소 침습
- Status: Approved
- Status: Implemented
- Type: Non-Functional
- Priority: High
- Owner: trex-core-dev
@@ -40,6 +40,31 @@
## Change Log
### CHG-20260626-01
- Date: 2026-06-26
- Author: trex-core-dev
- Status: Approved → Implemented
- Summary: BAT-050/051(PR #31/#32) origin/main 머지 완료. QC(opus) PASS + 팀장 confirm-batch-verification. durable 검증, 정상 단기 오발동 없음, 자동 정정 금지, SlotState enum 불변, ALLOWED_TRANSITIONS 불변(+1 sync 전이), additive 하위 호환 전 AC 검증 완료.
#### Acceptance Criteria Delta
- 없음
#### Impacted Area Delta
- 없음
#### Delivery Trace Delta
- Batches: BAT-050 (core-A, AC-1~6), BAT-051 (core-B, ALLOWED_TRANSITIONS 14개 반영)
- Releases: M3 (배포 대기)
#### Revalidation Impact
- Reverification Needed: no
- Existing Implementation Invalidated: no
- Status Recommendation: Implemented
- Follow-up Action: 없음.
#### Validation Plan
- BAT-050/051 verification.md AC 매핑 전항목 PASS 확인됨.
### CHG-20260625-02
- Date: 2026-06-25
- Author: trex-core-dev
+8 -8
View File
@@ -182,20 +182,20 @@
| REQ-099 | trex.alerts AMQP exchange 토폴로지 + 가산·격리 불변식 | Integration | Implemented | High | trex-core-dev | [req-099](./Integration/req-099_alarm-exchange-topology.md) |
| REQ-100 | trex-core 알람 emitter — CRITICAL code 발신 배선 | Integration | Implemented | High | trex-core-dev | [req-100](./Integration/req-100_core-alarm-emitter.md) |
| REQ-101 | 알람 발신 흐름 baseline 문서 정합 | Documentation | Implemented | Medium | trex-core-dev | [req-101](./Documentation/req-101_alarm-baseline-alignment.md) |
| REQ-102 | reconcile-warning durable store — slot_id/pid 키 별도 테이블 | Data | Approved | High | trex-core-dev | [req-102](./Data/req-102_reconcile-warning-durable-store.md) |
| REQ-103 | 차단형 reconcile — B/C 불일치 슬롯 reconcile-warning 전이 | Integration | Approved | High | trex-core-dev | [req-103](./Integration/req-103_blocking-reconcile-b-c-cases.md) |
| REQ-104 | 전략 차단 게이트 — pause ∨ reconcile-warning OR 게이트 (안전망 예외) | Interface | Approved | High | trex-core-dev | [req-104](./Interface/req-104_reconcile-warning-strategy-gate.md) |
| REQ-105 | trex-core sync 명령 — 슬롯 수량을 브로커에 맞춰 갱신 + warning 해제 (INACTIVE→HOLDING OQ-A) | Interface | Approved | High | trex-core-dev | [req-105](./Interface/req-105_sync-cli-command.md) |
| REQ-106 | trex-core verify 명령 — C 불일치 슬롯 재대조 + warning 해제 (C 전용 OQ-C) | Interface | Approved | High | trex-core-dev | [req-106](./Interface/req-106_verify-cli-command.md) |
| REQ-107 | 차단/해제 전이 식별 로깅 + 고영향 불일치 알람 | Exception | Approved | High | trex-core-dev | [req-107](./Exception/req-107_blocking-reconcile-logging-and-alarm.md) |
| REQ-108 | 차단형 reconcile 비기능 요건 — 내구성·회귀 방지·자동 정정 금지·wire 계약 최소 침습 | Non-Functional | Approved | High | trex-core-dev | [req-108](./Non-Functional/req-108_reconcile-blocking-regression-and-nfr.md) |
| REQ-102 | reconcile-warning durable store — slot_id/pid 키 별도 테이블 | Data | Implemented | High | trex-core-dev | [req-102](./Data/req-102_reconcile-warning-durable-store.md) |
| REQ-103 | 차단형 reconcile — B/C 불일치 슬롯 reconcile-warning 전이 | Integration | Implemented | High | trex-core-dev | [req-103](./Integration/req-103_blocking-reconcile-b-c-cases.md) |
| REQ-104 | 전략 차단 게이트 — pause ∨ reconcile-warning OR 게이트 (안전망 예외) | Interface | Implemented | High | trex-core-dev | [req-104](./Interface/req-104_reconcile-warning-strategy-gate.md) |
| REQ-105 | trex-core sync 명령 — 슬롯 수량을 브로커에 맞춰 갱신 + warning 해제 (INACTIVE→HOLDING OQ-A) | Interface | Implemented | High | trex-core-dev | [req-105](./Interface/req-105_sync-cli-command.md) |
| 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) |
## Recent Change Log Summary
- 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 :: REQ-098·099·100·101 **Proposed → Approved** (confirm-req, 팀장): dcy-033 확정 설계(trex.alerts AMQP·envelope 7필드·core CRITICAL 8종) 충실 반영, AC 측정가능, 가산·격리 불변식(098 AC-3/099 AC-2)·best-effort 비차단(099 AC-6/100 AC-2~4)·시크릿 격리(100 AC-5)·의존성역전/domain 순수성(100 AC-7/8) 강제 확인. emitter-in-adapter 경계·reset.py transport는 batch design 확정. **delivery는 첫 tsl REL(M2) 이후 큐잉.**
- 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 슬리피지 스냅이 소비.