고도화 Phase 2 보완 — 통합 테스트 + 커버리지

## 작업 개요
1팀이 중단된 task-52.1의 남은 작업. 통합 테스트 작성 + 커버리지 리포트 생성.
참고: TestCLIMain 버그는 이미 수정됨 (128개 전체 PASS).

## 세부 작업

### 1. 통합 테스트 작성 (tests/test_integration.py)
모듈 간 연동을 검증하는 통합 테스트 5개 시나리오:

시나리오 1: dispatch 전체 흐름
- dispatch.generate_task_id() -> build_prompt() -> get_dispatch_time() 순차 호출
- 각 단계 결과가 다음 단계에 올바르게 전달되는지 검증
- tmp_path로 WORKSPACE 격리 필수

시나리오 2: task-timer 전체 라이프사이클
- start -> list(running 확인) -> end -> list(completed 확인) 전체 흐름
- tmp_path로 격리

시나리오 3: 로거 + 에러 추적 연동
- utils/logger.py로 로그 기록 -> utils/error_tracker.py로 에러 기록 -> get_recent_errors()로 조회
- tmp_path에 로그파일 격리

시나리오 4: team_prompts 전팀 프롬프트 생성
- dev1/dev2/dev3 모든 팀에 대해 build_prompt() 호출
- direct 타입(1,2팀)은 팀원 이름 포함 확인
- glm 타입(3팀)은 openclaw 키워드 포함 확인

시나리오 5: run_tests.py 실행 검증
- subprocess로 python3 tests/run_tests.py 실행
- stdout을 JSON 파싱하여 total, passed, failed 키 존재 확인
- passed == total 확인

### 2. 커버리지 리포트 생성
- pytest-cov로 전체 커버리지 측정
- pyproject.toml에 [tool.coverage] 설정 추가 (없으면)
- 커버리지 결과를 tests/coverage-report.txt에 저장
- 명령: python3 -m pytest tests/ --cov=. --cov-report=term-missing > tests/coverage-report.txt

## 기존 테스트 참고
- tests/test_dispatch.py — dispatch_mod fixture (tmp_path 격리 패턴 참고)
- tests/test_task_timer.py — TaskTimer 격리 패턴 참고
- tests/test_team_prompts.py — patched_build_prompt fixture 참고

## 검증 기준
- 통합 테스트 5개 시나리오 모두 통과
- 전체 pytest 0 failures (기존 128개 + 통합 5개 = 133개+)
- coverage-report.txt 생성 확인