diff --git a/PHASE-X-PRIME.md b/PHASE-X-PRIME.md new file mode 100644 index 0000000..d5543d5 --- /dev/null +++ b/PHASE-X-PRIME.md @@ -0,0 +1,90 @@ +# 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가 재구성하는 건 빈 공간 채우기(표 요약)만