운영자(Hermes Agent) 실 환경 배포 evidence(revision71faa23, host 86ba33f2997a, broker=kis LIVE, 2026-06-06T11:18:16Z) 반영: - Release Execution Evidence 기재(배포 facts + app-service profile checks + 동일 revision71faa23pre-deploy 게이트 재현 보강). - Rollback Outcome 의미 정정: 운영자 보고 "rollback yes"는 배포 롤백이 아니라 휴장일(현충일) KIS 거절에 따른 slot pending_buy→idle 정상 복구(매수 거부 경로 smoke 성공). - capture-release-feedback: release feedback-captured 전환, 포함 batch BAT-001~008 released 전환. - 잔여(차기 거래일 실증): ledger flush(fill→ledger), 마이그레이션 명시 로그, 포지션 정합/warning 마스킹 결과 로그 — Feedback Handoff 기록. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
BAT-004: 브로커 집행 + KIS 어댑터 + durable 핸드오프
- Status: released
- Profile: standard
- Source Discovery: dcy-003
- Included REQ: REQ-011, REQ-012, REQ-013, REQ-014, REQ-015
- Excluded REQ: 없음
Summary
- dcy-003 슬라이스(브로커 단일 세션·주문 집행·비동기 체결·durable 핸드오프)를 하나의 delivery 단위로 묶는다. BAT-002 의 슬롯 코어 데몬 위에 BrokerPort + paper/KIS 어댑터 + 백그라운드 execution 루프 + reconciliation 을 얹어 intent→실제 주문을 잇는다.
Scope
- In Scope:
- REQ-011:
BrokerPort(submit/cancel/poll_fill) + paper/stub async 더블(불변식 B 경계). - REQ-012: 실제 KIS Open API 어댑터(토큰/레이트리밋/모의투자 검증, 실계좌 게이팅).
- REQ-013: 백그라운드 execution 루프 — pending claim(옵션 A) → 주문 송신 → poll 체결 → holding/closed 전이 + 거부 롤백(idle).
- REQ-014: durable 핸드오프 + 재기동 reconciliation(broker_order_id 멱등, 중복 주문 0).
- REQ-015: runtime-flows/project-structure/interface-contract/data-model 정합.
- REQ-011:
- Out of Scope (후속 Discovery):
- safety floor(forced_close/EOD/손절 backstop, liveness), KIS 실계좌 라이브 go-live, 매수·매도 전략 데몬, API 인증.
Documents
- Planning: planning.md
- Design: design.md
- Implementation: implementation.md
- Verification: verification.md
Notes
- Source Discovery dcy-003 단일. 확정 결정: KIS 어댑터까지(OQ-1) / 통일 비동기 체결(OQ-2) / 옵션 A 실행큐(OQ-3) / 별도 execution 루프(OQ-4).
- 핵심 리스크: 실거래(R-1 중복주문/R-2 KIS 비동기체결/R-5 KIS 실 API) — paper 더블 + KIS 모의투자 + reconciliation + 실계좌 게이팅으로 완화(dcy-003 confirm 수용).
- 검증 환경: KIS 모의투자 자격증명(.env, REQ-010 패턴) 가용 시 REQ-012 통합 검증, 미가용 시 skip 하고 paper 기반(REQ-011/013/014) 완전 검증 — verification 에서 분리 판단.