diff --git a/docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md b/docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md index 46e76a9..a9ad748 100644 --- a/docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md +++ b/docs/architecture/PHASE-Z-PIPELINE-STATUS-BOARD.md @@ -1,6 +1,6 @@ # Phase Z — pipeline status board -**Snapshot date** : 2026-04-30 (OVERVIEW reframe sync — Layer A / Universal Region Model / Operating Principles 반영) +**Snapshot date** : 2026-05-04 (B1~B5 + trace-only runtime 연결 closure 반영 — Layer A telemetry first activation) **역할** : 현재 위치표 / grading snapshot. *지도 본문* 은 [`PHASE-Z-PIPELINE-OVERVIEW.md`](PHASE-Z-PIPELINE-OVERVIEW.md). | 문서 | 역할 | 변동 | @@ -39,25 +39,25 @@ Step 0 은 본체가 아닌 *준비 조건*. Step 1 (MDX 업로드) 부터가 ru | — | 0 | 사전 준비 (catalog / contract / V4 / template / asset) | ⚠ partial | | A | 1 | MDX 업로드 | ✅ | | A | 2 | MDX 정규화 | ⚠ partial | -| A | 3 | Content Object 추출 | ❌ | -| A | 4 | Section Internal Composition Planning | ❌ | +| A | 3 | Content Object 추출 | ⚠ partial (B1 v0 dormant module + trace-only runtime 호출, render path 미연결) | +| A | 4 | Section Internal Composition Planning | ⚠ partial (B2 v0 dormant module + trace-only runtime 호출, render path 미연결) | | A | 5 | Matching Evidence 생성 | ⚠ partial (rank-1 only) | | A | 6 | Composition Planning | ⚠ partial | | A | 7 | Slide-Level Layout Planning | ⚠ partial (count-based) | -| A | 8 | Zone + Internal Region Ratio Planning | ⚠ partial (zone-level horizontal-2 만 dynamic, region-level 미구현) | -| A | 9 | Region-Level Frame / Display Selection | ⚠ Step 5 와 conflate + region-level 미구현 | -| A | 10 | Frame Contract 확인 | ⚠ partial (no sub_zones) | -| A | 11 | Content Unit / Child Group → Internal Region → Frame Slot Mapping | ❌ | +| A | 8 | Zone + Internal Region Ratio Planning | ⚠ partial (zone-level horizontal-2 만 dynamic, region-level 은 B2 안 partial) | +| A | 9 | Region-Level Frame / Display Selection | ⚠ partial (B4 가 catalog cover + declaration order 로 frame 선택 분담 / V4 evidence 미통합 / Step 5 와 conflate 잔존) | +| A | 10 | Frame Contract 확인 | ⚠ partial (B3 의 accepted_content_types + sub_zones 선언 추가 — B4 만 읽음, mapper 미읽음 / density envelope 별 axis) | +| A | 11 | Content Unit / Child Group → Internal Region → Frame Slot Mapping | ⚠ partial (B4 v0 dormant 2-stage + region 1:1 sub_zone + narrowest first + trace-only runtime 호출, render path 미연결) | | A | 12 | Slot Payload 생성 | ✅ (deterministic) | | B | 13 | Render | ✅ | -| C | 14 | Selenium Visual Runtime Check | ⚠ partial (text/structural only) | +| C | 14 | Selenium Visual Runtime Check | ⚠ partial (text/structural overflow + B5 frame_slot_metrics F29 만 / image / table 검사 부재) | | C | 15 | Fit Classification (A1) | ✅ | | C | 16 | Overflow Router (A2) | ✅ | | C | 17 | Implemented Action 실행 (A3) | ⚠ partial (zone_ratio_retry only) | | C | 18 | Failure Classification (A4-1) | ✅ | | C | 19 | Next Action Proposal (A4-2) | ⚠ partial (1-D mapping) | | C | 20 | Slide Status 결정 | ✅ | -| C | 21 | Debug / Trace 기록 | ⚠ partial (planning trace 누락 + region-level telemetry 미기록) | +| C | 21 | Debug / Trace 기록 | ⚠ partial (placement_trace per-zone 기록 + frame_slot_metrics F29 기록 — render path 활성화 X / region marker partial 미주입) | | C | 22 | 사용자 확인 / Export | ⚠ future (UI 영역 — 현재 범위 외) | 범례 : @@ -68,21 +68,50 @@ Step 0 은 본체가 아닌 *준비 조건*. Step 1 (MDX 업로드) 부터가 ru --- -## 3. 핵심 missing +## 3. 핵심 missing (전이 후) + +이전 Step 3 / 4 / 11 = ❌ missing → **본 session 작업으로 ⚠ partial 로 전이**. + +**현재 *남은* gap** : ``` -Step 3. Content Object 추출 -Step 4. Section Internal Composition Planning - (3-way decision tree + Internal Region 분할) -Step 11. Content Unit / Child Group → Internal Region → Frame Slot Mapping +1. render path 의 placement_trace 활용 X + - B4 PlacementPlan 이 trace-only — render_slide() / mapper 가 미사용 + - region-id / content_unit-id marker 가 partial template 에 미주입 (B5 후속 axis) + +2. B4 frame_selection 의 V4 evidence 미통합 + - B4 v0 = catalog declaration order 만 (cover + first-match) + - composition_planner 의 V4 rank-1 와 *cross-axis 비교 자료* 만 — 통합 미완 + +3. region-level / Frame Slot-level partial 측정 + - B5 v0 frame_slot_metrics = F29 1 partial 만 + - F13 / F16 marker 미적용 + +4. 그 외 잔존 + - rules 2~5 (region-preview-details / region-grid-2x2 / region-main-support / + region-horizontal-split) 의 algorithm 미구현 (SPEC v1 §2.5 deferred) + - frame contract 의 density envelope 미선언 + - tabular_overflow / image_aspect_mismatch 검사 부재 (Step 14) + - layout_adjust / frame_reselect / details_popup_escalation / image_fit / + frame_internal_fit_candidate (Step 17 missing actions) 미구현 ``` -이 3 step 의 부재가 → Step 5 / 6 / 7 / 8 (region-level) / 9 (region-level) / 10 / 12 / 21 의 ⚠ partial 의 *원인 종속*. +**Cross-cutting Layer A — 진전 단계 정리** : -**Cross-cutting missing — Zone Internal Region (Layer A)** : -- *first-class entity* 로 lock 됨 ([`PHASE-Z-PIPELINE-OVERVIEW.md`](PHASE-Z-PIPELINE-OVERVIEW.md) Universal Region Model 참조) -- Step 4 / 8 / 9 / 11 의 *granularity unit* 이 zone → region 으로 한 단계 내려감 — 그 layer 자체의 schema / 구현 *부재* -- 도면 (OVERVIEW) 에는 반영됐으나 SPEC / PLAN / 코드 어디에도 *Layer A 의 schema / 구현* 없음 +| 단계 | 상태 | +|---|---| +| (a) OVERVIEW reframe (Layer A first-class lock + Universal Region Model) | ✓ | +| (b) SPEC v1 schema (Internal Region §2 + topology vocabulary §2.5 + 2-stage placement §4) | ✓ | +| (c) PLAN v1 (cross-ref sync) | ✓ | +| (d) B1 v0 ContentObject extractor (dormant) | ✓ | +| (e) B2 v0 InternalRegion planner (dormant) | ✓ | +| (f) B3 frame_contracts.yaml extension (dormant catalog 면) | ✓ | +| (g) B4 v0 placement planner (dormant) | ✓ | +| (h) B5 v0 Frame Slot telemetry markers (F29 만) | ✓ | +| (i) trace-only runtime 연결 (B1→B2→B4 real data 첫 호출 / debug.json placement_trace) | ✓ | +| (j) **render path 활성화 (region marker partial 주입 / B4 → mapper 통합 / V4 evidence 통합)** | **❌ pending** | + += (a)~(i) 완료 + (j) 가 *남은 핵심 axis* (B5 후속 / runtime 통합). **Step 22** 는 별도 범주 (UI 영역 — 현재 자동 파이프라인 범위 외). @@ -97,6 +126,7 @@ Step 11. Content Unit / Child Group → Internal Region → Frame Slot Mapping - **Step 5 (evidence 생성) 와 Step 9 (final frame / display 선택) 가 분리** 된 구조 적절. 현재 conflate 된 건 구현 결손이지 도면 결손 아님. Step 9 의 unit of analysis = *region* 으로 reframe (OVERVIEW) - **A1~A4 는 post-render telemetry layer**. 진짜 fit policy 의 자리는 Block A (composition planning, region 분할 포함). C block 은 *exception 처리 + 진단 안내* - **Universal Region Model 적용 후에도 step numbering 보존** : Layer A 도입은 step 추가가 아니라 Step 4 / 8 / 9 / 11 의 *granularity unit shift* 로 흡수됨. step 0 ~ 22 그대로 +- **Layer A trace-only runtime 활성화 = boolean 차원 X** : B1~B4 가 *real MDX runtime 위에서 호출* 되나 *render path 미대체*. debug.json 의 placement_trace = *진단 telemetry only* — final.html / canonical SHA 미영향. *render 활성화* 는 별 axis (B5 후속) --- @@ -117,7 +147,7 @@ Step 0 (사전 준비) 의 Figma → HTML 변환은 *precondition phase 의 작 ## 6. 현재 병목 (한 줄) -> 현재 Phase Z 는 post-render telemetry / status 는 많이 구축되었으나, *일반 MDX 대응을 위한 pre-render planning*, 특히 *content_object extraction* (Step 3) / *section internal composition planning* (Step 4 — 3-way decision + Zone Internal Region 분할) / *Internal Region → Frame Slot mapping* (Step 11) 이 핵심 gap. 추가로 *runtime contract-registered / verified frame set 이 text-frame 중심* 이라 mixed-content (image / table / details) 처리는 frame 매칭이 아니라 display strategy 로만 가능 — 전체 frame inventory audit 또는 contract 등록 확장이 별 영역. +> 현재 Phase Z 의 *Layer A pre-render planning* (Step 3 / 4 / 11) 은 본 session 작업으로 ❌ → ⚠ partial 전이 (B1/B2/B4 dormant module + trace-only runtime 호출). *Layer A telemetry 의 first activation* — debug.json 의 placement_trace per-zone + frame_slot_metrics F29 partial 기록. 단 **render path 활성화는 미완** : B4 PlacementPlan 이 mapper output 을 *대체하지 않고* trace-only / region-id / content_unit_id marker 가 partial template 에 *미주입* / B4 frame_selection 이 V4 evidence *미통합*. 핵심 다음 axis = **(B5 후속) render path 의 placement_trace 활용 + region marker runtime activation + V4 통합**. *runtime contract-registered / verified frame set 이 text-frame 중심* 한계는 잔존 (frame inventory audit / refinement 별 axis). ---