# Phase X-B: 유형 B 템플릿 추가

> 최종 업데이트: 2026-04-06
> 전제: 유형 A(배경+본심+첨부+결론) 기존 코드 건드리지 않음

---

## 유형 B 구조

02번 MDX (DX의 시행 목표 및 기대효과) 기준.
MDX 원본 구조:
```
title: DX의 시행 목표 및 기대효과           ← 슬라이드 제목 (frontmatter)
## 1. DX의 궁극적 목표                      ← 상단 (level=2)
  - 안전과 품질 / 생산성 향상 / 소통과 신뢰   ← 소제목 카드
  ![DX의 궁극적 목표](이미지)                ← 상단 우측 이미지
## 2. DX 기반 Process 혁신에 따른 주체별 기대효과  ← 하단 대목차 (level=2)
  ### 2.1 업무 수행 과정(Process)의 변화      ← 하단 좌측 (level=3)
  ### 2.2 DX 시행 주체별 기대효과             ← 하단 우측 (level=3) — 표 데이터
:::note[핵심 요약]
* 고품질의 성과품, 비용 절감...               ← 결론 (원본 그대로)
:::
```

슬라이드 레이아웃:
```
┌──────────────────────────────────────────┐
│ DX의 시행 목표 및 기대효과 (원본 title)      │
├───────────────────────┬──────────────────┤
│ DX의 궁극적 목표       │                  │
│ ┌안전과 품질──────────┐│   [이미지]       │
│ │• 불릿              ││   DX의 궁극적    │
│ ├생산성 향상──────────┤││   목표          │
│ │• 불릿              ││                  │
│ ├소통과 신뢰──────────┤│                  │
│ │• 불릿              ││                  │
│ └────────────────────┘│                  │
├──────────────────────────────────────────┤
│ DX 기반 Process 혁신에 따른 주체별 기대효과 │ ← 대목차
├───────────┬──────────────────────────────┤
│ 2.1 업무   │ 2.2 DX 시행 주체별 기대효과   │
│ 수행 과정  │ [바로가기 →] (팝업 링크)      │
│ 변화      │ ┌ Kei 요약 표 ──────────┐    │
│ • 생산방식 │ │ 구분│발주자│시공자│설계자│    │
│ • 인지검토 │ │ ...│  ...│  ...│  ...│    │
│ • 협업구조 │ └──────────────────────┘    │
│ • 검증대응 │                              │
├───────────┴──────────────────────────────┤
│ 결론: 고품질의 성과품, 비용 절감... (원본)    │
└──────────────────────────────────────────┘
```

---

## 진행 현황

### X-B-1: KEI_PROMPT 유형 B 옵션 추가 — ✅ 완료
### X-B-2: 검증기 완화 — ✅ 완료
### X-B-3: space_allocator 유형 B 컨테이너 생성 — ✅ 완료
### X-B-4: assemble_stage2 유형 B 조립 — ✅ 완료 (code_assembled)
### X-B-5: pipeline.py 분기 — ✅ 완료

### X-B-6: 검증 — ❌ 미완료

**code_assembled(assemble_stage2):**
- 제목/대목차/소목차/텍스트: MDX 원본에서 직접 가져옴 ✅
- 팝업 링크 + Kei 요약 표 ✅
- 이미지 + 캡션 ✅
- 카드형 소제목 ✅
- **하지만 렌더링에서 잘림** — 컨테이너 크기 vs 내용 크기 불일치

**파이프라인(before→filled→after):**
- **유형 B에서 동작 안 함** — block_assembler가 고정 4역할만 처리
- filled가 거의 빈 HTML (2997bytes)
- 이걸 해결해야 Selenium 측정 → 재배분이 가능

---

## 다음 세션 핵심 작업

**1. block_assembler 유형 B 지원**
- `assemble_slide_html()`이 유형 B 역할도 처리
- 또는 유형 B 전용 함수 추가
- filled/after가 제대로 생성되어야 Selenium 측정 가능

**2. 컨테이너 크기 맞춤**
- 현재 렌더링 잘림 → Selenium 측정 후 재배분으로 해결
- 이건 1번이 해결되면 자동으로 동작

**3. 01번(유형 A) 깨지지 않는지 확인**

---

## 핵심 원칙

- 하드코딩 절대 금지
- HTML 결과물 고치지 말고 파이프라인 프로세스 고칠 것
- 제목/텍스트는 원본 MDX에서 그대로 (Kei가 바꾸지 않음)
- Kei가 재구성하는 건 빈 공간 채우기(표 요약)만
- 유형 A 코드 건드리지 않고 유형 B 추가
- normalized.sections에서 직접 텍스트 가져옴 (Kei structured_text 대신)
