문서 정리: Phase 히스토리 md를 docs/history/로 이동 + 오래된 테스트/에셋 정리
- 루트의 IMPROVEMENT-PHASE-*.md, PHASE-*.md 등 45개 → docs/history/로 이동 - docs/block-tests/ 오래된 블록 테스트 HTML 삭제 (figma_to_html_agent로 대체) - docs/figma-analysis/, docs/figma-assets/, docs/figma-screenshots/ 정리 - docs/test-*.html 등 초기 테스트 파일 정리 - 참고 페이지/ 스크린샷 정리 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
111
docs/history/PHASE-X-PRIME.md
Normal file
111
docs/history/PHASE-X-PRIME.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# Phase X': 유형 B 파이프라인 개선
|
||||
|
||||
> 최종 업데이트: 2026-04-06
|
||||
> 전제: 유형 A 건드리지 않음. 유형 B 파이프라인 프로세스 수정.
|
||||
|
||||
---
|
||||
|
||||
## 현재 상태
|
||||
|
||||
- 유형 A (배경+본심+첨부+결론): ✅ 동작 (01번 MDX)
|
||||
- 유형 B (상단+하단2분할+결론): **code_assembled만 동작, 파이프라인(before→filled→after) 미연결**
|
||||
|
||||
## 완료된 것
|
||||
|
||||
### X'-1: 제목 원본 MDX에서 가져오기 ✅
|
||||
- `context.normalized.title` 사용 (Kei title 대신)
|
||||
- 파일: `src/pipeline.py` Stage 1A
|
||||
|
||||
### X'-2: 들여쓰기 계층 ✅ (code_assembled에서만)
|
||||
- `###` 소제목 → 카드형 분리
|
||||
- 본문 불릿 indent 적용
|
||||
- 파일: `scripts/assemble_stage2.py`
|
||||
|
||||
### X'-3: 이미지 캡션 ✅
|
||||
- `normalized.images` alt text에서 추출
|
||||
- 파일: `scripts/assemble_stage2.py`
|
||||
|
||||
### X'-4: 상단 균등배분 ✅
|
||||
- `justify-content:space-between`
|
||||
- 파일: `scripts/assemble_stage2.py`
|
||||
|
||||
### X'-5: 카드 디자인 ✅
|
||||
- 다크 그라데이션 + 밝은 텍스트
|
||||
- 파일: `scripts/assemble_stage2.py`
|
||||
|
||||
### X'-6: 표 요약 ✅ (code_assembled에서만)
|
||||
- `normalized.tables` → pipeline V'-2에서 Kei 요약 → context 저장
|
||||
- `_assemble_type_b` 하단 우측에 표출
|
||||
- 파일: `src/pipeline.py`, `scripts/assemble_stage2.py`
|
||||
|
||||
### MDX sections 계층 ✅
|
||||
- `mdx_normalizer`: `###` (h3) 소목차도 section으로 분리
|
||||
- `_assemble_type_b`: `normalized.sections`에서 직접 텍스트 가져오기
|
||||
- 대목차/소목차 계층 반영
|
||||
|
||||
---
|
||||
|
||||
## 핵심 미해결 문제
|
||||
|
||||
### 유형 B의 before→filled→after 파이프라인이 연결 안 됨
|
||||
|
||||
**증거:**
|
||||
- FILLED: 2997bytes, 한글 80자 (유형 A는 214KB)
|
||||
- `block_assembler.assemble_slide_html()`이 고정 4역할(배경/본심/첨부/결론)만 처리
|
||||
- 유형 B의 자유 역할명(DX_궁극적_목표, 프로세스_변화 등)을 처리 못 함
|
||||
- 결과: filled/after가 거의 빈 HTML
|
||||
|
||||
**해결 방향:**
|
||||
- `block_assembler.assemble_slide_html()`이 유형 B 역할도 처리하도록
|
||||
- 또는 유형 B 전용 filled/after 함수 추가
|
||||
- `_assemble_type_b`(assemble_stage2)는 code_assembled 전용이므로, 파이프라인의 filled/after에는 별도 로직 필요
|
||||
|
||||
### 렌더링에서 잘림
|
||||
|
||||
**증거:**
|
||||
- code_assembled에 모든 내용이 HTML로 있지만 브라우저에서 보면 잘림
|
||||
- overflow:hidden + 컨테이너 크기 < 내용 크기
|
||||
- 상단 카드가 잘림, 결론이 안 보임
|
||||
|
||||
**해결 방향:**
|
||||
- 컨테이너 크기 계산에서 내용 크기를 고려
|
||||
- 또는 Selenium 측정 후 재배분 (이건 filled→after 파이프라인이 동작해야 가능)
|
||||
|
||||
---
|
||||
|
||||
## Kei가 하는 일 (명확히 정리)
|
||||
|
||||
1. **꼭지 찾기 + 그루핑** — MDX 구조 분석
|
||||
2. **유형 선택 (A/B)** — 콘텐츠에 맞는 레이아웃
|
||||
3. **블록 선택** — 컨테이너에 맞는 블록 타입
|
||||
4. **공란에 표/팝업 요약** — 원문 최대 유지
|
||||
5. **bold 키워드 판단** — 문맥 기반
|
||||
|
||||
**나머지는 전부 MDX 원본에서 가져옴:**
|
||||
- 제목, 대목차, 중목차, 소목차, 텍스트 — 원본 그대로
|
||||
- 핵심 요약 — 원본 그대로
|
||||
- Kei가 텍스트를 재작성하지 않음
|
||||
|
||||
---
|
||||
|
||||
## 다음 세션 작업 순서
|
||||
|
||||
1. **유형 B filled/after 파이프라인 연결** — block_assembler 또는 별도 함수
|
||||
2. **컨테이너 크기 vs 내용 크기 맞춤** — Selenium 측정 기반 재배분
|
||||
3. **렌더링 잘림 해결** — overflow 처리
|
||||
4. **01번(유형 A) 깨지지 않는지 확인**
|
||||
|
||||
---
|
||||
|
||||
## 관련 파일
|
||||
|
||||
| 파일 | 역할 | 유형 B 상태 |
|
||||
|------|------|------------|
|
||||
| `src/kei_client.py` | KEI_PROMPT (유형 A/B 선택) | ✅ |
|
||||
| `src/validators.py` | 검증기 (유형 B 완화) | ✅ |
|
||||
| `src/space_allocator.py` | 컨테이너 생성 (build_containers_type_b) | ✅ |
|
||||
| `src/pipeline.py` | 파이프라인 분기 (layout_template) | ✅ 분기만 |
|
||||
| `src/pipeline_context.py` | Analysis.layout_template | ✅ |
|
||||
| `src/mdx_normalizer.py` | ### 소목차 section 분리 | ✅ |
|
||||
| `scripts/assemble_stage2.py` | _assemble_type_b (code_assembled) | ✅ |
|
||||
| `src/block_assembler.py` | assemble_slide_html (filled/after) | ❌ 유형 B 미지원 |
|
||||
Reference in New Issue
Block a user