Phase I: 전수 정합성 복구 + 넘침 처리 패러다임 전환 (14개 항목)
- I-14: SSE 유틸 공통 추출 (src/sse_utils.py 신규, 3개 파일 중복 제거)
- I-13: dead code 3건 삭제 (_call_anthropic_direct, _extract_sse_text x2) + import anthropic 제거
- I-1: STEP_B_PROMPT purpose 가이드 미존재 블록 3개 → 실존 블록 교체
- I-2: catalog.yaml not_for 13건 미존재 블록 참조 교체/제거
- I-12: BLOCK_SLOTS 주석 개수 수정 (cards 9, visuals 6, emphasis 10)
- I-10: INDEX.md 38개 동기화 (삭제된 8개 블록 행 제거)
- I-11: README.md 38개 동기화 (_legacy 제거, 트리/개수 정리)
- I-3: PURPOSE_FALLBACK 상수 + purpose 기반 미등록 블록 교체
- I-7: compare-pill-pair 단독 사용 금지 검증
- I-4: 38개 블록 전체에 slot_desc 추가
- I-5: 편집자 프롬프트에 slot_desc 전달 로직
- I-6: 제목 유사도 70% 초과 시 자동 교정
- I-9: 넘침 판단 Kei API 호출 (KEI_OVERFLOW_PROMPT, call_kei_overflow_judgment)
- I-8: 대형 콘텐츠 정보 Kei overflow 프롬프트에 포함
프로세스 재설계:
- Stage 2.5 제거 → Stage 5에서 Sonnet 감지 + Kei 판단 통합
- _review_balance() 확장: zone 예산 + overflow_detected action 추가
- Stage 5 루프에 Kei 넘침 판단 호출 통합
- _apply_adjustments()에 kei_trim/kei_restructure action 추가
- _build_overflow_context(), _convert_kei_judgment() 헬퍼 함수 추가
- DOWNGRADE_MAP은 Kei API 실패 시 비상용으로만 잔존
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
전수 검토 결과 발견:
- 실제 블록 38개 (문서 46개 표기 → 8개 미존재)
- STEP_B_PROMPT가 미존재 블록 3개를 적극 추천 (프롬프트 자기모순)
- catalog.yaml not_for에서 미존재 블록 참조
- 슬롯 의미 미전달 → 편집자가 source/rows/cards 채우지 못함
13개 항목 3패턴 분류:
A. 프롬프트 자기모순 해소 (I-1~I-3)
B. 슬롯 의미 전달 (I-4~I-5)
C. 코드 안전망 확장 (I-6~I-9)
D. 문서 동기화 (I-10~I-13)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
H-1a: KEI_PROMPT에 제목 중복 방지 지시 추가
H-1b: KEI_PROMPT_B (컨셉 구체화) + refine_concepts() 신규 함수
- 각 꼭지의 relation_type, expression_hint, source_data 판단
- 1회 호출로 전체 꼭지 처리
- session_id: "design-agent-refine" (별도)
- 실패 시 1단계-A 결과 그대로 반환 (pipeline 안 멈춤)
H-5: 팀장에게 relation_type + expression_hint + source_data 전달
- 꼭지 요약에 관계/표현/원본데이터 포함
section-title-with-bg body 금지:
- STEP_B_PROMPT에 규칙 추가
- BODY_FORBIDDEN_MAP + _validate_height_budget에서 코드 레벨 교체
manual_classify fallback 동기화:
- core_message, purpose, source_hint 기본값 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1단계 A/B 분리 계획에 대한 정밀 검토 결과:
- refine_concepts() 실패 처리: A 결과 그대로 사용
- source_data 하류 전달 경로 추가
- section-title-with-bg body 배치 금지 규칙
- 1회 호출로 모든 꼭지 처리 명시
- manual_classify() fallback 동기화
- session_id "design-agent-refine" 별도
- 제목 중복 방지 지시
- expression_hint 역할 재정의 (관계 성격만, 블록 이름은 Opus가)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
H-1: KEI_PROMPT 재설계
- "꼭지 추출" → "슬라이드 스토리라인 설계"
- 핵심 메시지(core_message) 먼저 파악
- 각 위치의 목적(purpose) 부여: 문제제기/근거사례/핵심전달/용어정의/결론강조/구조시각화
- 원본 텍스트 범위(source_hint) 명시
- 원본 보존 원칙 강조
H-2: EDITOR_PROMPT 수정
- "세련된 편집" → "원본 최대 보존, 약간만 축약"
- "빈 슬롯 금지" 명시
- purpose 기반 텍스트 배치
H-3: STEP_B_PROMPT 보강
- purpose 기반 블록 선택 가이드 추가 (참고, 강제 아님)
- 출력 JSON에 purpose 필드 추가
H-4: fill_content()에서 purpose 전달
- slot_requirements에 목적(purpose) 1줄 추가
코드 구조 변경 없음. 프롬프트만 수정. persona_agent 수정 0건.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
다른 Claude가 커밋 시 의도치 않게 삭제한 핵심 템플릿 파일 복원:
- cards/card-text-grid.html
- emphasis/conclusion-accent-bar.html
- emphasis/quote-left-border.html
- emphasis/details-block.html
- visuals/layer-diagram.html
- visuals/pyramid-hierarchy.html
- visuals/timeline-horizontal.html
- visuals/timeline-vertical.html
- _legacy/ 전체 (13개)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. kei_client.py: Kei API가 마크다운 리스트(- ) 접두사로 JSON 응답 시 전처리하여 파싱
2. image_utils.py: base_path+상대경로 이중 시 파일명 rglob 재탐색
3. design_director.py:
- conclusion 꼭지 → footer zone + conclusion-accent-bar 코드 레벨 강제
- _validate_height_budget(): zone별 height_cost 합산 검증, 초과 시 큰 블록 자동 교체
- Opus 추천 프롬프트에 zone 배정 규칙 명시 (conclusion→footer 등)
4. main.py: 서버 startup 시 FAISS 인덱스 + bge-m3 모델 미리 로드
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. kei_client.py _parse_json(): Kei가 마크다운 리스트 접두사(- )를 붙여
JSON 응답하는 경우 전처리하여 파싱. 원본 + 클린 버전 둘 다 시도.
2. image_utils.py: base_path와 상대경로가 이중으로 붙는 경우
파일명으로 rglob 재탐색하여 실제 파일 위치 찾기.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 5단계 파이프라인 상세 (Kei API/Opus/Sonnet 역할 구분)
- 블록 라이브러리 46개 (6 카테고리) 전체 목록
- FAISS 블록 검색 설명 + 인덱스 빌드 방법
- 레이아웃 프리셋 zone 예산 추가
- 기술 스택 단계별 AI 역할 구분
- 프로젝트 구조 전체 반영 (신규 파일 포함)
- 핵심 원칙 업데이트 (컨테이너 예산, grid 코드 결정 등)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1단계 (실장):
- Kei API 연동 복구 (타임아웃 무제한, Kei persona 사고)
- 정보 구조 파악 단계 추가 (본문 흐름 vs 참조 분리)
- 각 꼭지에 role(flow/reference) 부여
- fallback: Anthropic 직접 호출 (info_structure + role 포함)
2단계 (팀장):
- info_structure + role 기반 배치 규칙 추가
- flow → 좌측/메인, reference → 우측/사이드
- detail_target → 본문 제외
- 중복 방지 규칙
파이프라인:
- pipeline.py import re 추가
Figma 관련 (다른 Claude Code 작업분):
- catalog.yaml, figma-screenshots, figma-analysis, 테스트 HTML
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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>