Files
C.E.L_Slide_test2/docs/architecture/IMPROVEMENT-PLAN.md
kyeongmin 7a2615fb4b 개선 설계 문서 추가: 토큰 기반 통일 + 블록 구조 부품화 + 2경로 파이프라인
- 목표: MDX → BEPs 매칭 → 슬라이드 자동 생성
- 핵심 축: 표현 기준 통일, 블록 역할 재정의, direct-fit/recipe 2경로화
- 6단계 진행 계획: 토큰 → slide-base 분리 → 규칙 문서 → 폴더 정리 → 블록 전환 → 파이프라인 연결
- 역할 분리: figma_to_html_agent(원재료) / design_agent(조립 시스템)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 12:02:51 +09:00

5.7 KiB

C.E.L. Slide Pipeline — 개선 설계

목표

MDX 콘텐츠를 넣으면, 중목차/소목차 기준으로 BEPs 디자인과 매칭하여 슬라이드를 자동 생성한다.

현재는 블록마다 스타일이 제각각이고, 매칭/조립/크기 조정이 불완전하여 수작업 보정이 필요한 상태. 이를 토큰 기반 통일 + 블록 구조 부품화 + 파이프라인 2경로화로 개선한다.


개선 방향

현재 문제 개선 방향
블록마다 폰트/색/여백이 직접 박혀있어 통일 안 됨 토큰으로 공통 기준 확정, 블록은 변수 참조
slide-base에 구조+스타일이 섞여있음 프레임(HTML)과 스타일(CSS) 분리
블록이 완성 HTML이라 재사용/조합이 어려움 블록 = 구조 부품, 스타일은 테마로 분리
블록 매칭이 파일명/tag 중심 속성 테이블(catalog) 기반 매칭
크기 조정이 1회 렌더로 끝남 입력→조정 반복 (빈 공간/overflow 자동 재분배)
검증이 overflow만 시각 품질까지 검증 (정렬, 위계, 가독성)

핵심 축 3개

1. 표현 기준 통일

typography, spacing, colors, layout을 토큰으로 확정하여 모든 블록이 이 공통 기준을 따르게 한다.

2. 블록의 역할 재정의

블록 = 완성 HTML이 아니라 구조 부품. 구조 스타일(flex, grid)은 블록에, 직접값(font-size, color)은 토큰으로 분리한다.

3. 파이프라인 2경로화

  • direct-fit: BEPs 매칭 → 블록 삽입 + 크기 조절
  • recipe/composition: 미매칭 → 꼭지 정리 → redesign + 반복 조정

실행 원칙

direct-fit 기준: direct-fit은 구조, 슬롯, 시각 위계가 기존 블록과 거의 1:1로 대응될 때만 허용한다.

recipe-path 목적: recipe/composition 경로는 미매칭 콘텐츠를 새로운 구조로 재정리하되, 기존 visual language를 최대한 상속한다.

fit 루프 우선순위: fit 조정은 줄바꿈 → 간격 조정 → preview 축약 → 폰트 1단계 축소 순으로 수행한다.


진행 계획

1단계: 토큰 기준 확정

목표: 모든 블록이 따라야 할 공통 기준표 확정

토큰 내용
typography 대목차/중목차/소목차/본문/캡션/footer 크기·굵기·줄간격
spacing padding/gap/indent/margin
colors 1층 공통 테마색 (title, body, border, card-bg, accent)
colors 2층 블록 의미색 (compare-left/right, role-a/b, pill-left/right)
layout slide-base 위치값 (body-top, body-height, footer-bottom)

2단계: slide-base CSS 분리

목표: slide-base를 프레임 전용으로 얇게

  • HTML에서 <style> 추출 → 외부 CSS
  • 직접값 → 토큰 변수로 교체
  • slide-base = 대목차 + divider + body container + footer만 책임

3단계: 블록 작성 규칙 문서

목표: 블록화 시 참조할 기준 제공 (두 에이전트 간 계약서)

  • 구조 스타일 OK (display:flex, grid, align-items, overflow)
  • 직접값 금지 (hardcoded font-size/color/padding)
  • 값은 토큰 참조 (var(--font-body))
  • 클래스명 규칙 (.zone-title, .bul 등)
  • 슬롯 규칙 (zone_title, sub_title, body, bullets, image 등)

4단계: 폴더 구조 정리

목표: 프레임/구조/스타일/메타/자산 분리

templates/
├── base/           ← 프레임 (slide-base)
├── blocks/
│   ├── structures/ ← 구조 부품 (토큰 기반)
│   ├── recipes/    ← 조합형 구조
│   └── legacy/     ← 기존 블록 (점진 전환)
├── styles/
│   ├── tokens/     ← 공통 기준값
│   ├── themes/     ← 톤 변형 (light/dark/formal)
│   ├── base/       ← slide-base CSS
│   └── blocks/     ← 블록별 CSS
├── assets/         ← 이미지/SVG/텍스처
└── catalog/        ← 속성 테이블 (blocks/recipes/rules)

5단계: 기존 블록 점진 전환

목표: Figma 1:1 HTML → 토큰 기반 재사용 블록으로 전환

5-1. 블록 분류 먼저

분류 의미 전환 순서
direct-fit candidate 바로 사용 가능 먼저 (토큰 교체만)
recipe component candidate 조합용 부품 다음
rewrite required 구조부터 다시 마지막

5-2. 분류 결과에 따라 전환

  • figma_to_html_agent/blocks/ 완료물을
  • 토큰 기준에 맞춰 templates/blocks/structures/
  • 한 번에 다 뜯지 않고 점진적으로

6단계: 파이프라인 연결

목표: TO-BE 프로세스 완성

  • TF-IDF 기반 direct-fit block 매칭
  • 미매칭 시 recipe/composition 경로 전환
  • 토큰 기반 resize
  • 입력→조정 반복 (fit 루프 확장)
  • 시각 품질 검증 강화

Source of Truth:

기준 위치
구조 판정 normalized.sections
블록 매칭 catalog/blocks.yaml
스타일 기준 styles/tokens/ + styles/themes/

역할 분리 (동시 진행)

figma_to_html_agent (원재료)     design_agent (조립 시스템)
─────────────────────          ──────────────────────
"이 블록은 무엇인가"              "이 블록을 언제 쓸까"
구조 유형 발견                    토큰 기준 확정
슬롯 정의                        catalog 필드 설계
자산 메타                        direct-fit vs recipe 규칙
seam/crop/anchor                 theme/token 적용
                                 fit/validation

         ↓ 접점: 블록 작성 규칙 문서 (3단계) ↓
         블록화 시 이 규칙에 맞춰 전환