# ThreadAuto 렌더러 디자인 수정 3건 + 아래정렬 재확인 + 테스트 업로드

## 프로젝트 경로
- `/home/jay/projects/ThreadAuto/`
- 핵심 파일: `renderer/cardnews.py`

## 작업 개요
렌더러 디자인 수정 3건 + 기존 아래정렬 동작 재확인 후, 풀 파이프라인 테스트(업로드까지) 진행.

---

## Phase 1: 코드 수정 (4건)

### 수정 1. 표지(COVER) 제목-부제 간격 3배
- **위치**: `render_cover()` 메서드, **line 762** 부근
- **현재값**: `y += 24` (제목 렌더링 후 부제 시작 전 간격)
- **변경**: `y += 72` (24 × 3 = 72px)
- 클래스 상수로 추출 권장: `COVER_TITLE_SUBTITLE_GAP: int = 72`

### 수정 2. 구분선(divider) 스타일 통일 — 굵은 실선
- **위치**: `_draw_divider()` 메서드, **lines 272-305**
- **현재**: `page_num % 4`로 4가지 스타일 로테이션
  - v0: 실선 4px / v1: 테이퍼(5px→2px) / v2: 이중선 / v3: 점선(8px 세그먼트)
- **변경**: 모든 variant 제거, **굵은 실선 1종으로 통일**
  - 높이(두께): 5~6px 정도의 굵은 실선 (기존 v0의 4px보다 약간 두꺼움)
  - 색상: 기존 `theme.accent_color` 유지
  - variant 파라미터는 유지하되 무시 (호환성)
- **주의**: `render_cover()`, `render_card_list()`, `render_detail()` 등에서 호출하는 부분은 수정 불필요 (메서드 내부만 변경)

### 수정 3. 텍스트박스 내부 왼쪽 여백 2.5배
- **위치**: 클래스 상수, **lines 140-142**
- **현재값**:
  - `ACCENT_BAR_WIDTH = 6` (유지)
  - `ACCENT_BAR_GAP = 16` → `40` (16 × 2.5 = 40)
  - `ACCENT_TEXT_X_OFFSET = 22` → `46` (6 + 40 = 46). 또는 단순히 `22 * 2.5 = 55`로 계산
- **의도**: 악센트 바와 텍스트 사이 여백을 넓혀서 텍스트가 바에서 더 떨어지게
- **영향 범위**: `_draw_info_box()`, card_list, detail, TIP 박스 등 ACCENT_TEXT_X_OFFSET 사용하는 모든 곳
- **DESC_INDENT는 비례 조정 검토**: 현재 30px인데, 텍스트 오프셋이 늘어나면 description도 비례해서 조정 필요한지 확인

### 확인 4. 아래정렬(bottom-align) 동작 재확인
- **위치**: `_draw_info_box()` lines 615-617, detail 슬라이드 lines 1019-1021
- **확인**: description이 짧은 경우 하단 정렬이 시각적으로 명확히 보이는지 확인
- **필요시**: 렌더링 후 02, 03 슬라이드 이미지를 육안 검증

---

## Phase 2: pyright 타입 체크
- 수정 후 `cd /home/jay/projects/ThreadAuto && pyright renderer/cardnews.py` 실행
- 에러 0건 확인

## Phase 3: 풀 파이프라인 테스트 (업로드까지)
- 파이프라인 실행: 토픽 선택 → 콘텐츠 생성 → 렌더링 → Threads 업로드
- 실행 방법:
```bash
cd /home/jay/projects/ThreadAuto
source /home/jay/workspace/.env.keys
python3 -c "
from pipeline import run_pipeline
result = run_pipeline(upload=True)
print(result)
"
```
- 또는 기존 테스트 스크립트가 있으면 활용
- 업로드 성공 시 Post ID 보고
- 렌더링된 이미지 5장(COVER~SUMMARY_CTA)을 `/home/jay/projects/ThreadAuto/output/` 에 보존

## 완료 조건
1. 3건 코드 수정 완료 + pyright 에러 0건
2. 아래정렬 시각 확인
3. Threads 업로드 성공 + Post ID
4. 렌더링된 이미지 경로 보고