Files
C.E.L_Slide_test2/PHASE-X-B.md
kyeongmin bc7829b08b Phase X-B-1,2 완료: Kei 유형 A/B 선택 + 검증기 완화
X-B-1: KEI_PROMPT에 유형 B 옵션 추가
- 유형 A: 기존 배경/본심/첨부/결론 (참조자료 있는 콘텐츠)
- 유형 B: 본심1(상단)+본심2(하단2분할)+결론 (본문만으로 구성)
- Kei가 콘텐츠 보고 A/B 선택, layout_template 필드로 반환
- 검증: 01번→A, 02번→B 정확히 선택

X-B-2: 검증기 완화
- 유형 A: 본심 필수 유지
- 유형 B: 결론(footer)만 필수, 자유 역할명 허용
- 섹션 수 차이 허용 확대 (유형 B: 4)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 10:10:22 +09:00

5.1 KiB

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)
  • 하드코딩 절대 금지
  • 각 단계 완료 후 반드시 검증 (하드코딩, 모면용 코드, 기존 깨짐 여부)