포함 내용: - Phase P/Q/R/S 설계 문서 (IMPROVEMENT-PHASE-*.md) - 영역별 검증 스크립트 (scripts/verify_*.py, test_*.py) - 블록 템플릿 추가 (cards, emphasis 변형) - 코드 수정: block_search, content_editor, design_director, slide_measurer - catalog.yaml 블록 목록 업데이트 - CLAUDE.md, PROGRESS.md, README.md 업데이트 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
3.8 KiB
3.8 KiB
Design Agent 개선 사항 (Action Plan)
2026-03-28 갱신: Phase Q 설계 확정에 따른 재정리
상황 요약
- Phase P 실행 완료: 결과 20/100점. 다후보 렌더링 비교 방식의 구조적 한계 확인.
- Phase Q 설계 확정: 업계 조사 기반 재설계 — 제약 기반 블록 선택 + 글자수 예산 시스템.
- 기존 P0-P2 버그: Phase Q에서 구조적으로 해결되는 항목과 여전히 유효한 항목 분류.
기존 버그 → Phase Q 영향 분석
🟡 P0: 무한 재시도 루프 — 여전히 유효
Phase Q와 무관. _retry_kei()는 Phase Q에서도 사용됨.
- 수정 필요: MAX_RETRY_ATTEMPTS = 30, MAX_RETRY_DURATION = 300 추가
- 시점: Phase Q 구현 시 함께 적용
- 파일:
src/pipeline.py
✅ P1: fill_candidates 실패 감지 — Phase Q에서 자동 해결
Phase Q에서 fill_candidates() 자체가 제거됨.
- Phase P의 3후보 텍스트 편집 → Phase Q의 단일 블록 텍스트 편집으로 변경
fill_candidates()대신fill_content()에 예산 제약 추가- 별도 수정 불필요 — Phase Q-5 (pipeline.py 재구성)에서 해결
🟡 P2: template 미발견 예외 처리 — 여전히 유효
Phase Q와 무관. 템플릿 로딩은 여전히 필요.
- 수정 필요:
_resolve_template_path()명확한 에러 반환 - 추가 효과: Phase Q의 catalog 검증(Q-2)이 사전에 잘못된 블록을 걸러내므로, 이 에러 발생 빈도 대폭 감소
- 시점: Phase Q 구현 시 함께 적용
- 파일:
src/renderer.py
✅ P3: Phase L 비효율성 — Phase Q에서 자동 해결
Phase Q에서 Phase L이 "피드백 루프 3회" → "검증 렌더링 1회"로 축소.
- 글자수 예산 사전 계산으로 overflow 사전 방지
- 렌더링은 검증 목적 1회만
- overflow 발생 시 수학적 조정(LaTeX 글루 모델)으로 AI 없이 해결
- 별도 수정 불필요 — Phase Q-5, Q-7에서 해결
Phase Q 실행 계획
실행 순서
Q-1 (catalog 보강) ──┬──→ Q-2 (블록 필터) ──┐
└──→ Q-3 (예산 계산) ──┼──→ Q-4 (Kei 선택) ──→ Q-5 (파이프라인) ──→ Q-6 (품질 게이트) ──→ Q-8 (출력 차단)
│
Q-7 (글루 모델) ←──────────────────────────┘ (독립, 병렬 가능)
P0 수정 (재시도 제한) ←── Q-5에서 함께 적용
P2 수정 (템플릿 에러) ←── Q-5에서 함께 적용
기대 효과
| 지표 | 현재 (Phase P) | Phase Q 목표 |
|---|---|---|
| 슬라이드 품질 | 20/100 | 70-80/100 |
| 처리 시간 | ~40분 | ~8-12분 |
| API 호출 | ~25회 | ~8회 |
| Selenium 호출 | ~17회 | ~2회 |
| 유령 블록 | 5건 발생 | 불가능 (catalog 검증) |
| overflow 출력 | 허용 | 차단 (품질 게이트) |
| 블록 다양성 | 3/38 사용 | relation_type 기반 자동 분산 |
Phase R': 접근 C — 블록 CSS 참고 + AI 구조 결정 (다음 단계)
상세: IMPROVEMENT-PHASE-R-PRIME.md
Phase R(variant 패치)은 실패 — P=Q=R 동일 구조 반복. Phase R'은 근본 구조를 변경:
- 2-3단계(블록 선택 + 슬롯 채우기) 제거
- AI가 블록 CSS를 참고하여 HTML 구조를 직접 생성
- 콘텐츠가 구조를 결정 (블록이 결정하는 것이 아님)
합격 기준: C_reference.png 수준 자동 생성.
회귀 방지: block_selector, fill_candidates, fill_content 호출 금지.
Phase R' 이후 (참고)
- 디자인 참조 DB 구축 → 성공한 슬라이드를 few-shot으로 축적
- Playwright 마이그레이션 → 더 빠른 측정 + PDF 내보내기