diff --git a/docs/architecture/PHASE-Q-AUDIT.md b/docs/architecture/PHASE-Q-AUDIT.md index 5059ba1..c0d004c 100644 --- a/docs/architecture/PHASE-Q-AUDIT.md +++ b/docs/architecture/PHASE-Q-AUDIT.md @@ -1265,14 +1265,41 @@ L5. (factual note — §1 매핑 누적) — §1 audit lens 의 B-1 매핑 정 ## 4. 우선순위 재정렬 -> §1 / §3 결과를 [`PHASE-Z-ROADMAP.md`](PHASE-Z-ROADMAP.md) §5 / §7-B 에 반영. *후속 turn*. +> **검증 기준**: 특정 MDX / 특정 frame 결과를 고정하지 않는다. backend 보강 axis 는 샘플별 PASS/FAIL, coverage, trace 설명 가능성을 확인한다. catalog 확장이나 V4 개선으로 선택 frame 이 바뀌는 것은 허용하며, 하드코딩된 MDX 03 baseline 으로 변화를 막지 않는다. 검증 대상 sample 은 axis 적용 시 별 turn 에서 결정. +> +> audit 결과 → 어느 항목이: +> - **Salvage 적용 시 빠르게 끝남** (작은 작업) → 우선순위 ↑ +> - **새로 만들기** (큰 작업) → 우선순위 ↓ 또는 분해 +> - **별 axis** (§1 lens 밖, deterministic 보강) → 별도 그룹 +> +> 후속 작업 = [`PHASE-Z-ROADMAP.md`](PHASE-Z-ROADMAP.md) §5 / §7-B 반영. -audit 결과 → 어느 항목이: -- **Salvage 적용 시 빠르게 끝남** (작은 작업) → 우선순위 ↑ -- **새로 만들기 + Reference 만 가능** (큰 작업) → 우선순위 ↓ 또는 분해 -- **해당 없음** (Phase Q 에 없음 또는 무관) → §1 표에서 제외 +### 4-A. 우선순위 ↑ (Salvage 적용 시 빠르게 — 작은 작업) -후속 작업 = ROADMAP §5 / §7-B 갱신. +- **A-1 Stage 0 normalize 통합** — §2.1+§2.2 chained Salvage (adapter + dual-write 검증) +- **A-6 Zone 좌표 export** — §2.3 `_MEASURE_SCRIPT` JS extension Salvage (`getBoundingClientRect()` 추가 + step08 export 1 layer) + +### 4-B. 우선순위 중 (새로 만들기 — 핵심 path) + +- **A-2 Catalog 확장 (핵심 unblocker — 작업량 큼)** — frame_contracts + frame_partials 32 frame 등록. 다른 axis unblock. *risk note: catalog 확장 시 frame 선택 변경 허용 — 단 기존 성공 샘플이 FAIL 로 떨어지는지와 trace 설명 가능성 확인* +- **A-5 V4 fallback** — Phase Z Step 9 / Step 16 확장 (`calculate_fit` 통째 Migrate 금지 — dual path 위험). *risk note: fallback path 추가 시 status semantics 일관성 검토 — 신설 status 의미 명시* +- **B-1 Zone-section override** — CLI 인자 + pipeline override path (backend path) +- **B-2 Edited HTML → MDX** — 글벗 `fmt_slide.html_to_slide_mdx` 참조 가능 (backend path) + +### 4-C. 우선순위 ↓ (새로 만들기 — 별 axis 활성 시 또는 분해) + +- **A-3 Frame preview 일관성** — §2.3 `capture_slide_screenshot` Salvage 후보 (A-3 구현 axis 활성 시) +- **A-4 slide-base iframe mode** — 새로 만들기 conditional CSS (embedded vs standalone) +- **B-3 Sub-section drag drop** — Phase Z section_id schema 확장 (backend schema) +- **B-4 다른 layout zone-geometry** — build_layout_css 분기 확장 (backend layout) +- **D-1 filtered_section_reasons UI** — frontend 신규 (D-1 frontend axis) +- **D-2 Frame min_height 표시** — catalog `min_height_px` 직접 참조 + frontend resize hint + +### 4-D. 별 axis — Step 16/17 retry 정밀화 (22-step 안 deterministic 보강) + +- §2.4 `redistribute` + §2.5 glue (`compute_glue_css_overrides` + `calculate_glue_absorption` + `SPACING_GLUE`/`GlueSpec`) + §2.5 font compression (`find_fitting_font_size` + `FONT_SIZE_STEPS`) — 3 묶음 Salvage (deterministic) +- A-5 V4 fallback 과 분리 — Step 16 `router_decision` action 의 실 구현 +- **AI fallback 아님** — AI 격리 invariant 안 (AI 호출 X) --- @@ -1320,7 +1347,7 @@ audit 결과 → 어느 항목이: | 2026-05-12 | §2.10 block_reference.py / block_selector.py audit | 완료 — Mixed (Reference Only heavy + 일부 high-level Phase R' / Kei prompt entries Archive). Salvage Candidate 0. block_reference utilities (`_get_jinja_env` / `_load_catalog` / `_get_block_by_id` / `_match_visual_type` / `_match_by_tags` / `VISUAL_TYPE_KEYWORDS`) + block_selector utilities + filtering (`load_catalog` / `_get_block_by_id` / `select_block_candidates` / `select_fallback_candidates` / 상수) = Reference Only. **block_reference high-level entries (`select_reference_block` / `generate_design_reference` / `select_and_generate_references`) = Phase R' reference path Archive (§2.8 / §2.9 와 같은 Phase R' core 그룹)**. block_selector `format_candidates_for_prompt` = Kei prompt formatter Archive (`kei_client.py` used). §3 적용 대상 없음. 별도 surface: §1 A-2 매핑 간접, K1 Phase R' reference path Archive marker, K2 Kei prompt formatter Archive marker, K3 block_selector legacy unused + dual path, K4 deterministic utilities reference axis, K5 catalog/_get_block_by_id 중복 cleanup axis, K6 §1 매핑 factual note | | 2026-05-12 | §2.11 pipeline.py / pipeline_context.py audit (마지막) | 완료 — Mixed (Archive heavy — Phase Q+R'+T master orchestrator + utility Reference Only). **pipeline.py = Phase T 11-Stage AI orchestration main implementation (Phase Q+R'+T 모듈 모두 consume)**. Salvage Candidate 0. Main orchestration (`generate_slide` / `generate_slide_legacy` / `_retry_kei` / `_adjust_design` / `_review_balance` / `_apply_adjustments` / `_convert_kei_judgment`) = Archive. utility (`run_stage` / `_save_step` / `_build_overflow_context` / `_parse_json`) = Reference Only. pipeline_context.py = Reference Only (Pydantic schema + PipelineContext lifecycle methods). §3 적용 대상 없음. 별도 surface: §1 B-1 매핑 간접 (pipeline orchestration entry, direct composition planner 아님), 누적 §1 매핑 정정 axis weight ↑, utility 중복 (_parse_json 등) cleanup axis, L1 master orchestrator Archive marker, L2~L3 utility/schema reference axis, L4 cleanup axis, L5 §1 factual note | | 2026-05-12 | §3 Salvage Plan 작성 | 완료 — §2.1~§2.11 audit 합산. Salvage Candidate **8 후보 묶음** lock: §1 lens 직접 매핑 4 (§2.1+§2.2 A-1 chained / §2.3 A-6) + A-3 conditional 1 (§2.3 `capture_slide_screenshot`) + 별 axis Step 16/17 retry 3 (§2.4 `redistribute` + §2.5 glue + §2.5 font compression). 구조 = §3-A (§1 lens 12 rows) + §3-B (별 axis 3 rows) — (γ) 중간안. 3-C Archive 명시 제외 / 3-D dual-write 상세는 §2 결론 중복 + 적용 axis 활성 시 작업 (over-engineering 회피). prelude 1 줄 — 8 후보 묶음 inventory | -| (then) | §4 우선순위 재정렬 → ROADMAP 갱신 | (대기) | +| 2026-05-12 | §4 우선순위 재정렬 + ROADMAP 갱신 | 완료 — guardrail 박힘 (특정 MDX / frame 고정 금지, process 기준 — PASS/FAIL + coverage + trace 설명 가능성). 4 그룹 분류: **4-A ↑** (A-1 + A-6 Salvage 빠른) / **4-B 중** (A-2 핵심 unblocker — 작업량 큼 + A-5 + B-1 + B-2 새로 만들기 핵심) / **4-C ↓** (A-3 + A-4 + B-3 + B-4 + D-1 + D-2) / **4-D 별 axis** Step 16/17 retry deterministic 보강. A-2/A-5 risk note 박힘 (frame 변경 허용 + trace 설명 / fallback status semantics 명시). PHASE-Z-ROADMAP.md §5 inline (audit 결과) + §7-B mini summary table (12 lens + Step 16/17 retry 한 줄) | ### 정정 pass 2 실행 원칙 diff --git a/docs/architecture/PHASE-Z-ROADMAP.md b/docs/architecture/PHASE-Z-ROADMAP.md index 7fb0ccd..4df87ab 100644 --- a/docs/architecture/PHASE-Z-ROADMAP.md +++ b/docs/architecture/PHASE-Z-ROADMAP.md @@ -142,10 +142,12 @@ frontend (`design_agent_front/design-agent`) 와 backend phase_z2 의 연결 axi - audit 결과 반영 (Migrate 항목 우선 통합) - frontend session 에서 발견된 보완 지점 (§7-B A 그룹) 반영 - Stage 0 normalize / V4 fallback / zone 좌표 export / slide-base iframe / catalog 확장 등 + - **audit 결과** ([`PHASE-Q-AUDIT.md`](PHASE-Q-AUDIT.md) §3 / §4) : A-1+A-6 Salvage 빠른 axis 먼저, A-2 핵심 unblocker (작업량 큼), A-5/B-1/B-2 새로 만들기 핵심, B-3/B-4 backend schema/layout 낮은 우선순위, Step 16/17 retry 별 axis deterministic 보강 3. Frontend 추가 보완 (AI 투입 / HTML 수정 backend 적용 / DB 연결) - §7-B B 그룹 (zone-section assignment / edited HTML → MDX 등) - §7-B D 그룹 (filtered reason UI / min_height 한계 / status badge 안내) + - **audit 결과** ([`PHASE-Q-AUDIT.md`](PHASE-Q-AUDIT.md) §3 / §4) : D-1/D-2 새로 만들기 (frontend 신규) 4. 전체 일반화 + 시스템 audit 4a. MDX 01 / 02 / 04 fresh run (regression / status / coverage 검증) @@ -203,6 +205,27 @@ frontend (`design_agent_front/design-agent`) 와 backend phase_z2 의 연결 axi > **본 표는 §5 의 1 단계 audit lens** — 각 항목의 *목적 / input / output* 을 먼저 채우면 Phase Q 모듈 검토 시 *명확한 질문* 이 됨 ("이 schema 와 같은 코드가 Phase Q 에 있나? Migrate / Reference / Delete 어느 쪽?"). audit 결과로 본 §7-B 의 구현 우선순위가 재정렬됨. +### audit 결과 summary (2026-05-12) + +| id | 항목 | audit 결과 | 우선순위 | +|---|---|---|---| +| A-1 | Stage 0 normalize | Salvage chained (§2.1+§2.2) | ↑ | +| A-2 | Catalog 확장 | 새로 만들기 (핵심 unblocker — 작업량 큼) | 중 | +| A-3 | Frame preview | Salvage 후보 (A-3 axis 활성 시) | ↓ | +| A-4 | slide-base iframe mode | 새로 만들기 | ↓ | +| A-5 | V4 fallback | 새로 만들기 | 중 | +| A-6 | Zone 좌표 export | Salvage (§2.3) | ↑ | +| B-1 | Zone-section override | 새로 만들기 (backend path) | 중 | +| B-2 | Edited HTML → MDX | 새로 만들기 (backend path) | 중 | +| B-3 | Sub-section drag drop | 새로 만들기 (backend schema) | ↓ | +| B-4 | 다른 layout zone-geometry | 새로 만들기 (backend layout) | ↓ | +| D-1 | filtered_section_reasons UI | frontend 신규 | ↓ | +| D-2 | Frame min_height 표시 | 새로 만들기 (frontend hint + catalog 참조) | ↓ | + +추가 — **Step 16/17 retry 정밀화 axis** (§1 lens 밖, deterministic 보강, 22-step 안) — §2.4 `redistribute` + §2.5 glue + §2.5 font compression (3 묶음 Salvage). 상세 = [`PHASE-Q-AUDIT.md`](PHASE-Q-AUDIT.md) §3-B / §4-D. + +상세 audit guardrail (특정 MDX / frame 고정 금지, process 기준) = [`PHASE-Q-AUDIT.md`](PHASE-Q-AUDIT.md) §4 머리글. + ### A. Backend 본체 보완 (큰 axis) | # | 항목 | 이유 / 영향 | 임시 대체 |