From 028f611070596316df0a364ab3814f8e1dc625ce Mon Sep 17 00:00:00 2001 From: kyeongmin Date: Tue, 7 Apr 2026 06:56:58 +0900 Subject: [PATCH] =?UTF-8?q?XBX-2=20=EC=88=98=ED=96=89=20=EB=B0=A9=ED=96=A5?= =?UTF-8?q?=20=EC=83=81=EC=84=B8=ED=99=94:=20overflow=20=ED=94=84=EB=A1=9C?= =?UTF-8?q?=EC=84=B8=EC=8A=A4=20=EC=9B=90=EC=9D=B8=203=EA=B0=9C=20+=20?= =?UTF-8?q?=EC=88=98=ED=96=89=20=EC=88=9C=EC=84=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Selenium 측정 실패 (data URI 크기 제한) - overflow 분기에 Type B zone 없음 - calculate_fit에서 Type B 역할 인식 불가 Co-Authored-By: Claude Opus 4.6 (1M context) --- PHASE-X-BX.md | 44 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 8 deletions(-) diff --git a/PHASE-X-BX.md b/PHASE-X-BX.md index 4adbc20..008fb1e 100644 --- a/PHASE-X-BX.md +++ b/PHASE-X-BX.md @@ -82,19 +82,47 @@ section content 수집 시 indent level을 보존하면 됨. --- -## XBX-2: 상단 overflow +## XBX-2: overflow → 콘텐츠 맞춤 프로세스 ### 현상 -상단 zone(255px)에 소제목 3개 + 불릿 6줄 + 이미지 → overflow 가능. +상단 zone(255px)에 소제목 3개 + 불릿 6줄 + 이미지 → overflow. +하단 우측에 표 데이터가 너무 많아서 overflow. -### 수행 방향 -- **XBX-5(파이프라인 연결) 완료 후 자동 해결 확인** -- filled → Selenium 측정 → overflow 감지 → 재배분 -- 재배분으로 안 되면 텍스트 압축 또는 팝업 분리 (글자수 기반, 코드 판단) -- **선행: XBX-5 완료 필수** +### 프로세스 (네가 말한 것) +``` +넘침 감지 → 최대 몇 줄까지 가능? → 몇 자 이내로 정리 → Kei에게 요약 요청 → 재수취 후 정리 +``` + +### 왜 안 되는가 (원인 3개) + +**원인 1: Selenium 측정 실패** +- `slide_measurer.py` 144줄: 2.2MB HTML을 `data:` URI로 로드 → 브라우저 크기 제한 +- Type A는 ~214KB라 동작, Type B는 이미지 base64 포함 2.2MB라 실패 +- **수정:** 임시 파일로 저장 후 `file://` URI로 로드 (크기 제한 없음) + +**원인 2: overflow 분기에 Type B zone 없음** +- `pipeline.py` 538-553줄: `sidebar`와 `body`만 처리 +- Type B zone(`top`, `bottom`)은 분기 없음 → overflow 감지돼도 무시됨 +- **수정:** `if layout_template == "B":` 분기 추가. top/bottom overflow 시 처리 + +**원인 3: calculate_fit에서 Type B 역할 인식 불가** +- `fit_verifier.py` 307줄: `role_font_map = {"본심": "core", "배경": "bg", ...}` +- Type B 역할명이 이 dict에 없어서 항상 `"core"` fallback +- overflow 계산이 부정확 → `needs_escalation`이 항상 `False` +- **수정:** `if layout_template == "B":` 분기. zone 기반 font 매핑 + +### 수행 순서 + +1. **Selenium 측정 수정** — data URI → 임시파일 방식 (slide_measurer.py) +2. **overflow 분기 추가** — Type B zone 처리 (pipeline.py) +3. **calculate_fit Type B 지원** — zone 기반 font 매핑 (fit_verifier.py) +4. **에스컬레이션 → Kei 요약 요청** — 이미 있는 코드 활용 (pipeline.py 584-606) +5. **검증** — 02번 파이프라인 돌려서 상단 overflow 해소 확인 ### 검증 -Selenium 측정에서 상단 zone overflow 없음. +- Selenium 측정에서 상단/하단 zone overflow 감지 +- overflow 시 Kei에게 요약 요청 → 줄어든 콘텐츠로 재조립 +- 결과 스크린샷에서 overflow 없음 ---