# ThreadAuto 짧은 텍스트 대응 — 폰트 동적 확대 + 콘텐츠 최소 글자 수 강제

## 프로젝트 경로
- `/home/jay/projects/ThreadAuto/`

## 작업 개요
텍스트박스 내 텍스트가 20자 이내로 짧을 때 박스가 너무 비어보이는 문제 해결.
두 가지 접근을 병행한다.

---

## 수정 1. 렌더러 — 짧은 텍스트 시 폰트 동적 확대

### 위치
- `renderer/cardnews.py` → `_draw_info_box()` 메서드

### 현재 상태
- title 폰트: 48pt (고정)
- description 폰트: 36pt (고정, 오버플로우 시 30pt까지 축소)
- box 최소 높이: 140px

### 변경 로직
- description 텍스트 길이를 기준으로 폰트 크기 동적 조절:
  - description 20자 이하: desc 폰트 44pt, title 폰트 52pt
  - description 21~40자: desc 폰트 40pt, title 폰트 50pt
  - description 41자 이상: 기존 유지 (desc 36pt, title 48pt)
- 폰트가 커지면 content_h도 커지므로 박스 내 빈 공간이 자연스럽게 줄어듦
- `_draw_info_box`의 파라미터에 이미 `desc_font_size` 있으므로, 호출 측에서 조건 분기하거나 내부에서 자동 판단

### 주의사항
- 폰트 확대 시 텍스트가 박스 너비를 넘지 않도록 wrap_text 결과 확인
- 확대된 폰트로 wrap 했을 때 줄 수가 늘어나면 원래 폰트 크기로 폴백
- DETAIL 슬라이드와 CARD_LIST 슬라이드 모두 적용

---

## 수정 2. 콘텐츠 생성기 — 최소 글자 수 강제

### 위치
- `content/generator_v2.py` 또는 콘텐츠 생성 프롬프트 파일

### 변경 내용
- 콘텐츠 생성 프롬프트에 최소 글자 수 가이드라인 추가:
  - 각 슬라이드 항목의 description(설명)은 **최소 40자 이상** 작성
  - 짧은 키워드 나열 대신, 1~2문장의 구체적 설명으로 작성
  - 예시: ❌ "자동화 구축" (5자) → ✅ "네이버 파이프라인과 AI 마케팅 자동화로 24시간 고객이 먼저 찾아오는 구조를 만듭니다." (43자)
- 프롬프트 지시문에 추가할 문구:
  ```
  각 항목의 설명(description/value)은 반드시 40자 이상으로 작성하세요.
  짧은 키워드가 아닌, 구체적인 설명 1~2문장으로 작성해야 합니다.
  ```

### 위치 확인
- generator_v2.py 또는 콘텐츠 생성에 사용되는 프롬프트 파일을 찾아서 수정
- 프롬프트 템플릿이 별도 파일이면 그 파일을, 코드 내 인라인이면 코드를 수정

---

## 검증
1. pyright 에러 0건
2. 짧은 텍스트(10자) / 중간(30자) / 긴 텍스트(60자) 각각 렌더링 테스트
3. 폰트 확대 시 wrap 정상 동작 확인
4. 콘텐츠 생성 프롬프트에 최소 글자 수 반영 확인

## 완료 조건
1. 짧은 텍스트 시 폰트 확대 동작 확인 (테스트 이미지 저장)
2. 콘텐츠 생성 프롬프트에 40자 최소 가이드 반영
3. pyright 에러 0건
4. 테스트 이미지 `/home/jay/projects/ThreadAuto/output/task-short-text/` 에 보존