Phase X' 계획: 유형 B 파이프라인 개선 6건 정리
X'-1: 제목 원본에서 가져오기 (Kei가 바꾸지 않도록) X'-2: 들여쓰기 계층 (대/중/소제목+본문) X'-3: 이미지 캡션 원본 형식 X'-4: 상단 빈칸 균등 배분 X'-5: 카드 디자인 개선 X'-6: 표 요약 (하단 우측 Kei 요약) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
90
PHASE-X-PRIME.md
Normal file
90
PHASE-X-PRIME.md
Normal file
@@ -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에서 캡션 추출. ``에서 그대로
|
||||||
|
**파일:** `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가 재구성하는 건 빈 공간 채우기(표 요약)만
|
||||||
Reference in New Issue
Block a user