# BAT-004 Planning ## 구현 전략 1. `REQ-004`를 Testing 요구사항으로 정리한다. 2. 운영 DB와 실제 금융 파일을 배제한 synthetic fixture DB를 evidence script가 직접 생성한다. 3. Streamlit은 `JARCA_LEDGER_DB_PATH=`로 기동한다. 4. `/usr/bin/google-chrome-stable` headless + Chrome DevTools Protocol로 대상 페이지를 열고, 화면 텍스트 로드 완료를 확인한 뒤 screenshot과 DOM snapshot을 저장한다. 5. UI/dashboard 영향 batch의 QC gate 기준을 문서화한다. ## Design Gate - Profile: `batch-lite` - 판단 근거: 신규 도메인 기능이나 DB schema 변경 없이 검증 스크립트와 문서 기준을 추가한다. - 설계 문서 별도 작성 여부: 별도 `design.md`는 만들지 않는다. 구현 결정은 이 planning 및 REQ-004에 충분히 국소적으로 기록한다. ## Evidence Gate 기준 | Batch 유형 | 최소 evidence | Gate 판정 | | --- | --- | --- | | Streamlit UI 또는 `dashboard/app.py` 영향 | Browser screenshot + DOM snapshot + manifest | 누락 시 BLOCK 또는 재검증 | | 비-UI service/MCP/parser 변경 | pytest/py_compile 중심, browser evidence 선택 | browser 누락은 비차단 | | docs-only 변경 | 문서 diff/review | browser evidence 불필요 | | Chrome 환경 장애가 입증된 UI 변경 | AppTest + HTTP 200 + 실패 원인 로그 | `PASS_WITH_NOTES`만 허용 | ## 리스크와 완화 - Chrome/DevTools 기동 실패: 실행 전 Chrome 경로를 검증하고 명확한 오류를 출력한다. - Streamlit 렌더링 지연: HTTP 200 대기 후 CDP에서 page 제목 텍스트가 실제 DOM에 나타날 때까지 대기한다. - 민감정보 노출: script가 기본 운영 DB 경로를 거부하고 synthetic fixture만 생성한다. - dependency 증가: Playwright/Selenium을 추가하지 않고 현재 dashboard extra에 이미 존재하는 `websockets`를 사용한다.