Files
C.E.L_Slide_test2/docs/history/IMPROVEMENT-PHASE-S-ISSUES.md
kyeongmin c42e01f060 문서 정리: Phase 히스토리 md를 docs/history/로 이동 + 오래된 테스트/에셋 정리
- 루트의 IMPROVEMENT-PHASE-*.md, PHASE-*.md 등 45개 → docs/history/로 이동
- docs/block-tests/ 오래된 블록 테스트 HTML 삭제 (figma_to_html_agent로 대체)
- docs/figma-analysis/, docs/figma-assets/, docs/figma-screenshots/ 정리
- docs/test-*.html 등 초기 테스트 파일 정리
- 참고 페이지/ 스크린샷 정리

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

13 KiB

Phase S 실행 결과 문제점 + 해결 방향

작성일: 2026-03-31 상태: 문제 기록. 수정 대기. 근거: 1774736083771_phaseS_20260331_024142 결과물 검토


1. 근본 원인

검증 때 성공한 것과 실제 실행에서 실패한 것의 차이:

항목 검증 (성공) 실행 (실패)
프롬프트 실제 텍스트를 한 글자씩 프롬프트에 포함 "source_data를 그대로 써라"만 지시
CSS 구체적 수치까지 지정 (13px, #93c5fd 등) 추상적 ("디자인 토큰 참고")
레이아웃 구체적 구조 지시 (flex, float, margin-top 등) "여백 최소화"만 지시
결과 합격 전부 불합격

즉, 프롬프트가 구체적이면 합격, 추상적이면 실패.


2. 문제 목록 (전체)

2-1. 텍스트

  • 원본 MDX 80-95% 보존 안 됨 — 다시 축약/변형
  • source_data가 프롬프트에 직접 포함되지 않고 "참고하라"만 지시

2-2. 레이아웃

  • 배경과 본심 사이 간격이 없음
  • 본심 가로 크기가 배경에 비해 좁음 — 같은 body인데 너비가 다름
  • 전체 컨테이너 크기/간격이 검증 때와 다름

2-3. 이미지

  • float으로 어우러지지 않고 본문에 붙어있음
  • 검증(core_c_fix)에서는 margin-top으로 위치 조정, 텍스트 감싸기 작동 — 지금은 안 됨
  • 이미지 캡션이 이상함

2-4. 들여쓰기

  • 불릿(•) 다음 줄 들여쓰기 전혀 적용 안 됨
  • padding-left + text-indent CSS가 생성된 HTML에 없음

2-5. 색상/강조

  • 배경(다크 박스)이 너무 강해서 본심보다 배경에 시선이 감
  • 배경은 "배경"이지 핵심이 아닌데, 시각적으로 가장 강조됨

2-6. 핵심 메시지

  • 하단 강조 박스("BIM ≠ DX")가 잘림

2-7. 용어 정의 (sidebar)

  • 텍스트 축약 — 검증(verify_v2/A_definitions)에서는 풀 텍스트였음
  • overflow +15px — 490px 안에 안 맞음

2-8. 전체 균형

  • 배경/본심/sidebar/footer의 시각적 비중이 안 맞음
  • 배경이 가장 강조되고 본심이 약함

3. 해결 방향 — 5단계 프로세스

Step 1: 원본 텍스트 매핑

  • Kei 분석 결과(topics, purpose, expression_hint)에 따라 원본 MDX에서 해당 텍스트를 매핑
  • source_data의 Kei 메모("간결한 문제 제기용" 등)는 제외
  • 원본 MDX 텍스트만 가져옴
  • MDX를 ## 기준으로 섹션 슬라이싱 → topics의 source_hint로 섹션 매칭

Step 2: 검증 합격 프롬프트와 결합

  • 검증에서 합격한 프롬프트의 디자인/구조 부분은 고정
  • Step 1에서 매핑한 원본 텍스트를 동적으로 삽입
  • 영역별 개별 호출 (배경/본심/sidebar/footer)
영역 검증 합격 프롬프트 텍스트 부분
배경 verify_claude_1_2.py prompt_1의 디자인 지시 Step 1에서 매핑한 혼용+사례 텍스트
본심 core_c_fix.py의 CSS 구조 Step 1에서 매핑한 핵심기술 텍스트
sidebar verify_definitions_v2.py prompt_a의 디자인 지시 Step 1에서 매핑한 용어 정의 텍스트
footer 간단 프롬프트 Step 1에서 매핑한 결론 텍스트

Step 3: Claude 생성 HTML 자체 검증 (제출 전)

  • 원본 텍스트가 축약/변형 없이 들어갔는가
  • 들여쓰기 CSS(padding-left + text-indent)가 적용되었는가
  • 이미지가 정확히 배치되었는가
  • 컨테이너 크기를 초과하지 않는가
  • Kei 메모("간결한 문제 제기용" 등)가 슬라이드에 포함되지 않았는가
  • 검증 실패 시 사용자에게 제출하지 않고 재생성

Step 4: 전체 슬라이드 조립 + 전체 균형 검증

  • 각 영역 HTML을 슬라이드 프레임에 조립
  • 전체 균형 검증:
    • 배경이 본심보다 강조되지 않는가
    • 영역 간 간격/여백이 적절한가
    • 전체 720px 안에 들어가는가
    • 시각적 비중이 page_structure의 비중과 맞는가

Step 5: 결과물 저장

  • runs 폴더에 스텝별로 정리
  • 각 스텝의 입력/출력을 JSON + PNG로 저장
  • 최종 실행 환경: localhost:8001 (Design Agent 서버, pipeline.py 경유)

4. 세부 수정 사항 10개 (2026-03-31 03:30 추가)

Phase S 실행 결과에서 발견된 세부 문제 10개와 각각의 해결 방법.

1-1. 배경 다크 박스가 시각적으로 너무 강함

  • 문제: linear-gradient(135deg, #1e293b, #0f172a) — 거의 검정. 본심보다 배경이 더 눈에 띔.
  • 해결: 배경의 opacity를 낮추거나, 다크 대신 연한 회색 배경 사용. 또는 본심에 시각적 강조 추가하여 상대적 균형.
  • 프롬프트 수정: BG_PROMPT의 배경색을 연한 톤으로 변경하거나, 본심에 배경색/border 추가.
  • 충돌/회귀: 없음. 색상만 변경이고, 검증 합격 배경도 같은 다크였으므로 톤만 조정.

1-2. 배경 사례 카드가 배경 영역 안에 다 들어가는가

  • 문제: height:176px + overflow:hidden이면 사례 카드가 잘릴 수 있음.
  • 해결: 프롬프트에 "폰트를 줄여서라도 height 안에 맞출 것" 이미 포함. 실제 잘림 여부는 브라우저에서 확인.
  • 충돌/회귀: 없음. 기존 프롬프트에 이미 있는 지시.

2-1. 본심 가로 크기가 배경과 다름

  • 문제: 배경 width:100%, 본심 width:707px. 같은 body인데 너비가 다름.
  • 해결: CORE_PROMPT의 CSS에서 .core { width: 707px; }.core { width: 100%; } 변경.
  • 충돌/회귀: 없음. 본심이 body 전체 너비를 사용하는 것이 자연스러움. 검증(core_c_fix)에서 707px이었던 것은 테스트 컨테이너 크기였을 뿐.

3-1. 본심 이미지가 텍스트와 어우러지지 않음

  • 문제: float이 적용 안 되거나 이미지가 본문에 붙어있음.
  • 해결: CORE_PROMPT의 참고 CSS에 .fi { float:right; margin:60px 0 8px 12px; width:250px; } 이미 포함되어 있으나, Claude가 무시. → 프롬프트에 "이 CSS를 반드시 그대로 사용하라. float:right를 반드시 적용하라." 강조 추가.
  • 충돌/회귀: 없음. CSS 강조만 추가.

3-2. 이미지 캡션이 이상함

  • 문제: 캡션 텍스트가 검증 때와 다를 수 있음.
  • 해결: CORE_PROMPT의 참고 HTML에서 캡션을 명시: <div class="cap">건설산업의 DX</div>. "이 캡션을 그대로 사용하라" 추가.
  • 충돌/회귀: 없음. 캡션 텍스트 고정.

4-1. 본심 우상단 "상세비교" 팝업 링크

  • 문제: 검증(core_c_fix)에서는 📊 DX와 BIM의 상세 비교 텍스트 링크였는데 다르게 나옴.
  • 해결: CORE_PROMPT의 참고 HTML에서 <span class="popup-link">📊 DX와 BIM의 상세 비교</span> 명시. "이 텍스트를 그대로 사용하라" 추가.
  • 충돌/회귀: 없음. 텍스트 명시만 추가.

4-2. 본심 하단 핵심 메시지 박스

  • 문제: "상위-하위 포함관계" 같은 임의 텍스트가 들어감.
  • 해결: CORE_PROMPT에서 핵심 메시지를 명시: <div class="key-msg"><em>BIM ≠ DX</em> — BIM은 DX를 실현하기 위한 핵심 기술 중 하나일 뿐이다</div> "이 텍스트를 그대로 사용하라. '상위개념', '하위기술', '포함관계' 같은 임의 라벨 금지." 추가.
  • 충돌/회귀: 없음. 텍스트 명시 + 금지어 추가.

5-1. 용어 정의 들여쓰기 안 됨

  • 문제: 불릿 2줄째가 왼쪽 끝에서 시작. padding-left + text-indent 미적용.
  • 해결: SIDEBAR_PROMPT에 CSS 코드를 직접 포함하고 "이 CSS를 반드시 적용하라" 명시:
    .def-bullet { padding-left: 14px; text-indent: -14px; }
    .def-bullet::before { content: '•'; display: inline-block; width: 14px; text-indent: 0; }
    
  • 충돌/회귀: 없음. CSS 추가만.

6-1. 용어 정의에서 원본의 2줄을 1점에 합침

  • 문제: BIM 정의 "형상정보와... 정보 관리 도구. 건설 정보와... 핵심 인프라 기술"이 하나의 불릿. 검증(verify_definitions_v2)에서는 2개 불릿으로 분리.
  • 해결: SIDEBAR_PROMPT에 "마침표(.)로 끝나는 문장이 2개 이상이면 별도 불릿(•)으로 분리하라" 명시. 또는 프롬프트에 넣는 텍스트를 미리 줄 단위로 분리.
  • 충돌/회귀: 없음. 분리 규칙 추가만. 단, 원본 MDX가 1줄에 2문장인 경우에만 적용 — 다른 MDX에서 1문장 1줄인 경우는 영향 없음.

7-1. 배경 블록이 다크 디자인 — 보조 영역인데 시각적 주인공

  • 문제: BG_PROMPT가 "다크 배경 박스"로 설계. 전체 슬라이드에서 흰색 바탕에 남색 블록 하나만 있으면 거기에 시선이 먼저 감. 배경은 보조인데 시각적으로는 주인공이 되는 근본적 모순.
  • 해결: BG_PROMPT 자체를 라이트 디자인으로 근본 교체. background: #f8fafc (연회색), border: 1px solid #e2e8f0. 사례 카드도 padding/gap 축소 (6px 8px, gap 8px).
  • 충돌/회귀: 없음. 디자인 변경이고 기능 영향 없음.

7-2. 배경 텍스트가 개조식이 아닌 서술형 원문 그대로

  • 문제: 배경 영역의 문장이 "~인식되고 있다", "~해당한다", "~빈번하다" 등 서술형으로 끝남. 슬라이드는 개조식이어야 하고, 마침표로 끝나는 2-3문장이 불릿 없이 한 덩어리로 들어감.
  • 해결:
    1. 모든 프롬프트에 개조식 통일 규칙 추가: 서술형(~하다/~이다/~있다/~된다) → 개조식(~에 해당/~인식되는 중/~발생 등)
    2. 마침표(.)로 끝나는 문장이 2개 이상이면 별도 불릿(•)으로 분리 (sidebar에만 있던 규칙을 전체로 확대)
    3. 슬라이드 전체에서 문장 끝 형식이 통일되어야 함
  • 충돌/회귀: 없음. 원본 "의미"는 보존하되 "형식"만 슬라이드에 맞게 변환. 범용적 규칙.

5. 충돌/회귀 종합 검토

수정 기존 코드 영향 다른 MDX 영향 판정
1-1 배경 톤 조정 색상 값만 변경 모든 MDX에 동일 적용 안전
1-2 사례 잘림 확인 프롬프트 지시 기존과 동일 영향 없음 안전
2-1 본심 width 100% CSS 값 변경 모든 MDX에 동일 적용 안전
3-1 float 강조 프롬프트 강조 추가 영향 없음 안전
3-2 캡션 명시 프롬프트 텍스트 추가 다른 MDX에서는 해당 topic의 title로 동적 생성 안전
4-1 팝업 링크 명시 프롬프트 텍스트 추가 팝업이 없는 MDX에서는 생성 안 됨 안전
4-2 핵심 메시지 명시 프롬프트 텍스트 추가 + 금지어 core_message에서 동적 생성 안전
5-1 들여쓰기 CSS CSS 추가 모든 MDX에 동일 적용 안전
6-1 문장 분리 분리 규칙 추가 1문장 1줄인 MDX에는 영향 없음 안전
7-1 배경 라이트 디자인 BG_PROMPT 전면 교체 모든 MDX에 동일 적용 안전
7-2 개조식 통일 전체 프롬프트에 규칙 추가 모든 MDX에 동일 적용 안전

회귀 위험: 없음. 충돌 위험: 없음. 하드코딩: 4-2의 핵심 메시지 텍스트는 analysis.core_message에서 동적으로 가져오도록 해야 함 — 하드코딩 아님.


6. 자기 검증 체크리스트

결과물 제출 전 반드시 확인:

  • 배경이 본심보다 시각적으로 강조되지 않는가?
  • 본심 가로 크기가 배경과 동일한가? (둘 다 100%)
  • 본심 이미지가 float:right로 텍스트와 어우러지는가?
  • 본심 이미지 캡션이 적절한가?
  • 본심 우상단에 팝업 링크가 있는가?
  • 본심 하단 핵심 메시지에 임의 텍스트("상위개념", "하위기술", "포함관계")가 없는가?
  • 용어 정의 들여쓰기(padding-left + text-indent)가 적용되어 있는가?
  • 용어 정의에서 2문장이 별도 불릿으로 분리되어 있는가?
  • 텍스트가 원본 MDX의 80-95%를 보존하는가?
  • Kei 메모가 슬라이드에 포함되지 않았는가?
  • 배경이 라이트 디자인(연회색)인가? (다크 배경 아닌가?)
  • 문장 끝이 개조식으로 통일되어 있는가? (서술형 "~하다/~이다" 혼재 없는가?)
  • 마침표로 끝나는 2문장 이상이 별도 불릿으로 분리되었는가?

7. 검증 합격 결과물 참조

영역 파일 프롬프트 위치
배경 data/runs/verify_claude_20260330_212019/verify1.png scripts/verify_claude_1_2.py prompt_1
용어 정의 data/runs/verify_v2_20260331_003421/A_definitions.png scripts/verify_definitions_v2.py prompt_a
본심 data/runs/core_c_fix_20260331_015828/core_c_fix.png scripts/verify_core_c_fix.py (직접 작성 HTML)
footer 이전부터 OK 간단 프롬프트