diff --git a/README.md b/README.md index 0ca51c4..0eff81c 100644 --- a/README.md +++ b/README.md @@ -1,158 +1,289 @@ -# C.E.L. Slide Pipeline +# Design Agent / C.E.L Slide Automation -## 이 프로젝트는 무엇인가 +## 1. 프로젝트 개요 -MDX 기반 콘텐츠를 입력하면, 1280×720 슬라이드 HTML로 자동 변환하는 파이프라인입니다. +MDX 문서를 입력받아 1280×720 프레젠테이션 슬라이드 HTML 로 자동 변환하는 파이프라인. -텍스트 콘텐츠를 넣으면, 구조를 분석하고 BEPs(Figma) 디자인을 매칭하여 슬라이드를 만들어줍니다. +- **입력**: MDX (텍스트 + 표 + bullets + JSX block + details + image) +- **변환**: V4 frame matching → Phase Z render pipeline +- **출력**: `final.html` (단일 슬라이드) + step artifact (의사결정 trace) +- **최종 목표**: pipeline + AI repair + DB/catalog + frontend editor 가 연결된 *제품형* 시스템 + +원천 디자인 = Figma BEPs frame (32 frame) → `figma_to_html_agent/blocks/` 에 HTML/CSS 변환물 누적. V4 catalog (`tests/matching/v4_full32_result.yaml`) 가 MDX section ↔ frame 매칭 점수/label 산출. Phase Z 가 V4 결과를 받아 *render-able slide* 로 번역. --- -## 어떻게 구성/구현되어 있는가 +## 2. 전체 실행 구조 (22-step pipeline) -### 전체 흐름 +```mermaid +flowchart TD + Input([MDX Input]) + Input --> S1_2["Step 1-2
MDX Upload & Normalize"] + S1_2 --> S3_4["Step 3-4
Content Object &
Internal Composition Planning"] + S3_4 --> S5["Step 5
V4 Frame Evidence
rank 1 + non-reject max-6"] + S5 --> S6["Step 6
Composition Planning"] + S6 --> S7["Step 7
Layout Candidates
8 preset vocabulary"] + S7 --> S8["Step 8
Zone / Internal Region /
Display Strategy"] + S8 --> S9["Step 9
Application Plan
V4 후보 → 적용 방식 번역"] + S9 --> S10_12["Step 10-12
Frame Contract / Slot Mapping / Payload"] + S10_12 --> S13["Step 13
Render final.html
Jinja2 + frame partial"] + S13 --> S14["Step 14
Visual Runtime Check
Selenium"] + S14 --> Visual{"Visual OK?"} + Visual -->|Yes| S20["Step 20
PASS / Slide Status"] + Visual -->|No| S15_19["Step 15-19
Fit Classification / Router /
Retry / Next Action"] + S15_19 --> Repair{"Repair 방식?"} + Repair -->|Deterministic
zone_ratio / popup / layout_adjust| S13 + Repair -->|AI Required
restructure / low score / overflow 반복| AI["AI Repair / Restructure Layer
(향후 axis)"] + AI --> S13 + S20 --> S21_22["Step 21-22
Debug / Trace / Export / Front 연결"] -``` -MDX 입력 → 정규화 → 꼭지 추출(AI) → zone 구분 → BEPs 매칭 → 조립 → 검증 → 출력 + classDef stage fill:#e7f5ff,stroke:#1971c2,color:#000 + classDef render fill:#fff3cd,stroke:#f59f00,color:#000 + classDef telemetry fill:#f3f0ff,stroke:#7048e8,color:#000 + classDef decision fill:#ffd8a8,stroke:#d9480f,color:#000 + classDef future fill:#f8f9fa,stroke:#868e96,color:#000,stroke-dasharray: 5 5 + + class S1_2,S3_4,S5,S6,S7,S8,S9,S10_12 stage + class S13 render + class S14,S15_19,S20,S21_22 telemetry + class Visual,Repair decision + class AI future ``` -### 구조 +**Block 구분** : `Block A (PRE-RENDER PLANNING, Step 0~12)` · `Block B (RENDER, Step 13)` · `Block C (POST-RENDER TELEMETRY / EXCEPTION HANDLING, Step 14~22)`. *진짜 fit policy 의 자리* = Block A. C block 은 *exception 처리 layer*. -- **slide-base:** 1280×720 슬라이드 프레임. 대목차 + 구분선 + 본문 영역 + 핵심 인사이트(footer) -- **레이아웃:** slide-body 안의 zone 분배 형태 (Type A/B/B'/B'') -- **zone:** 레이아웃이 정한 콘텐츠 영역 (top/bottom 등) -- **프레임 (구 "블록"):** zone 안에 들어가는 디자인 단위. Figma에서 추출한 BEPs 디자인을 HTML/CSS로 변환한 것 -- **catalog:** 프레임의 메타 정보 (구조, 슬롯, 매칭 조건) +**텍스트 list** (모든 22 step) : -> ⚠️ Phase Z (2026-04-28) 부터 "블록" → "프레임" 으로 용어 통일. 기존 코드 (`block_reference.py`, `templates/blocks/`, `BLOCK-RULES.md` 등) 는 점진적 정리. +``` +Block A — PRE-RENDER PLANNING (Step 0~12) + Step 0 precondition (catalog / contract / V4 / template / asset) + Step 1 MDX 업로드 + Step 2 MDX 정규화 (frontmatter / heading tree / footer) + Step 3 Content Object 추출 (text_block / table / image / details / ...) + Step 4 Section Internal Composition Planning (whole / group / split) + Step 5 V4 Matching Evidence (non-reject max-6 후보 list) + Step 6 Composition Planning (composition unit 결정) + Step 7 Slide-Level Layout Planning (8 preset vocabulary) + Step 8 Zone + Internal Region Ratio Planning + Step 9 Region-Level Frame / Display Selection (application_plan) + Step 10 Frame Contract 확인 + Step 11 Content → Internal Region → Frame Slot Mapping + Step 12 Slot Payload 생성 -### 주요 파일 +Block B — RENDER (Step 13) + Step 13 Render (Jinja2 + frame partial → final.html) -| 파일 | 역할 | -|------|------| -| `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` | 블록 메타 정보 | +Block C — POST-RENDER TELEMETRY / EXCEPTION HANDLING (Step 14~22) + Step 14 Selenium Visual Runtime Check + Step 15 Fit Classification + Step 16 Overflow Router + Step 17 Implemented Action 실행 (zone_ratio_retry / details_popup_escalation / ...) + Step 18 Failure Classification + Step 19 Next Action Proposal + Step 20 Slide Status 결정 (PASS / RENDERED_WITH_VISUAL_REGRESSION / ...) + Step 21 Debug / Trace 기록 + Step 22 사용자 확인 / Export +``` -### 산출물 +각 step 의 ✅ / ⚠ / ❌ 정확한 상태는 [`STATUS-BOARD.md`](docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md) 가 single source of truth. -각 실행은 `data/runs/{run_id}/` 아래에 저장됩니다. +**위계 (Slide → Frame Slot)**: -| 파일 | 내용 | -|------|------| -| `final.html` | 최종 슬라이드 | -| `final_context.json` | 파이프라인 결과 데이터 | -| `steps/*.html` | 단계별 디버그 보드 | -| `첨부*_상세*.html` | popup 상세 내용 | +``` +Slide → Zone → Internal Region → Frame → Frame Slot → Content +``` + +22-step 도면 lock = [`docs/architecture/PHASE-Z-PIPELINE-OVERVIEW.md`](docs/architecture/PHASE-Z-PIPELINE-OVERVIEW.md) +현재 snapshot = [`docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md`](docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md) +axis history = [`docs/architecture/PHASE-Z-CHANGE-LOG.md`](docs/architecture/PHASE-Z-CHANGE-LOG.md) --- -## 무슨 문제가 있는가 +## 3. 현재 완료 수준 -| 문제 | 설명 | -|------|------| -| **블록마다 스타일이 제각각** | 각 블록 HTML 안에 font-size, color, padding이 직접 박혀있어서, 같은 슬라이드 안에서 블록이 섞이면 위계가 안 맞음 | -| **slide-base에 구조+스타일 혼재** | 프레임 HTML 안에 전체 CSS가 인라인으로 들어있어서 유지보수가 어려움 | -| **블록이 완성 HTML** | 블록이 구조+스타일+값을 모두 포함하고 있어서, 재사용/조합이 안 됨 | -| **매칭 안 되면 고정 렌더** | BEPs에 맞는 블록이 없을 때 코드가 1회 고정 렌더하고 끝. 반복 조정 없음 | -| **빈 공간/overflow 방치** | 렌더 후 빈 공간이 있어도 조정 안 하고, overflow만 감지 | -| **검증이 약함** | overflow 측정만 하고, 정렬/위계/가독성 같은 시각 품질은 미검증 | +### 3.1 MDX03 정상 경로 (PASS) + +``` +overall : PASS +visual_check_passed : true +full_mdx_coverage : true +adapter_needed_count : 0 +content_truncated_count: 0 +units : 03-1 → F13 (use_as_is, 0.927) + 03-2 → F29 (use_as_is, 0.920) +``` + +### 3.2 22-step 진행 수준 + +상세는 [`STATUS-BOARD.md`](docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md) 의 표 참조. 큰 그림: + +- **✅ implemented**: Step 1 / 12 / 13 / 15 / 16 / 18 / 20 +- **⚠ partial**: Step 0 / 2 / 5 / 6 / 7 / 8 / 9 / 10 / 14 / 17 / 19 / 21 +- **❌ missing 또는 future**: Step 3 (content_object) / 4 (internal composition) / 11 (slot mapping) / 22 (UI) + +→ 22-step 일반화 진행 수준 ≈ **65~70%**. MDX03 정상 경로는 *닫힘*. 일반화 (다른 MDX / edge case / fallback path / UI) 는 진행 중. + +### 3.3 박힌 axis (시간 순) + +이번 session 박힌 주요 axis: + +- **Step 7-A / 7-B**: layout catalog yaml + select_layout_candidates(unit_count) (catalog axis) +- **Step 8-A / 8-B-1 / 8-B-2**: region_layouts.yaml + display_strategies.yaml + 후보 함수 +- **Step 5 보완**: V4 rank-1 → non-reject max-6 후보 list +- **Step 6-A**: CompositionUnit 에 v4_candidates 필드 (additive, logic 무변) +- **Step 7-conn / 8-conn**: catalog 후보 함수 → runtime artifact 연결 (passive 기록) +- **Step 9 v0**: passive application_plan artifact (V4 후보 + layout/region/display 통합 trace) +- **F29 visual fidelity fix**: missing SVG 3 개 → CSS gradient 재현 (figma 원본 R8 룰 따라) +- **cleanup-1**: stale 주석 정정 (`pipeline 호출처 X` → 호출처 박힘) + +### 3.4 폐기된 안 (history 보존) + +CHANGE-LOG 에 박힘: + +- **compat 매트릭스 안** (Step 9 초기 안) — V4 cardinality 재계산 위험으로 폐기 +- **6-B (frame ownership transfer)** — misframed axis. V4 가 frame 선택, Step 6 은 전사, Step 9 는 번역. "Step 6 의 frame 채택 책임 이전" = 허구. + +### 3.5 검증 / 실험 repo 성격 + +본 repo 는 *제품형 시스템* 까지의 진행 과정에서 *검증 재료* 로 다음 sample 사용: + +- `samples/mdx_batch/03.mdx` — 기준 sample (MDX03 정상 경로 lock) +- `samples/mdx_batch/04.mdx` — MDX04 검증 예정 +- `samples/mdx/01. ...mdx` / `02. ...mdx` — 향후 검증 + +샘플 MDX 는 *로드맵 단계* 가 아니라 *22-step pipeline 보완을 위한 검증 재료*. --- -## 어떻게 개선하려 하는가 +## 4. 향후 로드맵 -핵심은 3가지입니다. +```mermaid +flowchart LR + R1["1. 22-step Pipeline
Stabilization
frame 연결 / visual check 보강 /
MDX 정리 / 01·02·04 검증
"] + R2["2. Phase Q Audit & Salvage
옛 25 모듈 검토 → Z 이식"] + R3["3. AI Repair /
Restructure Layer
low score / reject /
restructure / overflow
"] + R4["4. DB / Catalog
Integration
frame / V4 / runs / overrides"] + R5["5. Frontend Connection
run / timeline /
rank 후보 / plan
"] + R6["6. HTML Editing /
User Overrides
user_overrides.json"] + R7["7. Continuous Frame
Adapter Updates
Figma → Phase Z adapter"] -1. **블록을 구조 부품화** — 완성 HTML이 아니라, 구조만 담고 스타일은 토큰으로 분리 -2. **스타일을 토큰으로 통일** — 블록마다 제각각인 폰트/색/여백을 공통 기준으로 -3. **2경로 파이프라인** — 매칭되면 바로 쓰고(direct-fit), 안 되면 재구성(recipe) + R1 --> R2 --> R3 --> R4 --> R5 --> R6 --> R7 -### AS-IS → TO-BE + classDef current fill:#fff3cd,stroke:#f59f00,color:#000 + classDef future fill:#f3f0ff,stroke:#7048e8,color:#000 + classDef later fill:#f8f9fa,stroke:#868e96,color:#000,stroke-dasharray: 5 5 -> ⚠️ 아래 AS-IS / TO-BE 는 Phase Q ~ T 시점의 흐름. **현재 (Phase Z) 흐름은 [`IMPROVEMENT-REDESIGN.md`](IMPROVEMENT-REDESIGN.md)** 참조. + class R1 current + class R2,R3 future + class R4,R5,R6,R7 later +``` + +**현재 위치** : 단계 (1) 22-step Pipeline Stabilization. MDX03 정상 경로 닫힘 / 일반화 진행 중. + +### 단계별 상세 ``` -AS-IS (Phase Q ~ T): - AI가 먼저 꼭지를 추출하고 - → 매칭 블록이 있으면 삽입, 없으면 코드가 1회 고정 렌더 - → 빈 공간이 있어도 그냥 둠 - → 블록마다 font-size, color가 직접 박혀있어서 섞이면 위계 안 맞음 +1. 22-step 파이프라인 정리 (현재) + ├ frame ↔ Phase Z 연결 구조 정리 (= V4 frame 후보 → Phase Z render path 연결 확장) + │ · F14 / F11 / F18 등 미연결 frame 의 contract / partial / builder adapter + │ · Figma 새 디자인 X / V4 새 매칭 X — 이미 두 layer 에 있는 frame 의 adapter + ├ visual check 범위 정리 (Step 14 보강) + │ · missing image / table clipping / image aspect mismatch / underfilled zone + ├ MDX 정규화 / 정리 방법 적용 (Step 2 / 3 / 4) + └ MDX 01 / 02 / 04 검증을 통해 보완 (edge case 발견 + pipeline 일반화) -TO-BE (Phase Q ~ T): - 중목차 기준으로 zone을 먼저 나누고 - → TF-IDF로 BEPs 매칭 시도 - → 매칭되면 블록 삽입 + 크기 조절 (direct-fit) - → 안 되면 AI가 꼭지 정리 + 유사 디자인으로 redesign + 반복 조정 (recipe) - → 빈 공간/overflow를 자동 재분배 - → 모든 블록이 토큰 기반이라 스타일 통일 +2. Phase Q 재검토 후 Phase Z 반영 + ├ src/ 안 옛 25 모듈 audit (slide_measurer, space_allocator, content_editor 등) + ├ 살릴 기능 식별 → Phase Z 로 이식 + └ tests/matching/ 의 V4 진화 history / DECK / ATTACH 자료도 같이 검토 -NEW (Phase Z, 2026-04-28 ~): - STAGE 1) MDX 분석 + 레이아웃 매칭 (Type A/B/B'/B'') - STAGE 2) Zone 별 텍스트 1차 배치 - STAGE 3) Zone 별 프레임 매칭 — V1~V4 (완벽/어정쩡/안됨 분기) - STAGE 4) 프레임 검토 + 컨테이너 조정 (5차 Fallback) - STAGE 5) HTML 조립 (slide-base + Jinja2) + 검증 + 출력 - ⭐ AI = zone 안 콘텐츠만 / HTML 구조 = 코드 (Jinja2) - ⭐ 자유 디자인 금지 — 프레임 DB 참고 필수 - ⭐ MDX 원문 무손실 보존 +3. AI 적용 관련 프로세스 정립 및 적용 + ├ low score / all reject / light_edit / restructure / overflow 반복 케이스 + ├ AI repair / restructure / popup / layout adjust + ├ MDX 원문 보존 lock (AI 가 원문 삭제 / 요약 / 재작성 X) + └ 연결 step: Step 9 / 12 / 17 / 19 / 21 + +4. DB / Catalog 정리 + ├ frame catalog / contracts + ├ V4 results + ├ run history / step artifacts + ├ user overrides + └ 선택 이력 (rank-N 사용자 선택 trace) + +5. Front 연결 + ├ run 목록 / preview.png / final.html + ├ 22-step timeline (각 step artifact 시각) + ├ V4 rank 1~6 후보 표시 + 사용자 선택 + ├ layout / region / application_plan 표시 + └ visual check / retry / failure / next action 결과 + +6. HTML 수정 기능 추가 + ├ 텍스트 수정 + ├ 이미지 크기 / 위치 조정 + ├ frame 후보 변경 (rank-N 선택) + ├ layout / region 조정 + └ user_overrides.json 저장 (final.html 직접 수정 X — MDX 원문 보존 정합) + +7. 이후 frame 지속 업데이트 + ├ Figma → HTML 변환 추가 (figma_to_html_agent) + ├ Phase Z adapter 연결 (1 의 frame ↔ Phase Z 연결 axis 와 같은 결) + ├ contract / partial / builder 추가 + └ V4 catalog 와 runtime 동기화 ``` +→ MDX03 / 04 / 01 / 02 검증은 **(1) 22-step 정리 안의 *수단*** — 별 단계 X. + --- -## 현재 상태 +## 5. 운영 기준 -| 대상 | 슬라이드 변환 | 파이프라인 자동화 | -|------|-------------|----------------| -| MDX 03 (3개 목표 + 비교표) | ✅ 완료 | ✅ 파이프라인 연결 | -| MDX 02 (목표 + 프로세스 + 상세표) | ✅ 완료 | △ 파이프라인 연결, 시각 품질 개선 중 | -| MDX 01 (Type A, sidebar 구조) | ✅ 완료 (개별) | 미연결 | -| 토큰 기반 CSS 체계 | - | ✅ 정의 완료, slide-base 적용 | -| Figma 블록 추출 | - | 진행 중 (`figma_to_html_agent/blocks/`) | -| **매칭 시스템 (V1~V4)** | - | **✅ 별도 검증 완료** (`tests/`) — TARGET 3/4 | -| **Phase Z 통합 설계** | - | **✅ 설계 완료** (`IMPROVEMENT-REDESIGN.md`) — 구현 대기 | +### 5.1 절대 lock + +- **MDX 원문 무손실 보존** — AI 가 normal path 에서 MDX 원문을 *재작성 / 삭제 / 요약 X*. 원문은 본문 preview 또는 details/popup 에 *반드시* 보존. +- **자유 디자인 금지** — Figma frame DB / catalog / frame contract 기반으로만 디자인 결정. AI 가 frame / layout / 새 디자인 패턴 *생성 X*. +- **그릇 변경 원칙** — 콘텐츠가 안 맞을 때 *콘텐츠를 줄이지 않음*. *그릇* (layout / zone / region / frame / display strategy) 을 변경. 공통 CSS / padding / tolerance 임의 축소 *금지*. +- **dropped 절대 룰** — `text_block / table / image / details` 는 dropped 절대 X (catalog `forbidden_for` lock). decorative_element 만 dropped 가능. + +### 5.2 V4 ↔ Phase Z 책임 분담 + +- **V4** = frame 선택 (점수 + label: use_as_is / light_edit / restructure / reject) +- **Step 5 (Phase Z)** = V4 후보 list 추출 (non-reject max-6, raw 32 entry 영속) +- **Step 6** = composition unit 결정 (어느 section 묶음 = 1 zone unit). 현재 V4 rank-1 default 전사 +- **Step 9 v0** = V4 후보 → application_plan 번역 (V4 axis 재계산 X) + - `use_as_is` → `direct_insert` + - `light_edit` → `same_frame_with_adjustment` + - `restructure` → `layout_or_region_change` (auto_applicable=False, human_review delegate) + - `reject` → `exclude` + +### 5.3 렌더 정책 + +- **현재 렌더** = V4 rank-1 (Step 6 default) +- **rank 2~6 보존** = Step 9 application_plan + Step 5 evidence 에 trace. 향후 frontend 에서 사용자 선택 가능. +- **final.html 직접 수정 X** — frontend 에서 변경 시 `user_overrides.json` 으로 누적 (원문 보존 정합). --- -## 다음 단계 방향 — Phase Z 매칭 시스템 통합 +## Repository Mirrors -상세: [IMPROVEMENT-REDESIGN.md](IMPROVEMENT-REDESIGN.md) +본 프로젝트는 두 repository 에서 mirror 로 관리됨: -| 단계 | 내용 | -|------|------| -| Phase Z-1 | 통합 prototype — Stage 1.7 만 V4 로 교체, MDX 03 회귀 | -| Phase Z-2 | 매칭 + 프리셋 (Type A/B/B'/B'') 통합 | -| Phase Z-3 | 컨테이너 검증 + 5 차 Fallback | -| Phase Z-4 | 전체 통합 + 검증 | +- **GitHub** : https://github.com/keimin86/design_agent +- **Gitea** : https://gitea.hmac.kr/Kyeongmin/C.E.L_Slide_test2 -**핵심 위계** (Phase Z 정리) : -``` -slide → slide-base → slide-body → 레이아웃 → Zone → 프레임 -``` - -**5 단계 새 흐름** : -1. MDX 분석 + 레이아웃 매칭 -2. Zone 별 텍스트 배치 -3. Zone 별 프레임 매칭 (완벽 / 어정쩡 / 안 됨) -4. 프레임 검토 + 컨테이너 조정 -5. HTML 조립 + 검증 + 출력 +두 저장소의 README 와 코드 base 는 동일하게 유지 (push 시 둘 다 fast-forward). --- ## 참고 문서 -| 문서 | 내용 | -|------|------| -| [IMPROVEMENT-REDESIGN.md](IMPROVEMENT-REDESIGN.md) | **Phase Z 통합 설계** (위계 / 용어 / 5 단계 흐름) | -| [docs/architecture/FRAME-INTEGRATION-MAP.md](docs/architecture/FRAME-INTEGRATION-MAP.md) | **32 frame Zone 적용 분류** (`zone_direct/adapt/extract/reference_only`) | -| [docs/architecture/PHASE-Z-FRAME-STYLE-INVENTORY.md](docs/architecture/PHASE-Z-FRAME-STYLE-INVENTORY.md) | **Frame / Style / Token 인벤토리** (32 frame + 18 token + 6 legacy) | -| [PROCESS_OVERVIEW.html](PROCESS_OVERVIEW.html) | 임원 보고용 A4 2 페이지 (프로세스 + 구조도) | -| [tests/PIPELINE.md](tests/PIPELINE.md) | 매칭 시스템 (V1~V4) 통합 정리 | -| [PROGRESS.md](PROGRESS.md) | 전체 Phase 이력 (Phase 1~T + R' + Z) | -| [CLAUDE.md](CLAUDE.md) | 프로젝트 규칙 + Phase Z 위계 | -| [IMPROVEMENT-PLAN.md](docs/architecture/IMPROVEMENT-PLAN.md) | 개선 설계 (이전 Phase Q 까지) | -| [TOKENS-v1.md](docs/architecture/TOKENS-v1.md) | 토큰 위계 기준표 | -| [BLOCK-RULES.md](docs/architecture/BLOCK-RULES.md) | 블록 작성 규칙 | +| 문서 | 역할 | +|---|---| +| [`CLAUDE.md`](CLAUDE.md) | 프로젝트 규칙 + Phase Z 위계 | +| [`PHASE-Z-PIPELINE-OVERVIEW.md`](docs/architecture/PHASE-Z-PIPELINE-OVERVIEW.md) | 22-step 도면 (구조 lock) | +| [`PHASE-Z-PIPELINE-STATUS-BOARD.md`](docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md) | 현재 snapshot (✅ / ⚠ / ❌) | +| [`PHASE-Z-CHANGE-LOG.md`](docs/architecture/PHASE-Z-CHANGE-LOG.md) | axis-by-axis 의사결정 history | +| [`PHASE-Z-CONTENT-OBJECT-SUBZONE-SPEC.md`](docs/architecture/PHASE-Z-CONTENT-OBJECT-SUBZONE-SPEC.md) | content_object + Internal Region + Frame Slot SPEC | +| [`PHASE-Z-FIT-CLASSIFIER-ROUTER-SPEC.md`](docs/architecture/PHASE-Z-FIT-CLASSIFIER-ROUTER-SPEC.md) | Step 14~19 telemetry layer SPEC | +| [`IMPROVEMENT-REDESIGN.md`](IMPROVEMENT-REDESIGN.md) | Phase Z 통합 설계 핵심 | +| [`PROCESS_OVERVIEW.html`](PROCESS_OVERVIEW.html) | 임원 보고용 A4 2 페이지 (프로세스 + 구조도) | +| [`PROGRESS.md`](PROGRESS.md) | 전체 Phase 이력 (Phase 1~T + R' + Z) |