# task-695.1: prompts_v2.py 카드뉴스 텍스트 규칙 보강

## 목표
카드뉴스 슬라이드의 제목 간결화, 설명 길이 제한, 존대말 사용을 prompts_v2.py에 규칙으로 추가한다.

## 배경 (제이회장님 피드백)
현재 생성된 카드뉴스의 문제점:
1. **제목이 너무 길다** — "서울대보험쌤의 해석: 이건 위기가 아니라 구조 변화다" (4줄), "지금 보험 영업 현장에서 무슨 일이 벌어지고 있나" (5줄). 텍스트박스를 넘침.
2. **반말 사용** — "대세가 됐다", "따라오고 있다", "진입장벽, 즉 보호막이다", "최강의 무기다" 등. 존대(입니다/습니다)로 변경 필요.
3. **설명(description/value) 오버플로우** — 텍스트박스를 벗어나 "더...", "보험사에..." 로 잘림. 다른 잘 된 카드는 3줄로 깔끔하게 표기됨.

## 수정 대상
- `/home/jay/projects/ThreadAuto/content/prompts_v2.py` — `_OUTPUT_FORMAT_BLOCK` (line 51~138)

## 추가할 규칙

### 1. `_OUTPUT_FORMAT_BLOCK`의 `## 슬라이드 구성 규칙` 섹션(line 128~)에 추가:

```
## 텍스트 길이·어조 규칙 (필수)
- **슬라이드 제목(title)**: 15자 이내. 간결한 키워드형으로 작성. 긴 문장 금지.
  - 나쁜 예: "서울대보험쌤의 해석: 이건 위기가 아니라 구조 변화다" (25자)
  - 좋은 예: "규제 = 기회입니다" (9자)
- **카드 항목 제목(items의 title)**: 15자 이내.
  - 나쁜 예: "GA 소속 설계사에게 SNS는 최강의 무기다" (20자)
  - 좋은 예: "SNS는 최강의 무기" (9자)
- **카드 항목 설명(description/value)**: 40~80자. 3줄 이내로 요약. 텍스트박스를 절대 넘기지 마세요.
  - 나쁜 예: "GA(General Agency)란 여러 보험사의 상품을 비교 판매할 수 있는 독립 법인대리점이다. 특정 보험사에..." (잘림, 90자+)
  - 좋은 예: "여러 보험사 상품을 비교 판매할 수 있는 독립 법인대리점입니다. 전속보다 자유도가 높습니다." (47자)
- **존대 필수**: 모든 슬라이드 텍스트는 존대(입니다/습니다/됩니다/있습니다)로 작성하세요.
  - 반말("~이다", "~했다", "~된다") 사용 금지.
  - cover의 hook은 예외적으로 반말 가능 (훅킹용).
```

### 2. 기존 규칙 수정 (line 134~137):
현재: "각 항목의 설명(description/value)은 반드시 40자 이상으로 작성하세요."
변경: "각 항목의 설명(description/value)은 40자 이상 80자 이하로 작성하세요. 3줄을 넘기지 마세요."

## 검증 방법
1. 수정 후 ContentGeneratorV2로 카드뉴스 1건 재생성
2. 생성된 JSON의 각 슬라이드 검증:
   - title 15자 이내 확인
   - description/value 40~80자 확인
   - 존대(입니다/습니다) 사용 확인
   - 반말(~이다/~했다/~된다) 미사용 확인
3. CardNewsRenderer로 렌더링 후 이미지에서 텍스트박스 오버플로우 없음 확인

## 산출물
- 수정된 prompts_v2.py diff
- 재생성된 카드뉴스 JSON 샘플 (검증용)
- 렌더링된 이미지 경로 (시각적 확인용)

## 제약사항
- prompts_v2.py만 수정. 렌더러(cardnews.py)는 건드리지 말 것.
- 기존 카테고리별 톤앤매너(_TONE_GUIDES)와 슬라이드 가이드(_SLIDE_GUIDES)는 변경 불요.
- caption 규칙은 변경하지 말 것.
