REL-002(BAT-009)·REL-003(BAT-010~013) 을 released→feedback-captured 로 전환해 REL-001/004 와 동일한 완료(종착) 상태로 정합. REL-002 Feedback Handoff 빈 플레이스홀더 정리(tooling 릴리즈, Discovery/REQ Input=없음). 포함 batch BAT-009~013 release-candidate→released(register + 개별 index) — 누락 정정. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.4 KiB
3.4 KiB
BAT-011: safety-sell 트리거 레이어 (forced_close·KIS polling·장 마감 청산 + update_thresholds RPC + baseline 정합)
- Status: released
- Profile: standard
- Source Discovery: dcy-007
- Included REQ: REQ-037, REQ-038, REQ-039, REQ-040, REQ-042
- Excluded REQ: REQ-034, REQ-035, REQ-036, REQ-041 (safety-sell 기반 인프라 — BAT-010에서 delivery 완료)
Summary
- dcy-007(core 자율 안전 매도)의 트리거 레이어를 delivery한다. BAT-010이 제공한 기반(WatchdogStore,
stop_loss_price/take_profit_price도메인 필드,SlotService.sell(), safety-sell env vars 5종 파싱) 위에 실제 자동 매도를 발동하는 백그라운드 루프와 임계값 갱신 RPC를 추가한다. 구성:forced_close_at만기 루프(REQ-037), stop-loss·take-profit KIS 현재가 polling + 트리거(REQ-038), 장 마감 강제 청산(REQ-039),update_thresholdsintent RPC 액션(REQ-040), 그리고 dcy-007 전체(REQ-034~041)의 baseline 문서 정합(REQ-042).
Scope
- In Scope:
- 신규
trex-safety-sell데몬 worker 스레드 — 기존 6 스레드에 1개 추가. forced_close_at 체크(REQ-037), stop-loss·take-profit 가격 체크(REQ-038), 장 마감 청산(REQ-039)을 통합 루프로 처리. - forced_close_at 만기 감지:
holding+ 워치독 만료 +forced_close_at <= now(KST)→SlotService.sell()(REQ-037) - KIS 현재가 polling 어댑터(
TTTC8397R실전 /VTTC8397R모의,stck_prpr파싱) + 손절/익절 조건 평가 + 쿼터 상한 경고 (REQ-038) - 장 마감 강제 청산:
TREX_MARKET_CLOSE_LIQUIDATION_TIME도래 시 워치독 무관 전체holding청산 + 거래일 1회 발동 가드 (REQ-039) update_thresholdsintent RPC 액션:stop_loss_price/take_profit_price/forced_close_at부분 갱신 + 워치독last_seen_at리셋 + holding-only (REQ-040)- baseline 3문서(
interface-contract.md,runtime-flows.md,project-structure.md) 정합 — dcy-007 REQ-034~041 반영 (REQ-042)
- 신규
- Out of Scope:
- BAT-010이 완료한 기반 인프라(REQ-034 WatchdogStore, REQ-035 도메인 필드/마이그레이션, REQ-036
SlotService.sell(), REQ-041 env 파싱) 재구현 — 본 batch는 호출/참조만 한다. - 가격 임계값 논리 유효성 검증(take_profit > stop_loss 등) — dcy-007/REQ-035 범위 밖.
- KIS 쿼터 초과 시 polling 간격 자동 조정의 동적 튜닝 정책 — 본 batch는 상한 산정 + 경고 로그까지(REQ-038 AC-8). 동적 조정은 후속 후보.
- BAT-010이 완료한 기반 인프라(REQ-034 WatchdogStore, REQ-035 도메인 필드/마이그레이션, REQ-036
Documents
- Planning: planning.md
- Design: design.md
- Implementation: implementation.md
- Verification: verification.md
Notes
- Source discovery는 단일(dcy-007). BAT-010과 같은 Discovery의 후속 batch이며, BAT-010 index의 "BAT-011 예정" 분할 계획과 정확히 일치한다(REQ-037/038/039/040/042).
- 본 batch는 BAT-010과 달리 외부 API(KIS 현재가 polling) 호출과 신규 daemon thread를 도입하므로 standard profile + design 선행이 필요하다(planning.md Design Gate 참조).
- BAT-010 verification의 잔여 R-2(실 PostgreSQL migration
004_add_price_thresholds.sqlround-trip 미검증)를 본 batch 환경에서 함께 검증한다(verification에 evidence 기록 예정). - REQ-042(문서 정합)는 REQ-037~040 구현 완료 후 verification 단계에서 최신 구현 상태를 반영해 수행한다(REQ-042 Notes).