Files
trex-core/docs/batches/bat-011_20260607_safety-sell-triggers/index.md
T
genichinandClaude Opus 4.8 941d324899 docs(release): REL-002/003 feedback-captured + 포함 batch released 정합
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>
2026-06-09 13:59:41 +09:00

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_thresholds intent 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_thresholds intent 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). 동적 조정은 후속 후보.

Documents

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.sql round-trip 미검증)를 본 batch 환경에서 함께 검증한다(verification에 evidence 기록 예정).
  • REQ-042(문서 정합)는 REQ-037~040 구현 완료 후 verification 단계에서 최신 구현 상태를 반영해 수행한다(REQ-042 Notes).