# Phase X-B: 유형 B 템플릿 추가 > 작성일: 2026-04-06 > 전제: 유형 A(배경+본심+첨부+결론) 기존 코드 건드리지 않음 --- ## 유형 B 구조 02번 MDX (DX의 시행 목표 및 기대효과) 기준: ``` ┌──────────────────────────────────────────┐ │ 제목 │ ├───────────────────────┬──────────────────┤ │ 본심1: DX 궁극적 목표 │ │ │ ┌안전과 품질──────────┐│ [그림 2] │ │ │• 불릿 ││ 궁극적 목표 │ │ ├생산성 향상──────────┤│ 이미지 │ │ │• 불릿 ││ (비율 맞춤) │ │ ├소통과 신뢰──────────┤│ │ │ │• 불릿 ││ │ │ └────────────────────┘│ │ ├───────────┬───────────┴──────────────────┤ │ 본심2-좌 │ 본심2-우 │ │ 프로세스 │ 주체별 기대효과 │ │ 변화 │ [팝업→] │ │ • 불릿 │ • 발주자: ... │ │ • 불릿 │ • 시공자: ... │ │ │ • 설계자: ... │ ├───────────┴──────────────────────────────┤ │ 결론 배너 │ └──────────────────────────────────────────┘ ``` 핵심: - 상단: 텍스트(좌) + 이미지(우) 나란히 - 하단: 2분할 - 배경 없음, 첨부(sidebar) 없음 - 이미지는 원본 위치에서 가져와서 컨테이너 크기에 맞게 비율 조정 - 결론 항상 있음 - PNG 구조를 따르되 디자인은 그대로 따라가기 --- ## 진행 현황 ### X-B-1: KEI_PROMPT에 유형 B 옵션 추가 — ✅ 완료 - 기존 유형 A 지시 유지 - 유형 B 옵션 추가: "배경/첨부가 없는 콘텐츠는 본심1+본심2+결론 구조" - Kei가 콘텐츠를 보고 A 또는 B 선택 - 검증 결과: - 01번 MDX → A 선택 ✅ - 02번 MDX → B 선택 ✅ (역할: DX의_궁극적_목표/프로세스_혁신/주체별_기대효과/결론) - 하드코딩 없음 ✅ - 파일: `src/kei_client.py` — KEI_PROMPT 수정 ### X-B-2: 검증기(validators.py) 완화 — ✅ 완료 - 유형 A: "본심" 필수 유지 - 유형 B: 결론(footer) 필수, 본심 불필요, 자유 역할명 허용 - 섹션 수 차이 허용: 유형 A는 2, 유형 B는 4 - 하드코딩 없음 ✅ - 파일: `src/validators.py` ### X-B-3: space_allocator에 유형 B 컨테이너 생성 — 미착수 - 유형 A: 기존 `calculate_container_specs` 그대로 - 유형 B: `build_containers_type_b()` 추가 - 상단: 전체폭, weight 비율 - 하단: 2분할, weight 비율 - 이미지: 상단 우측, 실제 비율로 크기 계산 - 결론: footer - 파일: `src/space_allocator.py` ### X-B-4: assemble_stage2에 유형 B 조립 로직 추가 — 미착수 - 유형 A: 기존 코드 그대로 - 유형 B: 새 조립 함수 - 상단: 좌측 텍스트(카테고리별 카드) + 우측 이미지 - 하단: 2분할 불릿 - 이미지 아래 캡션, 팝업 링크 우측상단 - 결론 배너 - 좌표: 동적 계산 - 파일: `scripts/assemble_stage2.py` ### X-B-5: pipeline.py 분기 — 미착수 - Stage 1.5a에서 `layout_template`에 따라 분기 - "A" 또는 없음 → 기존 파이프라인 - "B" → `build_containers_type_b()` - Stage 1A에서 `layout_template`를 Analysis에 저장 (pipeline_context.py에 필드 추가 필요) - 파일: `src/pipeline.py`, `src/pipeline_context.py` ### X-B-6: 검증 — 미착수 - 02번 MDX → 유형 B 선택 → 상단+이미지+하단2분할+결론 - 01번 MDX → 유형 A 선택 → 기존과 동일 (깨지면 안 됨) - 텍스트 컨테이너 안에 있음 - 이미지 비율 맞음 - 공란 최소 - 하드코딩 없음 --- ## Kei 유형 선택 결과 (검증 완료) ### 01번 MDX → 유형 A ``` layout_template: A page_structure: 배경: topics=[1], weight=0.20 본심: topics=[2,3,4], weight=0.55 첨부: topics=[5,6], weight=0.15 결론: topics=[7], weight=0.10 ``` ### 02번 MDX → 유형 B ``` layout_template: B page_structure: DX의_궁극적_목표: zone=top, topics=[1], weight=0.45 프로세스_혁신: zone=bottom_left, topics=[2], weight=0.25 주체별_기대효과: zone=bottom_right, topics=[3], weight=0.20 결론: zone=footer, topics=[4], weight=0.10 ``` --- ## 주의사항 - 유형 A 코드 건드리지 않음 - 유형 B는 별도 함수/분기로 추가 - 01번이 깨지면 롤백 (git: c9677a6) - 하드코딩 절대 금지 - 각 단계 완료 후 반드시 검증 (하드코딩, 모면용 코드, 기존 깨짐 여부)