docs(bat-037): verification confirmed — AC-3/AC-6 evidence 연결, Ready for Release

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 10:29:44 +09:00
co-authored by Claude Sonnet 4.6
parent 6c24bd4c2c
commit 4b6996a5bf
@@ -1,23 +1,44 @@
# BAT-037 Verification
- Status: draft
- Status: confirmed
- Batch: BAT-037
## Acceptance Mapping
- REQ-073 AC-3: 응답 키 집합에 `available_slots` 포함, `assets`/`watchdog`/strategy 계열 제외
- Evidence: 구현 후 기록
- REQ-073 AC-6: `max_active_slots` 미설정 → `null`, 설정 시 `max(0, M − count_active)`
- Evidence: 구현 후 기록
- REQ-073 AC-1/2/4/5: 회귀 없음
- Evidence: 구현 후 기록
- REQ-073 AC-1 (토폴로지 — `trex.slots.req` 존재, `trex.snapshot.req` 부재):
- 이번 배치 변경 범위 밖. BAT-035 evidence 유효(handler wiring 경로는 유지됨).
- Evidence: `pytest tests/` 423 passed — 회귀 없음.
- REQ-073 AC-2 (filter 동작 — inactive/pending/holding/all):
- Evidence: `test_filter_*` 5개 PASSED (`test_slots_handler.py`).
- REQ-073 AC-3 (응답 키 집합 — `available_slots` 포함, `assets`/`watchdog`/strategy 제외):
- Evidence: `test_response_keys_only_slots_health` PASSED.
- `set(resp.payload.keys()) == {"slots", "available_slots", "degraded", "reason", "message"}`
- `"assets" not in resp.payload`, `"watchdog" not in resp.payload` 확인.
- REQ-073 AC-4 (spy=True → 워치독 미갱신 / spy=False → 갱신):
- Evidence: `test_spy_true_no_watchdog_update`, `test_spy_false_updates_watchdog` PASSED.
- REQ-073 AC-5 (degraded 신호 전파):
- Evidence: `test_degraded_signal_propagated` PASSED.
- REQ-073 AC-6 (`available_slots` 값 규칙):
- Evidence:
- `test_available_slots_null_when_uncapped`: `max_active_slots=None` → `available_slots=null` PASSED.
- `test_available_slots_remaining_capacity`: M=2, active=0 → 2; active=1 → 1 PASSED.
- `test_available_slots_zero_when_full`: M=1, active=1 → 0 PASSED.
## Evidence
- Test:
- 구현 후 기록
- `pytest tests/application/test_slots_handler.py` — 16 passed (신규 AC-6 3개 포함)
- `pytest tests/` — 423 passed, 45 skipped, 회귀 없음
- Manual:
- 구현 후 기록
- Architecture Impact: none (design.md 확인) — `docs/project-structure.md`, `docs/runtime-flows.md` 동기화 불필요.
- `daemon.py` wiring: `max_active_slots=self.config.max_active_slots` 전달 경로 코드 리뷰 확인.
## Result
- Ready for Release: false
- Blocking Issues:
- 구현 전
- Ready for Release: true
- Blocking Issues: 없음