# Phase X': 유형 B 파이프라인 개선 6건 > 작성일: 2026-04-06 > 전제: 유형 A 건드리지 않음. 유형 B 파이프라인 프로세스 수정. --- ## 현재 상태 - 유형 A: ✅ 동작 (01번 MDX) - 유형 B: 구조(상단+하단2분할+결론) 동작하나 품질 문제 6건 --- ## 개선 항목 ### X'-1: 제목 — 원본 MDX에서 가져오기 **문제:** Kei가 슬라이드 제목을 임의로 바꿈 **원인:** KEI_PROMPT가 title을 Kei에게 만들게 함 **수정:** Stage 1A에서 Kei 반환 title 대신 `context.normalized.title` 사용 **파일:** `src/pipeline.py` Stage 1A — 한 줄 수정 **원칙:** MDX frontmatter의 title을 그대로. Kei는 구조만 판단. ### X'-2: 들여쓰기 계층 — 대/중/소제목+본문 **문제:** 모든 텍스트가 왼쪽 맞춤. 계층 구조 없음 **원인:** `_assemble_type_b`에서 `##`, `###`, `•`, ` •` 레벨 구분 없이 처리 **수정:** structured_text에서 `###`=소제목, `•`=본문, ` •`=하위로 인식하여 들여쓰기 ``` 대제목 (## → 꼭지 제목) 중제목 (### → 카드 소제목) 본문 (• → 불릿) 하위 ( • → 하위 불릿) ``` **파일:** `scripts/assemble_stage2.py` — `_assemble_type_b` 조립 로직 **원칙:** structured_text의 레벨을 코드가 인식. 하드코딩 아님. ### X'-3: 이미지 캡션 — 원본 형식 그대로 **문제:** 캡션이 `DX의 궁극적 목표`로 나옴. 원본은 `[그림 2] DX의 궁극적 목표` **원인:** `[이미지:]` 마커에서 제목만 추출. 원본 MDX의 `![제목](경로)` 형식 미반영 **수정:** MDX 원본의 이미지 alt text에서 캡션 추출. `![DX의 궁극적 목표](/path)`에서 그대로 **파일:** `scripts/assemble_stage2.py` — 캡션 추출 + `src/mdx_normalizer.py` (이미지 정보에 alt text 보존) **원칙:** 원본 그대로. 없으면 빈 캡션. ### X'-4: 상단 빈칸 — 컨테이너 내 균등 배분 **문제:** 상단 컨테이너에서 내용이 위로 몰리고 아래 빈칸 **원인:** flex-direction: column + align-items: flex-start **수정:** 컨테이너 내용이 전체 높이에 균등 배분되도록 flex 속성 조정 **파일:** `scripts/assemble_stage2.py` — `_assemble_type_b` CSS **원칙:** font_size/gap 기반 동적 계산. 하드코딩 아님. ### X'-5: 카드 디자인 — 소제목 카드 개선 **문제:** 안전과품질/생산성향상/소통과신뢰 카드가 눈에 안 들어옴 **원인:** 다크배경+노란제목 조합이 가독성 떨어짐 **수정:** PNG 참고 — 각 카테고리별 구분되는 배경색(다크 그라데이션), 불릿 텍스트 밝은 색, 간격 조정 **파일:** `scripts/assemble_stage2.py` — `_assemble_type_b` 카드 HTML **원칙:** design tokens + font_size 기반 동적 계산. 색상은 팔레트에서 순환. ### X'-6: 표 요약 — 하단 우측에 Kei 요약 표 배치 **문제:** 2.2 주체별 기대효과에 원본 표(발주자/시공자/설계자) 데이터가 있는데 결과에 빠짐 **원인:** 유형 B에서 V'-2(표 요약) 프로세스가 미연결 **수정:** 유형 A와 동일한 프로세스 — 코드가 하단 우측 공간 계산 → 행/열 수 산출 → Kei에게 원본 표 요약 요청 → 배치 **파일:** `src/pipeline.py` V'-2 + `scripts/assemble_stage2.py` — `_assemble_type_b` 하단 우측 **원칙:** 공간에 맞게 동적 계산. 원본 표를 Kei가 요약. --- ## 순서 X'-1 → X'-2 → X'-3 → X'-4 → X'-5 → X'-6 각 단계 완료 후: - 하드코딩 검사 - 특정 MDX에만 동작하는 코드 아닌지 확인 - 유형 A(01번) 깨지지 않는지 확인 --- ## 주의사항 - 유형 A 코드 건드리지 않음 - 파이프라인 프로세스를 수정하는 것이지 HTML 결과물을 고치는 것이 아님 - 하드코딩 절대 금지 - 제목/텍스트는 원본 그대로 - Kei가 재구성하는 건 빈 공간 채우기(표 요약)만