# 시나리오 검증 시스템 Phase 3 — 운영 안정화 + 미해결 이슈

## Lv.2 작업

## task-1768.1 미해결 이슈 2건 + Phase 3 체크리스트 통합

### 1. storageState TTL 갱신 (미해결 #1)
Firebase ID Token이 1시간 후 만료 → Playwright 테스트 실패.

수정:
- `setup_auth.py`에 `--refresh` 옵션 추가
- storageState.json의 mtime 확인 → 50분 이상이면 자동 갱신
- `scenario_runner.py`의 playwright 러너에서 실행 전 TTL 체크 + 필요 시 갱신 호출

### 2. Playwright 순차 실행 분리 (미해결 #2)
Playwright는 단일 스레드 권장인데 ThreadPoolExecutor에서 실행 중.

수정:
- `scenario_runner.py`에서 시나리오를 type별로 분류
- `subprocess`/`curl`/`pytest` → ThreadPoolExecutor 병렬 (기존 유지)
- `playwright` → **순차 실행** (별도 루프)
- 실행 순서: 병렬 러너 먼저 → playwright 순차 실행

### 3. LLM 시나리오 초안 생성 프롬프트
- `scenario_generator.py` 신규 생성
- 입력: task 파일(수정 내용) + 변경 파일 목록
- 출력: 시나리오 YAML 초안 (검증 필요 표시)
- 프롬프트: 변경 내용 기반으로 발생 가능 시나리오 발산
- Lv.3: 15~30개, Lv.4: 30~50개
- 출력 위치: `scenarios/{project}/generated/{task_id}.yaml`
- 생성된 시나리오는 아누 승인 전까지 `automatable: false`

### 4. 시나리오 축적 관리
- `scenarios/` 디렉토리에 `.gitkeep` 추가
- 프로젝트별 시나리오 카운트 표시 (scenario_runner.py --stats 옵션)
- 중복 시나리오 감지 (id 기준)

## 참조
- Phase 2 결과: `/home/jay/workspace/teams/shared/qc/` (scenario_runner.py, setup_auth.py)
- Phase 1-2 보고서: `memory/reports/task-1761.1.md`, `task-1762.1.md`, `task-1768.1.md`
- 3문서: `memory/plans/scenario-verification/`
- 미팅 기록: `memory/meetings/2026-04-13-scenario-verification-system.md`

## 검증 시나리오
1. storageState.json 생성 후 55분 경과 → playwright 시나리오 실행 시 자동 갱신 확인
2. playwright 시나리오 3개 + subprocess 시나리오 5개 → subprocess는 병렬, playwright는 순차 실행 확인
3. `scenario_generator.py --task-file task-xxx.md --level 3` → YAML 15개+ 생성 확인
4. 생성된 YAML의 `automatable: false` 확인
5. `scenario_runner.py --stats` → 프로젝트별 시나리오 카운트 표시 확인
6. 전체 실행 시간 5분 이내 확인

## 보고서
`/home/jay/workspace/memory/reports/task-{TASK_ID}.md`
