블록 선택 방식(Phase P/Q/R) 폐기 → Claude Sonnet이 영역별 HTML 직접 생성. 생성-검증 분리: content_verifier.py로 텍스트 보존/금지 콘텐츠/구조를 코드 검증. 주요 변경: - src/html_generator.py: 4개 프롬프트 템플릿(BG/CORE/SIDEBAR/FOOTER) + 영역별 Claude 호출 - src/content_verifier.py: L1 텍스트 보존, L2 금지 콘텐츠, L3 구조 검증 + 재시도 루프 - src/html_validator.py: 보안 검증(script/iframe 제거) - src/renderer.py: render_slide_from_html() 추가, area div overflow:hidden - scripts/test_phase_s.py: generate_with_retry() 통합, step2b_verification 결과 저장 - 배경 라이트 디자인(#f8fafc), 개조식 어미 변환, 축약 금지 규칙 다음 과제: 폰트 위계(핵심14>본문12>배경10-12>첨부9-11) + 동적 컨테이너 계산 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.3 KiB
2.3 KiB
현재 상태 기록 (2026-03-31 03:00)
확정된 것
- 역할 분리: Kei = 콘텐츠 분석, Claude Sonnet = HTML 생성
- 영역별 개별 호출: 배경/본심/sidebar/footer 각각 Claude 개별 호출
- 블록 선택 시스템 제거: block_selector, fill_candidates 미사용
- 검증 합격 결과물 존재: 각 영역별로 수동 프롬프트로 합격한 결과물이 있음
합격한 결과물 위치
| 영역 | 파일 | 프롬프트 위치 | 방식 |
|---|---|---|---|
| 배경 | verify_claude_20260330_212019/verify1.png | verify_claude_1_2.py prompt_1 | Claude, 수동 텍스트 |
| 용어 정의 | verify_v2_20260331_003421/A_definitions.png | verify_definitions_v2.py prompt_a | Claude, 수동 텍스트 |
| 본심 | core_c_fix_20260331_015828/core_c_fix.png | verify_core_c_fix.py (하드코딩 HTML) | 직접 작성 |
| footer | 이전부터 OK | 간단 | Claude |
해결 못한 핵심 문제
검증(수동) → 자동화 전환이 안 됨
검증에서 합격한 프롬프트는 텍스트를 수동으로 직접 타이핑해서 넣은 것. 자동화에서는 원본 MDX/source_data에서 텍스트를 코드로 추출해야 하는데, 추출 결과가 수동으로 넣은 것과 달라서 Claude가 다른 결과를 생성.
구체적 문제:
_extract_bg_content()— 배경 텍스트 추출이 부정확_extract_core_content()— 본심 텍스트 추출이 부정확_extract_definitions()— 용어 정의 추출이 원본과 다름- 추출된 텍스트가 프롬프트에 들어가면 Claude가 축약/변형
해결 방향
Kei가 1단계에서 이미 정리한 source_data를 그대로 프롬프트에 넣으면 됨. 문제는 source_data가 원본 MDX의 80-95%가 아니라 요약본이라는 것.
선택지:
- source_data를 더 풍부하게 만들기 (Kei 1단계 프롬프트 수정)
- 원본 MDX를 직접 프롬프트에 넣되, 관련 섹션만 정확히 추출
- 검증 때처럼 수동으로 텍스트를 준비 (확장성 없음)
다음 작업
- 실제 프롬프트에 들어가는 텍스트를 로그로 저장하여 검증 때와 비교
- 차이점을 파악하고 추출 로직 수정
- 또는 원본 MDX를 영역별로 정확히 슬라이싱하는 로직 구현