# BAT-022: 슬롯 상태 스냅샷 가시화 — `slots` 명령이 universe 대신 실제 슬롯 상태 표시 (dcy-016 후속) - Status: released - Profile: standard - Source Discovery: dcy-016 (후속 change-req) - Included REQ: REQ-028 (CHG-20260608-01), REQ-032 (CHG-20260608-03) ## Summary - dcy-016 으로 추가된 `trex-core slots` 가 snapshot RPC 의 universe `assets`(portfolio: asset_id/symbol/asset_quantity)를 **슬롯 상태로 오인 표시**하던 갭을 정정한다(운영 관측: 10개 슬롯인데 universe 1개·status 없음). 근인은 BAT-007 에서 HTTP 슬롯 read(REQ-008/025) 제거 후 **슬롯 상태 read 표면 부재** + snapshot envelope 이 슬롯 상태를 운반하지 않음. - 핵심: snapshot envelope 에 read-only per-slot `slots[]`(`slot_id`/`status`/`symbol`/`qty`/`limit_price`/`avg_price`/`portfolio_id`)를 **additive** 추가(REQ-028 AC-4)하고, `trex-core slots` 가 이를 표시(REQ-032). strategy-facing `assets[]`(universe) 계약은 불변, `universe` 명령은 `assets[]` 유지로 둘을 명확히 분리. dcy-017 의 per-slot `watchdog[]` 동봉 선례와 동일 방식. ## Scope - In Scope: - snapshot envelope 에 read-only `slots[]` 필드 추가 (REQ-028 AC-4) — `build_snapshot_envelope` - `trex-core slots` 가 `slots[]`(실제 슬롯 상태, `status` 포함)를 표시, `--status` 필터를 슬롯 상태 기준으로 적용 (REQ-032) - `universe` 명령은 `assets[]`(universe) 유지 — 두 명령 표면 분리 - watchdog-owned 표시(REQ-032 CHG-20260608-02)를 `slots[]` 항목과 결합 - interface-contract 정합 (snapshot 응답 `slots[]` 필드) - Out of Scope: - strategy-facing `assets[]`(universe) 계약 변경 (불변) - 슬롯 상태 도메인/전이 로직 변경 (가시화·노출만) - WatchdogStore in-memory → 영속 승격 - 신규 슬롯 read RPC/HTTP 표면 (기존 snapshot envelope 확장으로 충족) ## Documents - Planning: [planning.md](./planning.md) - Design: [design.md](./design.md) - Implementation: [implementation.md](./implementation.md) - Verification: [verification.md](./verification.md) ## Notes - Source discovery 단일(dcy-016 후속). REQ-028 CHG-20260608-01 / REQ-032 CHG-20260608-03 change-req 로 두 REQ 가 Implemented→Approved 로 내려옴. - 설계 정합성: dcy-017/BAT-021 이 이미 envelope 에 top-level `watchdog[]` 를 additive 동봉한 선례 → `slots[]` 도 동일 패턴(additive, strict envelope 비파괴). - 1차 게이트: 전체 회귀 green — strategy `assets[]`(REQ-028 AC-1~3)·snapshot 동작 무회귀(필드 추가만). - `slots[]` 와 `watchdog[]` 는 둘 다 슬롯 단위 read-only projection — CLI `slots` 에서 결합 표시.