- Phase N: catalog 개선, fallback 전면 제거, Kei API 무한 재시도, topic_id 버그 수정 - Phase O: 컨테이너 스펙 계산(비중→px), 블록 스펙 확정, 렌더러 container div - Step B(Sonnet) 제거: Kei(A-2)+코드로 대체. STEP_B_PROMPT/fallback/DOWNGRADE_MAP 삭제 - Selenium: container div 감지 추가 - catalog.yaml: ref_chars 구조 변환 + FAISS 재빌드 - 문서 전면 갱신: README, PROGRESS, IMPROVEMENT, Phase I~O md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
119 lines
5.2 KiB
Markdown
119 lines
5.2 KiB
Markdown
# Design Agent — 진행 상황
|
|
|
|
## 현재 상태 요약 (2026-03-27 기준)
|
|
|
|
| 상태 | 내용 |
|
|
|------|------|
|
|
| **완료** | Phase 1~5 기반 구축, Phase I~N 개선, Step B 제거 + 죽은 코드 정리 |
|
|
| **진행 중** | Phase O 컨테이너 시스템 (코드 작성 완료, 미세 조정 필요) |
|
|
| **미해결** | 컨테이너 크기 vs 블록 크기 불일치, Selenium container div 미감지 |
|
|
|
|
---
|
|
|
|
## ✅ 완성된 것
|
|
|
|
### 파이프라인 핵심
|
|
- 5단계 파이프라인 작동 (1A→1B→컨테이너계산→A-2→블록스펙→3→4→측정→5)
|
|
- Kei API 무한 재시도 (모든 Kei 호출. fallback 없음. 제한 없음)
|
|
- Step B(Sonnet 블록 매핑) 제거 — Kei(A-2) + 코드(Phase O)로 대체
|
|
- 죽은 코드 전면 정리 (STEP_B_PROMPT, _fallback_layout, PURPOSE_FALLBACK, DOWNGRADE_MAP, _downgrade_fallback, _apply_defaults, manual_classify)
|
|
|
|
### 블록/카탈로그
|
|
- 블록 라이브러리 38개 (6 카테고리)
|
|
- catalog.yaml 개선 완료 (when/not_for/purpose_fit)
|
|
- FAISS 인덱스 재빌드 완료 (bge-m3, 38블록)
|
|
- topic_id/id 양쪽 체크 버그 수정
|
|
|
|
### 레이아웃
|
|
- 프리셋 자동 선택 (sidebar-right, two-column, hero-detail, single-column)
|
|
- Kei 비중 시스템 (page_structure weight — 콘텐츠마다 동적)
|
|
- Phase O 컨테이너 스펙 계산 (calculate_container_specs)
|
|
- Phase O 블록 스펙 확정 (finalize_block_specs)
|
|
- 비중 기반 grid row 컨테이너 (renderer.py)
|
|
|
|
### 측정/검수
|
|
- Phase L Selenium 렌더링 측정 (scrollHeight/clientHeight)
|
|
- Phase N-4 스크린샷 캡처 (slide.screenshot_as_base64)
|
|
- Stage 5 Opus 멀티모달 검수
|
|
|
|
### 인프라
|
|
- 중간 산출물 추적 (data/runs/{timestamp}/)
|
|
- 실행 리포트 생성 (scripts/generate_run_report.py)
|
|
- SSE 스트리밍 유틸 (sse_utils.py)
|
|
- 이미지 크기 측정 + base64 삽입 (image_utils.py)
|
|
|
|
### 버그 수정 완료
|
|
- BF-1: SSE 파싱 실패 → static/index.html 분리 + 정규식
|
|
- BF-2: Jinja2 변수 전달 실패 → get_template().render() 방식
|
|
- BF-3: 한글 깨짐 → UTF-8 BOM 추가
|
|
- BF-4: body 블록 겹침 → _group_blocks_by_area() OrderedDict
|
|
- BF-5: 제목 미표시 → 프리셋 area명 header 통일
|
|
- BF-7: 블록 텍스트 비어있음 → topic_id 매칭 개선
|
|
- BF-8: 컨테이너 예산 기반 배치 → zone별 budget_px
|
|
- BF-9: grid와 Sonnet 역할 분리 → 코드가 grid 강제
|
|
- BF-10: catalog 캐시 갱신 → mtime 체크
|
|
|
|
---
|
|
|
|
## 🟡 진행 중
|
|
|
|
### Phase O 컨테이너 시스템
|
|
- **코드 작성 완료:** calculate_container_specs(), finalize_block_specs(), 렌더러 컨테이너 div
|
|
- **문제 확인됨:** 배경 20%=117px에 topic 2개 → 각 58px. callout-warning(122px)이 안 맞음
|
|
- **원인:** height_cost "medium"(80~200px)이 컨테이너 58px보다 큰데 통과됨
|
|
- **필요 조치:** 컨테이너 px가 작을 때 topic당 블록 높이를 더 정밀하게 제약
|
|
|
|
### Phase L 피드백 루프
|
|
- **동작:** 측정 → overflow 감지 → _max_chars_total 축소 → 편집자 재호출
|
|
- **문제:** `_MEASURE_SCRIPT`가 `.area-*`만 검색. Phase O의 `.container-*` div를 못 찾음
|
|
- **필요 조치:** slide_measurer.py에 container div 셀렉터 추가
|
|
|
|
### BF-6: sidebar 카드 찢어짐
|
|
- Phase J에서 column_override + SIDEBAR_FORBIDDEN_BLOCKS 추가
|
|
- 완전 해결 여부 테스트 필요
|
|
|
|
---
|
|
|
|
## ❌ 미해결 → ✅ 해결됨 (2026-03-27)
|
|
|
|
| 항목 | 해결 내용 |
|
|
|------|---------|
|
|
| 컨테이너 px vs 블록 높이 불일치 | `_max_allowed_height_cost()`를 topic당 높이(per_topic_px)로 판단하도록 수정 |
|
|
| Selenium container div 미감지 | `_MEASURE_SCRIPT`에 `.container-*` 셀렉터 추가 + pipeline.py에서 container overflow 체크 |
|
|
| catalog.yaml schema 글자수 하드코딩 | 37개 필드를 `ref_chars` + `max_lines` + `font_size` 구조로 변환. FAISS 재빌드 완료 |
|
|
|
|
---
|
|
|
|
## Phase 이력
|
|
|
|
| Phase | 내용 | 상태 | 비고 |
|
|
|-------|------|------|------|
|
|
| 1~3 | 기반 구축 + 블록 템플릿 + AI 파이프라인 | 완료 | |
|
|
| 4 | UI + 출력 | 완료 | |
|
|
| 5 | 블록 라이브러리 확장 (38개) | 완료 | |
|
|
| A~D | 슬라이드 품질 핵심 | 완료 | 일부 Phase O로 대체 |
|
|
| G | Kei API 통신 정상화 | 완료 | |
|
|
| H | 스토리라인 설계 기반 전환 | 완료 | |
|
|
| I | 전수 정합성 복구 (14건) | 완료 | |
|
|
| J | 블록 선택 권한 재정의 | 완료 | Step B 제거로 일부 무력화 |
|
|
| K | purpose 기반 시각적 위계 | 완료 | |
|
|
| K-1 | 중간 산출물 저장 | 완료 | |
|
|
| L | Selenium 렌더링 측정 | 완료 | container div 감지 미완 |
|
|
| M | Kei 비중 시스템 | 완료 | Phase O로 교체 |
|
|
| N | 4대 핵심 문제 해결 | 완료 | catalog, fallback, topic_id, 무한재시도 |
|
|
| **O** | **컨테이너 기반 레이아웃** | **진행 중** | 코드 완료, 미세 조정 필요 |
|
|
| — | Step B 제거 + 죽은 코드 정리 | 완료 | Phase O 후속 |
|
|
|
|
---
|
|
|
|
## 프로젝트 구조
|
|
|
|
| 항목 | 파일 | 상태 |
|
|
|------|------|------|
|
|
| 프로젝트 규칙 | CLAUDE.md | 완료 |
|
|
| 개선 계획 | IMPROVEMENT.md | Phase O까지 반영 |
|
|
| 진행 추적 | PROGRESS.md | 이 파일 (2026-03-27 갱신) |
|
|
| 전체 감사 | CLEANUP-AUDIT.md | 유효/무력화 분류 완료 |
|
|
| Phase별 상세 | IMPROVEMENT-PHASE-{A~O}.md | 각 Phase 기록 |
|
|
| README | README.md | Phase O + Step B 제거 반영 |
|