Files
C.E.L_Slide_test2/PROGRESS.md
kyeongmin 33bd3a56c6 5단계 파이프라인 전면 재작성 + Figma 추출 계획 업데이트
DA-12: 1단계 Kei 실장 — 꼭지 2~5개 추출 + 레이어/강조/배치/이미지/표/자세히보기 판단
DA-13: 2단계 디자인 팀장 — catalog 연동 + 블록 매핑 + 공간 배분 + 글자 수 가이드
DA-13b: 3단계 텍스트 편집자 — 글자 수 가이드 참고, 의미 우선 편집 + 자세히보기(요약+상세)
DA-14: 4단계 실무자(AI+코드) + 5단계 팀장 재검토 (균형 점검 → 2차 조정)

문서:
- CLAUDE.md: 5단계 프로세스 + 이미지/표/자세히보기 처리 원칙
- PLAN.md: DA-12~14 태스크 전면 재작성
- PROGRESS.md: 동기화
- FIGMA-COMPONENT-EXTRACTION-PLAN.md: 모드 독립 블록, 변환 규칙, image-block/details-block, MCP, 토큰 매핑

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 08:44:10 +09:00

97 lines
4.7 KiB
Markdown

# Design Agent — 진행 상황
## 현재 상태 요약
| 상태 | 개수 |
|------|------|
| done | 13 |
| in-progress | 0 |
| todo | 3 |
| blocked | 0 |
| **전체** | **16** |
---
## Phase 1: 기반 구축
| 태스크 | 상태 | 담당 | 시작 | 완료 | 메모 |
|--------|------|------|------|------|------|
| DA-1: 프로젝트 셋업 | done | - | - | - | pyproject.toml, .env |
| DA-2: FastAPI 서버 | done | - | - | - | DA-1 이후 |
| DA-3: 디자인 토큰 + 기본 CSS | done | - | - | - | 독립 작업 가능 |
## Phase 2: 블록 템플릿 제작
| 태스크 | 상태 | 담당 | 시작 | 완료 | 메모 |
|--------|------|------|------|------|------|
| DA-4: 비교 블록 | done | - | - | - | DA-3 이후 |
| DA-5: 카드 그리드 | done | - | - | - | DA-3 이후 |
| DA-6: 관계도 | done | - | - | - | DA-3 이후 |
| DA-7: 프로세스 | done | - | - | - | DA-3 이후 |
| DA-8: 강조 인용 | done | - | - | - | DA-3 이후 |
| DA-9: 결론 바 | done | - | - | - | DA-3 이후 |
| DA-10: 비교 테이블 | done | - | - | - | DA-3 이후 |
| DA-11: 슬라이드 조합 렌더러 | done | - | - | - | DA-4~10 이후 |
## Phase 3: AI 파이프라인 연결
| 태스크 | 상태 | 담당 | 시작 | 완료 | 메모 |
|--------|------|------|------|------|------|
| DA-12: 1단계 Kei 실장 (꼭지 추출+분석) | todo | - | - | - | 2~5개 꼭지 + 레이어 + 강조 + 이미지/표/상세 판단. 페이지 분리 |
| DA-13: 2단계 디자인 팀장 (레이아웃 설계) | todo | - | - | - | 블록 매핑 + 이미지/표 배치 + 공간 배분 + 글자 수 가이드 |
| DA-13b: 3단계 텍스트 편집자 (Kei 역할) | todo | - | - | - | 의미 우선 편집 + 표 편집 + 자세히보기(요약+상세) |
| DA-14: 4단계 실무자(AI+코드) + 5단계 재검토 | todo | - | - | - | 디자인 조정 + HTML 조립 + 팀장 균형 재검토 |
## Phase 4: UI + 출력
| 태스크 | 상태 | 담당 | 시작 | 완료 | 메모 |
|--------|------|------|------|------|------|
| DA-15: 프론트엔드 | done | - | - | - | DA-14 이후. HTML 다운로드만 |
| DA-16: 통합 테스트 | done | - | - | - | DA-15 이후 |
---
## 버그 수정 이력
### BF-1: 프론트엔드 SSE 파싱 실패 [발견: DA-15 이후]
- **현상:** 서버는 정상 응답하지만 브라우저에서 결과 미표시. "시작 중..." 고정.
- **원인:** main.py Python 문자열 안에 HTML/JS를 넣어서 `\n`이 실제 줄바꿈으로 변환 → JS `split('\n\n')` 깨짐. 또한 Windows SSE가 `\r\n\r\n`(CRLF)로 구분.
- **해결:** static/index.html 별도 파일로 분리. FileResponse로 서빙. SSE split을 `/\r?\n\r?\n/` 정규식으로 변경.
- **기술:** FileResponse (FastAPI 내장), 추가 의존성 0
- **충돌 검토:** API 경로와 충돌 없음. 기존 코드 변경 없음. Kei persona 무관.
- **상태:** done
### BF-2: 블록 내용이 비어있음 (Jinja2 include 변수 전달 실패) [발견: BF-1 이후]
- **현상:** 슬라이드 HTML은 생성되지만 모든 블록 텍스트가 비어있음. 레이아웃 구조만 있고 내용 없음.
- **원인:** renderer.py에서 Jinja2 `include`로 블록 템플릿을 삽입하는데, `include`는 블록별 변수를 개별 전달하지 못함. Sonnet이 채운 data가 템플릿에 도달 안 함.
- **해결:** `include` 대신 각 블록 템플릿을 `env.get_template().render(**data)`로 개별 렌더링 후 완성된 HTML을 삽입. `render_standalone_block()`이 이미 이 방식으로 동작 중 → 통일.
- **기술:** Jinja2 `get_template().render()` (내장), 추가 의존성 0
- **수정 파일:** renderer.py, templates/slide-base.html
- **충돌 검토:** 블록 템플릿 7개 변경 없음. pipeline.py 호출 시그니처 동일. Kei persona 무관.
- **상태:** done
### BF-3: 한글 깨짐 (다운로드 HTML 파일) [발견: BF-1 이후]
- **현상:** 다운로드한 HTML 파일에서 한글이 `ê±´ì¤ì°ì` 같은 깨진 문자로 표시.
- **원인:** Blob 다운로드 시 UTF-8 BOM 미포함. 일부 에디터/브라우저가 인코딩 자동 감지 실패.
- **해결:** download() 함수에서 Blob 생성 시 UTF-8 BOM(`'\uFEFF'`) 접두사 추가.
- **기술:** JavaScript BOM 1줄, 추가 의존성 0
- **수정 파일:** static/index.html
- **충돌 검토:** 미리보기(iframe)에 영향 없음. SSE 파싱에 영향 없음.
- **상태:** done
## 블로킹 이슈
없음
---
## 완료된 준비 사항
| 항목 | 파일 | 상태 |
|------|------|------|
| 프로젝트 규칙 | CLAUDE.md | 완료 |
| 실행 계획 | PLAN.md | 완료 |
| 진행 추적 | PROGRESS.md | 완료 (이 파일) |
| 기술 조사 | docs/RESEARCH.md | 완료 |
| 폴더 구조 | templates/, samples/, docs/ | 생성 완료 |