Phase W + V' 완료: before→filled→after 파이프라인 + 조립 로직 수정

Phase W:
- weight 비율 초기 배정 (space_allocator header 높이 반영)
- block_assembler 공통 조립 함수 (filled/assembled 통합)
- filled → Selenium 측정 → context 저장
- sidebar overflow 확장 + body 재배분
- sub_layouts 사전 계산 (이미지 누락 해결)

Phase V':
- 팝업 링크 우측상단 배치 (인라인 → position:absolute)
- 표 내용 Kei 판단 (공란 크기 계산 → 행/열 산출 → Kei 요약)
- 출처 라벨 삭제 + 이미지 아래 캡션 배치
- after 공란 제거 (결론 바로 위까지 body/sidebar 채움)

추가:
- V-10 bold 키워드: 기계적 추출 → Kei 문맥 판단
- ** 마크다운 → <strong> 변환
- [이미지:] 마커 제거 (bold 변환 전 처리)
- grid-template-rows AFTER 크기 반영 (Sonnet final)
- assemble_stage2 CSS font-size override, white-space fix
- 하드코딩 전수 검토 완료
- 본심 여러 topic 텍스트 합침

Phase X 계획 문서 작성 (동적 역할 구조)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-06 05:00:52 +09:00
parent 24eb1bc5ad
commit 1f7579cf64
64 changed files with 13955 additions and 696 deletions

39
PHASE-X.md Normal file
View File

@@ -0,0 +1,39 @@
# Phase X: 콘텐츠 기반 레이아웃 판단 프로세스
## 배경
현재 파이프라인은 Kei의 role 태그(`reference`, `flow` 등)로 레이아웃 preset을 **먼저 고정**한 뒤, 그 안에서만 크기를 조정한다. 콘텐츠의 양이나 특성과 무관하게 구조가 결정되므로, 다른 MDX가 들어오면 커버되지 않는다.
## 현재 프로세스 (문제)
```
Kei role 태그 → select_preset() → 레이아웃 고정 → 그 안에서 weight 배분
```
- `reference` 있으면 → `sidebar-right` (무조건)
- 콘텐츠 양/특성 기반 판단 없음
- 레이아웃이 콘텐츠에 맞는지 검증 없음
## 목표 프로세스
```
1. BEFORE: 100% 공간을 weight 비율로 세로 배정 (레이아웃 판단 없음)
2. FILLED: 콘텐츠 채움
3. 판단1: 측정 → 레이아웃 결정 ("이 역할은 옆으로 빼는 게 낫다" 등)
4. 판단2: 결정된 레이아웃에서 크기 재배분
5. AFTER: 최종 레이아웃 + 크기
```
- 레이아웃 구조(body/sidebar 등)가 preset이 아니라 **측정 후 판단의 결과**
- 어떤 MDX가 와도 콘텐츠에 맞는 최적 레이아웃이 동적으로 결정됨
## 관련 코드
- `src/design_director.py`: `LAYOUT_PRESETS`, `select_preset()`
- `src/pipeline.py`: Stage 1.5a에서 preset 선택
- `src/kei_client.py`: Stage 1A에서 role 태그 부여
- `src/space_allocator.py`: zone 기반 컨테이너 배분
## 상태
Phase W (before→filled→after 파이프라인) 완료 후 착수.