# BAT-046 Planning - Status: confirmed - Batch: BAT-046 - Profile: standard ## Included REQ - REQ-086 (청산 reason+actor 노출, Approved) - REQ-088 (운영 조회 CLI, Approved) - REQ-089 (운영자 런북, Approved) - REQ-090 (관측성 baseline 정합, Approved) ## Delivery Plan 1. REQ-086: `safety_sell._log_fire` 에 actor 동반 + `interface-contract.md` reason+actor 어휘 절 추가. 2. REQ-088: `application/operator_report.py`(순수 집계: holdings/pending/realized PnL net + KST 경계) + `cli.py` `report` 서브커맨드(direct-DB psycopg) + 단위 테스트. 3. REQ-089: `docs/operations.md` 신설(배포/CLI/로깅·관측성/디버깅 4영역). 4. REQ-090: `runtime-flows.md`(로깅/관측성 + report 흐름) + `project-structure.md`(logging_setup·operator_report·operations.md) 정합. ## Dependencies - Internal: BAT-045(P0 로깅 기반) 선행 — report/로그가 그 위에 동작. REQ-086 로그는 P0 로깅 포맷 활용. - External: psycopg(report direct-DB). 기존 의존, 신규 없음. ## Design Gate - Design Required Before Implementation: yes - Reason: 실현 PnL 정의(net 현금흐름 vs cost-basis), report 표면(CLI/direct-DB), reason+actor 노출 방식(신규 필드 없음) 결정 필요. ## Milestones 1. operator_report 순수 집계 + 단위 테스트 green. 2. report CLI + safety_sell actor + interface-contract. 3. 런북 + baseline 정합 + 전체 회귀. ## Risks - 실현 PnL net 정의가 cost-basis 매칭 PnL과 다름 → 런북·계약 문서에 정의 명시(미청산 평가손익 제외). - report direct-DB 는 단위 미검증(psycopg) — 집계 순수 함수로 검증하고 DB 와이어링은 release 운영 검증(pause/resume 선례).