Commit Graph

9 Commits

Author SHA1 Message Date
fb67f221f4 Kei API JSON 파싱 실패 수정 + 이미지 경로 재탐색
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>
2026-03-25 19:01:50 +09:00
5052a9f1dc README.md 전면 업데이트 — 현재 코드 상태 반영
- 5단계 파이프라인 상세 (Kei API/Opus/Sonnet 역할 구분)
- 블록 라이브러리 46개 (6 카테고리) 전체 목록
- FAISS 블록 검색 설명 + 인덱스 빌드 방법
- 레이아웃 프리셋 zone 예산 추가
- 기술 스택 단계별 AI 역할 구분
- 프로젝트 구조 전체 반영 (신규 파일 포함)
- 핵심 원칙 업데이트 (컨테이너 예산, grid 코드 결정 등)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:43:01 +09:00
9bd9dad9ac IMPROVEMENT Phase A~D + Phase 2 전체 반영
## IMPROVEMENT (Phase A~D)
- A-1: 4단계 Sonnet 디자인 조정 (_adjust_design) — CSS 변수 cascade
- A-2: 5단계 HTML 전문 프롬프트 전달
- A-3: shrink/expand 하드코딩 제거 → Sonnet target_ratio 기반
- A-4: rewrite action 구현
- A-5: overflow: visible (area 레벨 텍스트 잘림 방지)
- A-6: object-fit cover → contain (이미지 crop 방지)
- A-7: table-layout: fixed
- A-8: container query 폰트 스케일링
- B-1: details-block 템플릿 신규 (CSS 변수만 사용)
- B-2: 인쇄 시 details 자동 펼침 JS
- B-3: catalog에 details-block 등록
- B-4/B-5: images[]/tables[] 상세 판단 + fallback 3곳 동기화
- B-8: fallback card-grid → topic-header + char_guide 제거
- C-1: CLAUDE.md gradient 원칙 완화
- C-3: border-radius 9개 파일 var(--radius) 통일
- C-4: box-shadow 2레벨 → 1레벨
- D-0: 이미지 경로 입력 UI + API base_path
- D-1: Pillow 의존성 + image_utils.py
- D-2~D-4: 이미지 비율/축소방지 프롬프트 전달
- D-5: HTML에 이미지 base64 삽입

## Phase 2 (다른 Claude 작업)
- P2-A: FAISS 블록 검색 (bge-m3, 46개 블록)
- P2-B: SVG N개 자동 배치 (svg_calculator.py)
- P2-C: Opus 블록 추천 (Kei API 경유)
- P2-D: 5단계 재검토 루프 강화 (MAX_REVIEW_ROUNDS=2)
- P2-E: details-block fallback 연동

## 버그 수정 (BF-8~10)
- BF-8: 컨테이너 예산 기반 블록 배치
- BF-9: grid와 Sonnet 역할 분리
- BF-10: catalog mtime 캐시 자동 갱신

## 블록 라이브러리
- 46개 블록 (6 카테고리), catalog/BLOCK_SLOTS/INDEX 동기화
- 구 블록 제거 (quote-block, card-grid, comparison)
- 13개 _legacy 블록 보존

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:40:20 +09:00
91d5779a16 DA-13a + DA-13b 구현: 팀장 2-Step 분리
Step A (규칙 기반, LLM 불필요):
  - select_preset(): reference→sidebar-right, 비교→two-column,
    고강조→hero-detail, 기본→single-column
  - LAYOUT_PRESETS: 4개 프리셋 CSS grid 정의

Step B (Sonnet, 프리셋 CSS 포함):
  - 프리셋의 zone에 꼭지 배정 (flow→body, reference→sidebar)
  - 프리셋 CSS가 프롬프트에 포함되어 팀장이 변경 불가
  - "grid를 변경하지 마라" 명시

fallback: 프리셋 기반 기본 배치 (LLM 실패 시)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:55:50 +09:00
6d53d95fa6 팀장 2-Step 분리 + 실장 detail_target 기준 수정
팀장 (DA-13 → DA-13a + DA-13b):
  - Step A: 레이아웃 프리셋 선택 (규칙 기반, LLM 불필요)
    sidebar-right / two-column / hero-detail / single-column
  - Step B: 프리셋 안에서 블록 매핑 (Sonnet, 프리셋 CSS 포함)
  - 기존 DA-13b(편집자) → DA-13c로 변경

실장 (kei_client.py):
  - detail_target 기준 수정: 근거/사례/용어는 popup이 아님
  - reference는 sidebar에, 근거는 본문에
  - popup은 진짜 상세 데이터(비교표 등)만
  - 1페이지로 담을 수 있으면 억지로 2페이지 안 함

pipeline.py: import re 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:52:33 +09:00
7b034b04b6 Kei API 연동 복구 + 실장 정보구조 분석 + 팀장 role 기반 배치
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>
2026-03-25 11:33:17 +09:00
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
9a780828df Add README.md — 프로젝트 개요, 아키텍처, 설치 방법
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 17:29:55 +09:00
c42e65fc7e Initial commit: Kei Design Agent
콘텐츠를 시각적으로 구조화된 슬라이드 HTML로 변환하는 독립 에이전트.

아키텍처 (4단계 파이프라인):
  1. Kei 실장 (Opus) — 콘텐츠 유형 분류 + 블록 배치
  2. 디자인 팀장 (Sonnet) — 레이아웃 컨셉 (블록 배치 + 페이지 수)
  3. 텍스트 편집자 (Sonnet) — 슬롯 텍스트 정리 (핵심 유지)
  4. CSS Grid 렌더러 — HTML 조립

블록 템플릿 7종:
  comparison, card-grid, relationship, process,
  quote-block, conclusion-bar, comparison-table

기술 스택:
  FastAPI + Anthropic API + Jinja2 + CSS Grid
  Pretendard Variable 한국어 폰트

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