kyeongmin 9fbe3ac90c add: figma_to_html_agent/blocks/ + 변환 도구 docs 갱신
전체 401 files (397 추가 + 4 수정), 14304 insertions.

추가:
- figma_to_html_agent/blocks/ — Figma 변환 결과 (32 frame, ~79MB).
  각 frame folder = {analysis.md, flat.md, texts.md, index.html, assets/,
  _renders/, _render.py, RELATIONSHIPS.md / STATUS.md / classification.md
  (일부 frame)}.
  Phase Z 의 *figma source layer* — runtime 에서 직접 사용 X, contract /
  partial / builder adapter (미래 axis A) 의 source.
- figma_to_html_agent/DISCUSSION-SUMMARY-20260411.md — 변환 설계 회의 기록.
- figma_to_html_agent/HARNESS.md — 변환 검증 harness.
- figma_to_html_agent/scripts/fetch_figma_screenshots.py — Figma 스크린샷 자동 수집.

수정:
- figma_to_html_agent/PROCESS-CONTROL.md / PROCESS.md / RULES.md —
  변환 프로세스 / 룰 갱신 (R8/R9 lock 강화 등).
- figma_to_html_agent/blocks_index.md — 32 frame 인덱스 갱신.

Phase Z 영향 0 (figma_to_html_agent/blocks/ 가 V4 catalog +
templates/phase_z2/families adapter 의 source — runtime 에서 직접 import X).

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

C.E.L. Slide Pipeline

이 프로젝트는 무엇인가

MDX 기반 콘텐츠를 입력하면, 1280×720 슬라이드 HTML로 자동 변환하는 파이프라인입니다.

텍스트 콘텐츠를 넣으면, 구조를 분석하고 BEPs(Figma) 디자인을 매칭하여 슬라이드를 만들어줍니다.


어떻게 구성/구현되어 있는가

전체 흐름

MDX 입력 → 정규화 → 꼭지 추출(AI) → zone 구분 → BEPs 매칭 → 조립 → 검증 → 출력

구조

  • slide-base: 1280×720 슬라이드 프레임. 대목차 + 구분선 + 본문 영역 + 핵심 인사이트(footer)
  • zone: 본문 영역 안에서 중목차(##) 기준으로 나뉘는 영역 (top/bottom 등)
  • 블록: zone 안에 들어가는 디자인 단위. Figma에서 추출한 BEPs 디자인을 HTML/CSS로 변환한 것
  • catalog: 블록의 메타 정보 (구조, 슬롯, 매칭 조건)

주요 파일

파일 역할
src/pipeline.py 파이프라인 오케스트레이션
src/section_parser.py 중목차 추출, 구조 분류
src/block_reference.py BEPs 디자인 매칭
src/block_assembler.py 슬라이드 HTML 조립
templates/blocks/slide-base.html 슬라이드 프레임
templates/catalog.yaml 블록 메타 정보

산출물

각 실행은 data/runs/{run_id}/ 아래에 저장됩니다.

파일 내용
final.html 최종 슬라이드
final_context.json 파이프라인 결과 데이터
steps/*.html 단계별 디버그 보드
첨부*_상세*.html popup 상세 내용

무슨 문제가 있는가

문제 설명
블록마다 스타일이 제각각 각 블록 HTML 안에 font-size, color, padding이 직접 박혀있어서, 같은 슬라이드 안에서 블록이 섞이면 위계가 안 맞음
slide-base에 구조+스타일 혼재 프레임 HTML 안에 전체 CSS가 인라인으로 들어있어서 유지보수가 어려움
블록이 완성 HTML 블록이 구조+스타일+값을 모두 포함하고 있어서, 재사용/조합이 안 됨
매칭 안 되면 고정 렌더 BEPs에 맞는 블록이 없을 때 코드가 1회 고정 렌더하고 끝. 반복 조정 없음
빈 공간/overflow 방치 렌더 후 빈 공간이 있어도 조정 안 하고, overflow만 감지
검증이 약함 overflow 측정만 하고, 정렬/위계/가독성 같은 시각 품질은 미검증

어떻게 개선하려 하는가

핵심은 3가지입니다.

  1. 블록을 구조 부품화 — 완성 HTML이 아니라, 구조만 담고 스타일은 토큰으로 분리
  2. 스타일을 토큰으로 통일 — 블록마다 제각각인 폰트/색/여백을 공통 기준으로
  3. 2경로 파이프라인 — 매칭되면 바로 쓰고(direct-fit), 안 되면 재구성(recipe)

AS-IS → TO-BE

AS-IS:
  AI가 먼저 꼭지를 추출하고
  → 매칭 블록이 있으면 삽입, 없으면 코드가 1회 고정 렌더
  → 빈 공간이 있어도 그냥 둠
  → 블록마다 font-size, color가 직접 박혀있어서 섞이면 위계 안 맞음

TO-BE:
  중목차 기준으로 zone을 먼저 나누고
  → TF-IDF로 BEPs 매칭 시도
  → 매칭되면 블록 삽입 + 크기 조절 (direct-fit)
  → 안 되면 AI가 꼭지 정리 + 유사 디자인으로 redesign + 반복 조정 (recipe)
  → 빈 공간/overflow를 자동 재분배
  → 모든 블록이 토큰 기반이라 스타일 통일

현재 상태

대상 슬라이드 변환 파이프라인 자동화
MDX 03 (3개 목표 + 비교표) 완료 파이프라인 연결
MDX 02 (목표 + 프로세스 + 상세표) 완료 △ 파이프라인 연결, 시각 품질 개선 중
MDX 01 (Type A, sidebar 구조) 완료 (개별) 미연결
토큰 기반 CSS 체계 - 정의 완료, slide-base 적용
Figma 블록 추출 - 진행 중 (figma_to_html_agent/blocks/)

다음 단계 방향

순서 단계 내용
1 폴더 구조 정리 structures/recipes/legacy 분리
2 기존 블록 점진 전환 분류(direct-fit/recipe/rewrite) → 토큰 기반 전환
3 catalog 고도화 파일명 중심 → 속성 테이블 기반 매칭
4 파이프라인 연결 TF-IDF 매칭 + recipe/composition 경로
5 fit 루프 확장 빈 공간 재분배, preview 축약, 자동 조정 반복
6 시각 품질 검증 정렬, 위계, 가독성 검증 강화

상세: IMPROVEMENT-PLAN.md


참고 문서

문서 내용
IMPROVEMENT-PLAN.md 개선 설계 (목표/방향/6단계 계획)
TOKENS-v1.md 토큰 위계 기준표 초안
BLOCK-RULES.md 블록 작성 규칙 (에이전트 간 계약서)
Description
No description provided
Readme 214 MiB
Languages
Python 86.6%
HTML 12.7%
CSS 0.7%