docs(discovery): dcy-027 OQ-1~4 Answered (중장기 전략 슬롯 운영)
- OQ-1: 구현 위치 (a′) 기존 슬롯 도메인 유지 + 운영 프로파일/규칙 추가 (PositionBook 신설 Out of Scope). - OQ-2: safety_sell_enabled=false 인스턴스는 코어 손절매 미사용 — 보호 규칙 전략 모듈 전적 책임, 코어는 운영자 CLI exit 백스톱만 제공. - OQ-3: watchdog per-instance timeout 연장(중장기 ≥1800s). 알림 연동은 후속 Discovery. - OQ-4: 폴링/intent 주기 최소 1분~최대 10분 전제. FR-2/범위/R-1/DECIDE 항목 동기화. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -77,7 +77,7 @@
|
||||
## 기능 요구사항
|
||||
|
||||
- FR-1: 중장기 인스턴스 운영 프로파일을 정의한다 — 표준 TOML 레시피(safety_sell_enabled=false, market-close 미설정, watchdog 정책, max_active_slots)와 기동 검증 절차를 문서화하고 실 데몬으로 확인한다.
|
||||
- FR-2: `safety_sell_enabled=false` 인스턴스의 멀티데이 보호 규칙 경계를 확정한다 — 코어 제공 규칙({{DECIDE_RISK_RULES}} 범위)과 전략 모듈 책임을 명시하고, 코어 제공분은 구현한다.
|
||||
- FR-2: `safety_sell_enabled=false` 인스턴스는 코어 손절매 루틴을 일절 사용하지 않는다. 모든 보호 규칙(stop-loss·트레일링·타임스톱)은 전략 모듈의 전적 책임이며, 코어는 운영자 CLI `exit` 백스톱만 제공한다. 이 경계를 운영 문서에 명시한다.
|
||||
- FR-3: watchdog 의 중장기 의미를 재정의한다 — per-instance timeout 설정 또는 중장기 인스턴스 비활성화 옵션 중 확정안을 적용해, 저빈도 폴링 전략이 expired 로 오인되지 않게 한다.
|
||||
- FR-4: `forced_close_at` 의 중장기 의미(타임스톱 재해석 vs 미사용)를 확정하고 운영자 CLI·intent 계약 문서에 반영한다.
|
||||
- FR-5: `docs/project-structure.md`·`docs/runtime-flows.md` 에 중장기 인스턴스 운영 구조와 흐름(병행 인스턴스 토폴로지, 프로파일, 리스크 규칙 경로)을 갱신한다.
|
||||
@@ -93,7 +93,7 @@
|
||||
- In Scope
|
||||
- 구현 위치 판정(이슈 OQ-1 재평가) 및 REQ 분할 전제 확정
|
||||
- 중장기 인스턴스 운영 프로파일(TOML 레시피 + watchdog 정책 + 기동 검증)
|
||||
- 멀티데이 보호 규칙 경계 확정 + 코어 제공분 구현({{DECIDE_RISK_RULES}})
|
||||
- 멀티데이 보호 규칙 경계 문서화 — **전략 모듈 전적 책임** + 운영자 CLI exit 백스톱 명시(코어 구현 없음)
|
||||
- forced_close_at 중장기 의미 확정
|
||||
- baseline 문서(project-structure·runtime-flows) 중장기 운영 갱신
|
||||
- Out of Scope
|
||||
@@ -107,7 +107,7 @@
|
||||
## 리스크
|
||||
|
||||
- R-1 (High): 보호장치 경계가 모호한 채 중장기 인스턴스를 운영하면, safety-sell OFF + 전략 모듈 장애 시 손실 포지션이 무기한 방치된다.
|
||||
- 완화 방안: FR-2 경계 확정을 REQ 인계의 차단 조건으로 둔다. 코어 미제공 결정 시에도 "전략 책임 + 운영자 CLI exit 백스톱"을 운영 절차로 명문화한다.
|
||||
- 완화 방안: **전략 모듈 전적 책임으로 확정(OQ-2)**. 코어는 운영자 CLI `exit` 백스톱만 제공. 보호 규칙 공백 위험은 전략 모듈 설계 및 운영 절차(운영자 수동 CLI)로 완화한다.
|
||||
- R-2 (Medium): 멀티데이 규칙을 기존 safety-sell 워커에 얹으면 당일 경로와 조건 분기가 얽혀 회귀 위험(이슈가 경고한 "분기 폭증")이 생긴다.
|
||||
- 완화 방안: 설계 단계에서 별도 워커/서비스 분리를 우선 검토하고, 당일 경로 테스트 전부를 회귀 게이트로 고정한다.
|
||||
- R-3 (Medium): watchdog 완화가 과도하면 중장기 인스턴스에서 전략 이탈을 영영 감지하지 못한다.
|
||||
@@ -125,21 +125,22 @@
|
||||
## 오픈 질문
|
||||
|
||||
- OQ-1: 구현 위치 최종 확정 — (a′) 기존 슬롯 도메인 + 프로파일/규칙 추가 vs (a) 신규 PositionBook 도메인 병렬 신설. 현행 영구 슬롯이 멀티데이를 이미 지원하므로 (a′) 가 유력하나, 중장기 전용 수명주기 요구(트레일링 상태, 리밸런싱 이력 등)가 슬롯 도메인을 오염시킬 수준인지 판단 필요.
|
||||
- 상태: Open
|
||||
- 처리 방안: Justin Ko 결정 — 본 문서 §3 현재 상태(해소/잔여 갭 재정렬)와 R-2 를 근거로 판단
|
||||
- 종료 조건: confirm-discovery 시 (a′)/(a) 중 확정
|
||||
- 상태: Answered (2026-06-12, Justin Ko)
|
||||
- 결정: **(a′) 기존 슬롯 도메인 유지 + 운영 프로파일/규칙 추가**. 현행 영구 자산 슬롯이 멀티데이 보유를 구조적으로 이미 지원하므로(날짜 없는 슬롯 키, holding 날 경계 통과) 신규 PositionBook 도메인 신설은 불필요. `{{DECIDE_POSITION_BOOK}}` 은 Out of Scope 확정.
|
||||
- 반영 위치: `# 5` 범위 경계({{DECIDE_POSITION_BOOK}} Out of Scope 확정), `# 10` DECIDE 항목.
|
||||
- OQ-2: 멀티데이 보호 규칙의 코어 제공 범위 — 멀티데이 stop-loss / 트레일링 스톱 / 타임스톱(forced_close_at 재해석) 중 코어가 구현할 항목과 전략 모듈 전적 책임으로 둘 항목은?
|
||||
- 상태: Open
|
||||
- 처리 방안: Justin Ko 결정 — R-1(방치 위험) 과 R-2(분기 폭증 위험) 의 균형
|
||||
- 종료 조건: confirm-discovery 시 규칙 목록 확정
|
||||
- 상태: Answered (2026-06-12, Justin Ko)
|
||||
- 결정: **`safety_sell_enabled=false` 인스턴스는 코어 손절매 루틴을 일절 사용하지 않는다.** stop-loss·트레일링 스톱·타임스톱 등 모든 보호 규칙은 전략 모듈의 전적 책임이다. 코어는 운영자 CLI `exit` 백스톱(수동 청산)만 제공한다. R-1(방치 위험)은 전략 모듈 설계 책임 + 운영 절차(운영자 CLI) 로 완화한다.
|
||||
- 반영 위치: `# 5` FR-2(멀티데이 보호 규칙 경계), `# 6` R-1 완화 방안 갱신, `# 10` DECIDE 항목.
|
||||
- OQ-3: watchdog 중장기 정책 — per-instance timeout 연장(일 단위) vs 중장기 인스턴스 비활성화 옵션 중 어느 쪽인가?
|
||||
- 상태: Open
|
||||
- 처리 방안: Justin Ko 결정 — R-3 참고, 기본안은 timeout 연장(가시성 유지)
|
||||
- 종료 조건: confirm-discovery 시
|
||||
- 상태: Answered (2026-06-12, Justin Ko)
|
||||
- 결정: **per-instance timeout 연장**. OQ-4 최대 폴링 주기(10분/600s) 기준으로 per-instance TOML `watchdog_timeout_sec` 설정을 지원하고, 중장기 인스턴스는 1800초(30분) 이상으로 설정한다. `last_seen_at` 가시성은 유지한다.
|
||||
- 알림 후속 주석: watchdog 소유권 진입(전략 이탈 감지) 시 사용자에게 외부 알림(예: 슬랙·이메일 등)을 발송하는 기능을 추후 별도 Discovery 로 구현할 예정이다. 현재 주기에서는 로그 경고(`watchdog ownership entered`) 수준으로 유지하고 알림 채널 연동은 범위 밖이다.
|
||||
- 반영 위치: `# 5` FR-3(watchdog 재정의), `# 10` DECIDE 항목.
|
||||
- OQ-4: 중장기 전략 모듈의 폴링·intent 발신 주기 전제 — 하루 몇 회 슬롯 read/intent 발신을 가정하는가? (watchdog·프로파일 수치의 입력)
|
||||
- 상태: Open
|
||||
- 처리 방안: Justin Ko 가 중장기 전략 운영 계획 제공
|
||||
- 종료 조건: 주기 수치 확보 시
|
||||
- 상태: Answered (2026-06-12, Justin Ko)
|
||||
- 결정: **최소 1분, 최대 10분 주기**로 `trex.slots.req` 호출 및 intent 발신. 빠른 경우 1분 간격, 느린 경우 최대 10분(600s) 간격을 전제.
|
||||
- 반영 위치: OQ-3 watchdog timeout 수치 입력 — 10분 폴링 대비 충분한 여유(권장: 30분 이상).
|
||||
|
||||
# 7. 초기 성공 기준
|
||||
|
||||
@@ -184,10 +185,10 @@
|
||||
|
||||
## DECIDE
|
||||
|
||||
- {{DECIDE_IMPLEMENTATION_LOCATION}}: 구현 위치 — (a′) 기존 슬롯 도메인 + 운영 프로파일/규칙 추가 vs (a) 신규 PositionBook 도메인 병렬 신설 (OQ-1)
|
||||
- {{DECIDE_RISK_RULES}}: 멀티데이 보호 규칙의 코어 제공 범위 — stop-loss/트레일링/타임스톱 중 선택 vs 전략 모듈 전적 책임 (OQ-2)
|
||||
- {{DECIDE_WATCHDOG_POLICY}}: watchdog 중장기 정책 — timeout 연장 vs 비활성화 옵션 (OQ-3)
|
||||
- {{DECIDE_POSITION_BOOK}}: PositionBook 도메인 신설의 In/Out Scope — OQ-1 결정에 종속
|
||||
- ~~{{DECIDE_IMPLEMENTATION_LOCATION}}~~: 구현 위치 — **(a′) 기존 슬롯 도메인 + 운영 프로파일/규칙 추가** 확정 (OQ-1, 2026-06-12, Justin Ko)
|
||||
- ~~{{DECIDE_RISK_RULES}}~~: 멀티데이 보호 규칙 — **전략 모듈 전적 책임** 확정. `safety_sell_enabled=false` 시 코어 손절매 루틴 미제공, 운영자 CLI exit 백스톱만 유지 (OQ-2, 2026-06-12, Justin Ko)
|
||||
- ~~{{DECIDE_WATCHDOG_POLICY}}~~: watchdog 중장기 정책 — **per-instance timeout 연장** 확정 (OQ-3, 2026-06-12, Justin Ko). 알림 연동은 후속 Discovery.
|
||||
- ~~{{DECIDE_POSITION_BOOK}}~~: PositionBook 도메인 신설 — **Out of Scope 확정** (OQ-1 결정, 2026-06-12, Justin Ko)
|
||||
|
||||
## CONFIRM
|
||||
|
||||
|
||||
Reference in New Issue
Block a user