# task-348.1 완료 보고서: CTA 큰 제목 짧은 문장 2개 각줄 표기

## 작업 내용
CTA 슬라이드의 큰 제목(title)이 짧은 문장 2개로 구성된 경우, 마침표 기준으로 각 문장을 별도 줄에 표기하는 로직 추가.

## 변경 파일
- `/home/jay/projects/ThreadAuto/renderer/cardnews.py`
  - `apply_period_break_to_lines()` 메서드 신규 추가 (마침표 기반 분리, 각 부분 15자 이하 조건)
  - `render_summary_cta()` 제목 처리 파이프라인 확장: 쉼표 → 마침표 → 접속사 순서

- `/home/jay/projects/ThreadAuto/tests/test_cta_linebreak.py`
  - `TestCtaTitlePeriodBreak` 클래스 추가 (3개 테스트)
  - `TestCtaTitleShortSentenceRendersOk` 클래스 추가 (1개 테스트)
  - `TestCtaTitleCommaShortSentence` 클래스 추가 (1개 테스트)

## 구현 상세

### apply_period_break_to_lines() 로직
1. 입력이 1줄이 아니면 그대로 반환
2. `". "` (마침표+공백) 패턴으로 분리 위치 탐색
3. 분리된 각 부분이 15자 이하인 경우에만 분리
4. PIL textbbox로 픽셀 폭 max_width 이내 검증 후 2줄 반환

### render_summary_cta() 제목 파이프라인
```
fit_font_size() → apply_comma_break_to_lines() → apply_period_break_to_lines() → apply_conjunction_break_to_lines()
```

## 테스트 결과
- 전체 16개 테스트 PASS (기존 11개 + 신규 5개)
- TDD 준수: RED(테스트 먼저 작성, FAIL 확인) → GREEN(구현 후 PASS)

### 테스트 케이스
- "좋습니다. 확인이 더 좋습니다" → 2줄 분리 (마침표 기반) ✅
- "시작이 막막한 분, 같이 설계해드립니다" → 2줄 분리 (쉼표 기반) ✅
- "긴문장한줄만있는경우" → 분리 안 됨 ✅
- "좋습니다." → 끝 마침표만 있으면 분리 안 됨 ✅
- 마침표 포함 제목 render_summary_cta 렌더링 정상 ✅

## 코드 품질
- black + isort 포매팅 완료
- pyright WARN 4건: 모두 기존 import 경로 해석 이슈 (프로젝트 구조 특성, 이번 변경과 무관)

## 버그
- 없음

## 소요 시간
6분 37초

## QC 자동 검증 결과
- file_check: PASS
- data_integrity: PASS (timer 종료 완료)
- test_runner: FAIL (기존 test_evergreen_topics.py 1건 실패 — 이번 변경과 무관. task-348.1 관련 16개 테스트 전부 PASS)
- tdd_check: PASS
- pyright_check: WARN (기존 import 경로 해석 이슈 4건, 이번 변경과 무관)
- style_check: PASS
