# task-786.1 발견 이슈 2건 개선

## 이슈 1: 슬라이드 cover 타입 검증 실패
- **파일**: `/home/jay/projects/ThreadAuto/content/five_stage_pipeline.py` (198-202줄)
- **현상**: LLM 응답에서 첫 슬라이드의 `type` 필드가 `None`으로 반환되어 `ValueError` 발생
- **에러**: `ValueError: 첫 번째 슬라이드가 cover여야 합니다. 현재: None`

### 수정 방향
검증 전에 자동 보정 로직을 추가한다. `_validate_slides()` 호출 전 또는 내부에서:
- 첫 슬라이드의 `type`이 None이거나 누락이면 → `"cover"`로 자동 설정
- 마지막 슬라이드의 `type`이 None이거나 누락이면 → `"cta"`로 자동 설정
- 중간 슬라이드의 `type`이 None이면 → `"card_list"` 또는 `"detail"`로 추론 (items 필드 유무로 판단)
- 자동 보정 시 WARNING 로그 출력

## 이슈 2: 스케줄 중복 실행 시 결과 파일 충돌
- **파일**: `/home/jay/projects/ThreadAuto/run_card_post.py` (154줄)
- **현상**: 동시에 2개 프로세스가 `run_card_post.py`를 실행하면 결과 JSON을 같은 경로(`output/cardnews_post_result.json`)에 쓰기 때문에 한쪽 결과가 덮어씌워짐

### 수정 방향
결과 JSON 파일명에 타임스탬프를 포함하여 충돌 방지:
```python
# 기존 (154줄):
output_path = "/home/jay/projects/ThreadAuto/output/cardnews_post_result.json"

# 변경:
from datetime import datetime
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
output_path = f"/home/jay/projects/ThreadAuto/output/cardnews_post_result_{timestamp}.json"
```
- `latest` 심볼릭 링크나 고정 경로에 최신 결과를 복사하는 것도 선택적으로 고려

## 체크리스트
- [ ] 이슈 1: 슬라이드 타입 자동 보정 로직 추가
- [ ] 이슈 1: WARNING 로그 출력 확인
- [ ] 이슈 2: 결과 JSON 파일명에 타임스탬프 추가
- [ ] 기존 테스트 회귀 없음 확인
- [ ] 수정 후 카드뉴스 생성 테스트 1회 실행하여 정상 동작 확인

## 주의사항
- 검증 로직(`_validate_slides`)의 기존 에러 체크 구조는 유지. 보정 로직을 검증 전에 추가할 것
- `run_card_post.py`의 다른 로직은 변경하지 말 것