Files
trex-core/docs/batches/bat-014_20260608_safety-sell-cooldown/index.md
T
genichinandClaude Opus 4.8 0f56f26eb5 docs(release): REL-004 capture-release-feedback (feedback-captured)
운영자 배포 증거 기반 운영 환류 기록: Feedback Handoff(관찰 사실 +
Discovery/REQ/Change Request Input 분리), REL-004 confirmed→feedback-captured,
포함 BAT-014~023 release-candidate→released(register + 개별 index).

후속 입력: issue #16(preallocation 누락, Discovery), dcy-019(REQ 대기),
BAT-024(차기 release 편입), daily_symbol_entries 제거(REQ-002 change-req).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 13:53:24 +09:00

1.9 KiB

BAT-014: safety-sell 영속 거부 재시도 쿨다운 (per-slot cooldown + 경고 + env)

  • Status: released
  • Profile: batch-lite
  • Source Discovery: dcy-010
  • Included REQ: REQ-052, REQ-053, REQ-054

Summary

  • dcy-010(safety-sell 영속 거부 재시도 백오프)를 batch-lite 로 delivery 한다. SafetySellService에 per-slot 인메모리 쿨다운(마지막 시도 시각·시도 횟수)을 추가해 영속 거부(휴장/잔고/규제) 시 min_retry_interval_sec(기본 600s) 이내 재시도를 건너뛰고, max_retry_warn_count(기본 3) 도달 시 운영자 WARNING 을 발행한다. SafetySellConfig env 2종 + runtime-flows 정합. DB/스레드/인터페이스 변경 없음(인메모리만).

Scope

  • In Scope:
    • SafetySellService per-slot 쿨다운 추적(_last_attempt/_attempt_count) + skip/만료 재시도 + 경고 로그 + holding 이탈 정리, market_close 제외 (REQ-052)
    • SafetySellConfig min_retry_interval_sec/max_retry_warn_count env 2종 (REQ-053)
    • docs/runtime-flows.md safety-sell tick 쿨다운 단계 반영 (REQ-054)
  • Out of Scope:
    • ExecutionService→SafetySellService 거부 사유 피드백 채널, 거부 원인별 차등 쿨다운, 쿨다운 DB 영속, 수동 해제 API, market_close 별도 쿨다운.

Documents

Notes

  • Profile batch-lite: 소규모(단일 service + config 2종 + 문서), 인메모리만, 구조/인터페이스/DB 변경 없음, 설계가 dcy-010 §4 에 완비 → Design Gate: no(design.md 불요). implementation/verification 은 해당 stage 진입 시 생성.
  • OQ-1(600s)/OQ-2(3, 경고만)/OQ-3(단일 per-slot) Answered. NFR-1(인메모리)/NFR-2(무락)/NFR-4(paper reject 시뮬 테스트) 는 REQ-052 AC 로 흡수.
  • 발견 근거: REL-003 Feedback / 2026-06-07 실 KIS LIVE SL/TP e2e.