문서 정리: Phase 히스토리 md를 docs/history/로 이동 + 오래된 테스트/에셋 정리
- 루트의 IMPROVEMENT-PHASE-*.md, PHASE-*.md 등 45개 → docs/history/로 이동 - docs/block-tests/ 오래된 블록 테스트 HTML 삭제 (figma_to_html_agent로 대체) - docs/figma-analysis/, docs/figma-assets/, docs/figma-screenshots/ 정리 - docs/test-*.html 등 초기 테스트 파일 정리 - 참고 페이지/ 스크린샷 정리 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
135
docs/history/PHASE-T-REMAINING.md
Normal file
135
docs/history/PHASE-T-REMAINING.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# Phase T 잔여 작업 — 프롬프트 동적 생성 + 미반영 사항
|
||||
|
||||
> 작성일: 2026-04-02
|
||||
> 상태: Phase T 구조(Stage 0~5)는 완성. 하지만 핵심인 프롬프트가 Phase S 하드코딩 그대로.
|
||||
> 이 문서: 프롬프트 교체 + 미반영 사항 전체 리스트 + 실행 계획.
|
||||
|
||||
---
|
||||
|
||||
## 1. 전체 문제 리스트
|
||||
|
||||
### 1-1. 프롬프트 하드코딩 (근본 문제)
|
||||
|
||||
html_generator.py의 BG_PROMPT, CORE_PROMPT, SIDEBAR_PROMPT, FOOTER_PROMPT 4개가
|
||||
Phase S 때 만든 고정 CSS 값(9px, 10px, #f8fafc, padding:14px 등)으로 박혀있음.
|
||||
Phase T에서 계산한 폰트 위계, 디자인 예산, 블록 레퍼런스가 결과에 반영되지 않는 근본 원인.
|
||||
|
||||
### 1-2. 폰트 크기 위계 미반영
|
||||
|
||||
Phase T Stage 1.5a에서 계산: 핵심=14px, 본심=12px, 배경=11px, 첨부=10px.
|
||||
하지만 프롬프트가 배경=9px, 첨부=10px 등 다른 값을 하드코딩.
|
||||
→ 프롬프트가 Phase T 위계 값을 사용해야 함.
|
||||
|
||||
### 1-3. 배경-본심 가로 길이 불일치
|
||||
|
||||
sidebar-right 구조에서 배경과 본심은 같은 body zone에 있으므로 가로 폭이 동일해야 함.
|
||||
현재 프롬프트가 각각 다른 width를 지정할 수 있어서 Sonnet이 다르게 생성.
|
||||
→ "body 영역 전체 폭 100%" 강제.
|
||||
|
||||
### 1-4. 들여쓰기 불일치
|
||||
|
||||
불릿(•) 첫째줄 텍스트 시작점과 둘째줄 시작점이 정확히 일직선이어야 함.
|
||||
글씨 크기가 영역마다 다르므로(배경 11px, 본심 12px, 첨부 10px) 들여쓰기 px도 각 폰트에 맞게.
|
||||
padding-left와 text-indent를 폰트 크기 기준으로 계산.
|
||||
|
||||
계산 방식:
|
||||
- 불릿 마커 "• " 폭 ≈ font_size × 1.2 (한글 기준)
|
||||
- padding-left = ceil(font_size × 1.2)
|
||||
- text-indent = -padding-left
|
||||
|
||||
| 영역 | 폰트 | padding-left | text-indent |
|
||||
|------|------|-------------|-------------|
|
||||
| 배경 (11px) | 11px | 14px | -14px |
|
||||
| 본심 (12px) | 12px | 15px | -15px |
|
||||
| 첨부 (10px) | 10px | 12px | -12px |
|
||||
|
||||
### 1-5. 블록 선택 → 컨테이너 맞춤 재구성 미반영
|
||||
|
||||
Phase T의 핵심 목적:
|
||||
- Stage 1.7에서 relation_type + expression_hint → 참고 블록 선택
|
||||
- 선택된 블록의 구조(색상, 레이아웃, 패턴)를 따르되 컨테이너 크기에 맞게 재구성
|
||||
- AI가 "발명"하지 않고 검증된 블록 구조를 따르게
|
||||
|
||||
현재: Stage 1.7이 블록을 선택하고 레퍼런스 HTML을 생성하지만,
|
||||
프롬프트가 이것을 무시하고 하드코딩 CSS를 따름.
|
||||
→ 프롬프트가 레퍼런스 HTML을 "따르라"고 지시해야 함.
|
||||
|
||||
### 1-6. 팝업(상세 내용) 별도 HTML 분리
|
||||
|
||||
본문에 다 넣을 수 없는 상세 내용(DX-BIM 비교표 12행 등)은:
|
||||
1. final.html에는 "상세보기" 링크만
|
||||
2. 상세 내용은 별도 첨부 HTML 파일로 생성
|
||||
|
||||
출력 구조:
|
||||
```
|
||||
data/runs/{run_id}/
|
||||
├── final.html ← 슬라이드 본문
|
||||
├── 첨부1_DX_BIM_비교표.html ← details에서 분리된 상세
|
||||
├── 첨부2_xxx.html ← 필요 시 추가
|
||||
└── ...
|
||||
```
|
||||
|
||||
### 1-7. 동일 내용 중복 금지
|
||||
|
||||
같은 내용이 본문에 2번 나오면 안 됨.
|
||||
예: "DX와 BIM 비교표 보기" 링크 + 본문에 비교표 전체 → 중복.
|
||||
비교표는 첨부 HTML로 분리하고, 본문에는 링크만.
|
||||
|
||||
---
|
||||
|
||||
## 2. 수정 완료 항목 (이미 처리됨)
|
||||
|
||||
| # | 항목 | 파일 | 상태 |
|
||||
|---|------|------|------|
|
||||
| A | 동적 비율 72:28 grid 반영 | renderer.py | ✅ 완료 |
|
||||
| B | body-footer 공란 제거 | renderer.py | ✅ 완료 |
|
||||
| C | L4 overflow 시 재생성 트리거 | pipeline.py | ✅ 완료 |
|
||||
|
||||
---
|
||||
|
||||
## 3. 실행 계획
|
||||
|
||||
### Step R-1: 프롬프트 동적 생성 함수 (1-1, 1-2, 1-3, 1-4, 1-5, 1-7 해결)
|
||||
|
||||
**파일:** html_generator.py
|
||||
|
||||
하드코딩 BG_PROMPT/CORE_PROMPT/SIDEBAR_PROMPT/FOOTER_PROMPT를 삭제하고,
|
||||
`build_area_prompt(role, context)` 함수로 교체.
|
||||
|
||||
이 함수가 context에서 가져오는 것:
|
||||
- font_size ← context.font_hierarchy (1-2)
|
||||
- width ← context.containers[role].width_px (1-3)
|
||||
- height ← context.containers[role].height_px
|
||||
- indent_px ← font_size 기반 계산 (1-4)
|
||||
- reference_html ← context.references[role].design_reference_html (1-5)
|
||||
- design_budget ← context.containers[role].design_budget
|
||||
- "중복 금지" 규칙 (1-7)
|
||||
|
||||
### Step R-2: 팝업 별도 HTML 생성 (1-6 해결)
|
||||
|
||||
**파일:** pipeline.py (Stage 5), html_generator.py
|
||||
|
||||
Stage 0에서 추출된 popups[]를 별도 HTML 파일로 생성.
|
||||
final.html에는 "상세보기" 링크만 남기고, 상세 내용은 첨부N_제목.html로 저장.
|
||||
|
||||
### Step R-3: 검증 + 시뮬레이션
|
||||
|
||||
**파일:** scripts/test_phase_t_audit.py 확장
|
||||
|
||||
- 프롬프트에 하드코딩 px 값이 없는지 검사
|
||||
- font_hierarchy 값이 프롬프트에 반영되는지 확인
|
||||
- 들여쓰기 CSS가 폰트 크기 기반인지 확인
|
||||
- 레퍼런스 HTML이 프롬프트에 포함되는지 확인
|
||||
- 팝업 별도 HTML 생성 확인
|
||||
- 실제 데이터로 전체 시뮬레이션
|
||||
|
||||
---
|
||||
|
||||
## 4. 실행 순서
|
||||
|
||||
```
|
||||
Step R-1 (프롬프트 동적 생성) → Step R-3 (검증)
|
||||
Step R-2 (팝업 분리) → Step R-3 (검증)
|
||||
```
|
||||
|
||||
R-1이 가장 크고 핵심. R-2는 독립 작업.
|
||||
Reference in New Issue
Block a user