MDX 03/04/05 작업 인사이트 정리 — 파이프라인 반영 axis 8 #43

Closed
opened 2026-05-14 14:58:59 +09:00 by Kyeongmin · 2 comments
Owner

개요

mdx 03, 04, 05 슬라이드 생성 작업을 진행하며 발견한 Phase Z-2 pipeline 의 한계 + 향후 정식 반영할 인사이트 8 axis. 각 axis 다음 형식으로 정리 :

  • [origin] — 어떤 mdx 시각에서 발견
  • [pipeline stage] — Phase Z 의 어느 stage / Step
  • [현재 동작 vs 의도] — 현재 hardcode vs 정식으로 가야 할 동작
  • [개선 방안] — 실행에 필요한 작업
  • [예시] — 구체 case

I1. V4 fallback chain max_rank 정책 검토 (현 3 → 동적)

[origin]
mdx 05-2 슬라이드 생성 시 발견.

  • mdx 05-2 의 V4 결과 : 32 frame 모두 reject + rank 1~9 catalog 미등록
  • 등록 frame 중 가장 빠른 rank = 10 (three_parallel_requirements)
  • max_rank=3 hardcoded 라 등록 frame 도달 못함 → chain_exhausted → composition planner 가 unit 생성 안 함 → 05-2 zone filtered

[pipeline stage]

  • Phase Z-2 STAGE 3 (Zone 별 프레임 매칭, V1~V4)
  • src/phase_z2_pipeline.pylookup_v4_match_with_fallback (Step 5 → Step 6 composition planner 의 frame selector)

[현재 동작 vs 의도]

  • 현재 : max_rank=3 hardcoded. rank 1~3 검토. 그 안 등록 frame 없으면 unit 생성 안 함.
  • 의도 : 등록 frame 까지 자동 검색 (V4 의미 매칭 + catalog presence 균형).

[개선 방안]

  • max_rank 의미 명확화 : 의미 신뢰 범위 / catalog fallback 검색 범위
  • 옵션 :
    • (A) default 확대 (3 → 32)
    • (B) 등록 frame 우선 (의미 점수 무시)
    • (C) usable_count 기반 동적 (usable ≥ N → 3 / 미만 → 32)
  • 임시 env toggle PHASE_Z_MAX_RANK 정식 정책화

[예시]
mdx 05-2 V4 ranking :

rank frame label catalog
1 bim_adoption_central_split restructure
3 process_product_two_way restructure
10 three_parallel_requirements reject
14 pre_construction_model_info_stacked reject

I2. label priority + confidence sort 일관성 (frontend / backend)

[origin]
mdx 04 frame override 시도 시 발견.

  • env toggle 켜진 상태에서 backend 가 04-2 의 rank-1 (bim_dx_comparison_table, reject, conf=0.815) 자동 선택 → process_product_two_way (light_edit, conf=0.771) 가 가려짐.
  • frontend ranking 표시 는 label priority sort 적용 — backend fallback chain 은 confidence-only sort 라 동작 불일치.

[pipeline stage]

  • Phase Z-2 STAGE 3 의 frame selector + Step 9 application_plan
  • backend lookup_v4_match_with_fallback 의 judgments iterate 순서
  • frontend designAgentApi.tsframe_candidates sort

[현재 동작 vs 의도]

  • 현재 : backend = V4 raw confidence desc 순. frontend = label priority + confidence desc 순. 서로 다른 sort → "rank 1" 정의 mismatch.
  • 의도 : 양쪽 모두 label priority (use_as_is > light_edit > restructure > reject) + confidence desc 일관 적용.

[개선 방안]

  • backend lookup_v4_match_with_fallback 의 judgments sort 정식 추가
  • 두 layer 의 sort 함수를 single source (shared util 또는 yaml 정책) 로 통합
  • 정책 명문화 : RANKING_SORT_POLICY 변수 또는 catalog

[예시]
mdx 04-2 V4 :

  • confidence desc rank 1 = bim_dx_comparison_table (reject) ← env toggle 시 backend 가 잘못 선택
  • label priority sort rank 1 = process_product_two_way (light_edit) ← 정식

I3. frame-aware AI 자동 보완 layer (IMP-31 활성화)

[origin]
mdx 04-1 / 04-2 / 05-2 처리 시 발견.

  • 콘텐츠 cardinality / source_shape 와 frame structure mismatch 시 frame partial / builder 보완 필요
  • 현재 Claude (대화 AI) 가 매번 수동 대행 (process_product_two_way dynamic 화, pre_construction_model_info_stacked 신규 등록, 등)
  • 매번 frame 별 builder/partial 수정 → 반복 노력 큼

[pipeline stage]

  • Phase Z-2 STAGE 3 / 4 (Zone 별 프레임 매칭 + 프레임 검토)
  • restructure / reject 경로 — 현재는 filtered 또는 manual override
  • phase_z2_mapper.py 의 builder + templates/phase_z2/families/*.html partial

[현재 동작 vs 의도]

  • 현재 : restructure / reject 라벨 = AI 호출 점 미구현. Claude 가 외부에서 매번 수동.
  • 의도 : pipeline 안 AI fallback layer. frame visual + 콘텐츠 cardinality 분석 → builder / partial 자동 보완.

[개선 방안]

  • IMP-31 (AI-assisted frame-aware adaptation — restructure / reject routes) 활성화
  • AI 결정 범위 :
    • cardinality dynamic 화 (strict N → null, 5각형 → 6각형 등 좌표 동적 계산)
    • slot 매핑 (mdx h3 title → col_a_label 자동 등)
    • frame default text 제거 (BIM/DX 같은 catalog default 가 mdx 에 없는 텍스트일 때)
  • AI 격리 contract (memory feedback_ai_isolation_contract) 준수 — 콘텐츠 단위 또는 restructuring proposal 만, mdx 재작성 X

[예시]

  • mdx 04-1 : pre_construction_model_info_stacked frame 의 pill 5 vertical → horizontal grid 보완. Claude 가 수동.
  • mdx 04-2 : process_product_two_way 의 cardinality strict 3 → null (dynamic) 보완. Claude 가 수동.
  • mdx 05-2 : 향후 frame 의 stretch 동작 / column N items 보완 — 같은 패턴 반복 예상

I4. slide-level CSS override 정식 mechanism

[origin]
mdx 04 default 슬라이드 의 zone 1 빈공간 / 04-2 bullet 간격 조정 시 발견.

  • 슬라이드 단위 visual 조정 (bullet 간격 / zone size / spacing) — frame catalog 자체는 무변
  • 현재 frontend SlideCanvas 의 iframe onLoad 동적 CSS inject 만 임시 path
  • backend pipeline 의 final.html 자체에 inline <style> post-process 한 file (mdx04_b3_v29_custom) 도 ad-hoc

[pipeline stage]

  • Phase Z-2 STAGE 5 (HTML 조립 + 검증 + 출력)
  • Step 13 (render) 직후 또는 final.html 후처리 단계

[현재 동작 vs 의도]

  • 현재 : frame catalog 또는 partial template 수정 = 모든 mdx 영향 (사용자 룰 위반). slide-level 조정은 frontend layer 의 iframe inject 만 임시.
  • 의도 : pipeline 안 slide-level CSS override 정식 mechanism. mdx 별 또는 run 별 custom style 주입 path.

[개선 방안]

  • backend CLI flag --override-slide-css '<style>...</style>' 또는 --slide-css-file path/to/override.css
  • 또는 mdx frontmatter 안 slide_overrides.css: 같은 field 정식 인식
  • Step 13 render 시 final.html 의 </head> 직전에 inject
  • frontend 도 같은 schema 로 받음 (현재 slideOverrideCss prop)

[예시]

  • mdx 04 default 시 zone 1 빈공간 양보 → zone 1 height 0.38 / zone 2 height 0.60 grid 비율 + bullet margin 1px override.
  • mdx05 의 frame 9 (rank 14 자동 매칭) 시 frame 9 의 visual 보완 — slide-level only, frame 9 자체는 무변.

I5. frame contract default text 정책

[origin]
mdx 04-2 의 frame bim_dx_comparison_table 사용 시 발견.

  • frame contract 의 col_a_label_default: "BIM" / col_b_label_default: "DX" 가 mdx 에 없는 텍스트 강제 표시
  • mdx 04-2 콘텐츠는 정책 / 조직 — BIM / DX 와 의미 mismatch

[pipeline stage]

  • Phase Z-2 STAGE 3 (Zone 별 프레임 매칭) 의 mapper builder
  • phase_z2_mapper.py_resolve_title + 각 builder 의 default 처리

[현재 동작 vs 의도]

  • 현재 : contract 의 default text 가 mdx 미제공 시 fallback. 의미 mismatch 발생.
  • 의도 : default 는 mdx 의 h3 title 또는 적합 slot 자동 매핑. mdx 에 없으면 빈 값. catalog default text 는 frame 의 visual placeholder 용으로만 (실제 콘텐츠 매핑 시 무시).

[개선 방안]

  • contract 의 default text 정책 명문화 :
    • *_label_default = visual placeholder (figma 원본 텍스트 보존). 콘텐츠 매핑 시 자동 disable.
    • mdx 의 h3 title / section.title 등이 우선
    • mdx 에 없으면 빈 값 (default text 강제 표시 X)
  • builder 마다 자동 결정 logic

[예시]

  • mdx 04-2 통합 + bim_dx_comparison_table : col_a_label = "정책 및 발주 체계" (### 2.1 title), col_b_label = "조직 및 수행 역량" (### 2.2 title). BIM / DX 강제 X.

I6. stage0 normalizer 통합 (raw HTML / JSX mdx 추출 한계)

[origin]
mdx 04-1 (raw HTML 카드 5개) 와 mdx 05-1 (빨간 박스 raw HTML) 처리 시 발견.

  • markdown bullet parser 가 <div><ul><li> 안 텍스트 추출 못함
  • mdx 04-1 = V4 분석에서 모든 frame reject (raw HTML 의미 추출 못해서)
  • mdx 05-1 = perspective_3_body 빈 list (raw HTML 안 콘텐츠 누락)

[pipeline stage]

  • Phase Z-2 STAGE 1 (MDX 분석)
  • src/phase_z2_pipeline.pyparse_mdx + _stage0_chained_adapter
  • memory lock project_phase_z_normalize_gap — stage0 normalizer 미통합

[현재 동작 vs 의도]

  • 현재 : parse_mdx 가 raw markdown 만 인식. raw HTML / JSX block 의 텍스트 무시.
  • 의도 : stage0 normalizer 가 raw HTML / JSX 안 텍스트 추출 + markdown 으로 정규화.

[개선 방안]

  • mdx_normalizer (이미 존재하지만 미통합) 정식 활성화
  • normalizer 의 책임 :
    • <div><ul><li> → markdown bullet 으로 변환 (텍스트 보존)
    • JSX inline style 무시
    • <details><summary> popup 패턴 별 처리 (Layer A → popup slot)
  • 환경 toggle PHASE_Z_STAGE0_ADAPTER_ENABLED 정식 default ON

[예시]

  • mdx 04-1 : raw HTML 카드 5개 (기술 / 효과 / 인력 / 경제 / 실무) → markdown 5 top_bullets 자동 변환 → V4 분석 가능
  • mdx 05-1 : 빨간 박스 안 3 항목 (기능적 대체 / 인식 왜곡 / 완전 자동화) → markdown sub-bullets 자동 변환

I7. frame 의 figma 원본 1:1 재현 (figma_to_html_agent 룰 준수)

[origin]
mdx 04-2 rank 2 (bim_dx_comparison_table) 작업 시 발견.

  • 내가 임의로 partial template 의 색감 / 구조 작성 (갈색 그라데이션 등) → figma 원본과 mismatch 사용자 catch
  • figma 원본 frame 18 의 정확한 visual (orange-brown title gradient / green-brown pill bar / 좌 brown / 우 green column 등) 안 봄

[pipeline stage]

  • Phase Z-2 STAGE 3 의 frame partial template 작성 / 보완
  • templates/phase_z2/families/*.html 의 모든 frame partial

[현재 동작 vs 의도]

  • 현재 : frame partial 작성 시 figma 원본 정확 분석 안 함 → 임의 색감 / 구조 작성. 사용자 catch 시 재작성 반복.
  • 의도 : figma_to_html_agent 의 PROCESS.md 룰 (수학적 계산 / bottom-up / 색상 1:1) 준수. figma index.html 색상 / gradient / structure 모두 1:1 재현 후 보완.

[개선 방안]

  • partial template 작성 / 수정 시 figma figma_to_html_agent/blocks/<frame_id>/index.html 의 정확한 CSS extract 의무화
  • frame_contract 작성 시 figma_to_html_agent 의 PROMOTED CSS 명시 인용
  • 자동 검증 : partial 의 색상 / gradient 가 figma 원본의 값과 일치하는지 grep 또는 자동 비교

[예시]

  • mdx 04-2 rank 2 의 bim_dx_comparison_table partial 1차 작성 = 갈색만, figma 의 좌 brown / 우 green / pill badge 무시
  • 사용자 catch 후 figma index.html 1:1 재작성

I8. frame ranking 의 label 별 UI 시각 차별

[origin]
mdx 04 / 05 의 frame 선택 UI 시 발견.

  • 사용자가 rank 1 / rank 2 frame 의 label (use_as_is / light_edit / restructure / reject) 차이를 frontend UI 에서 시각적으로 구분 못 함
  • 각 label 별 처리 path 도 명시 안 됨 (use_as_is = 코드만 / light_edit = 코드+AI / restructure = AI 보강 / reject = AI restructure)

[pipeline stage]

  • Phase Z-2 STAGE 3 의 frame_candidates 표시 (frontend FramePanel)
  • Step 9 application_plan 의 application_mode

[현재 동작 vs 의도]

  • 현재 : FramePanel 의 frame card 가 label 표시 (텍스트). 사용자가 label 의 의미 (auto-applicable / human_review 등) 모름.
  • 의도 : label 별 색상 / 배지 / 클릭 시 toast 메시지 (어떤 처리 path 인지 명시).

[개선 방안]

  • frontend FramePanel 수정 :
    • label 별 색 배지 (use_as_is = 녹 / light_edit = 청 / restructure = 황 / reject = 회 또는 적)
    • 카드 클릭 시 tooltip 또는 toast — "이 frame 선택 시 = 코드 직접 적용" / "AI 보강 필요" 등
  • backend APPLICATION_MODE_BY_V4_LABEL 의 매핑 정보 frontend 에 forward (이미 step09 에서 가능)

[예시]

  • mdx 04-2 의 rank 1 (process_product_two_way light_edit) : 청색 배지 + "코드 매핑 + AI 보강 가능"
  • rank 2 (bim_dx_comparison_table reject) : 회색 배지 + "AI restructure 필요 — frame visual 활용 + 콘텐츠 매핑"

종합

8 axis 모두 mdx 03 / 04 / 05 의 실제 작업에서 발견. pipeline 의 hardcoded default / 미구현 mechanism / 정책 명문화 필요. 보고용 단발성 mitigation (env toggle / Claude 수동 대행) 으로 임시 해결 중 — 정식 axis 정리 + 정책 결정 필요.

본 issue 는 정리 / 검토용. 각 axis 별 별도 implementation issue 분리 결정은 사용자 결정.

# 개요 mdx 03, 04, 05 슬라이드 생성 작업을 진행하며 발견한 Phase Z-2 pipeline 의 한계 + 향후 정식 반영할 인사이트 8 axis. 각 axis 다음 형식으로 정리 : - **[origin]** — 어떤 mdx 시각에서 발견 - **[pipeline stage]** — Phase Z 의 어느 stage / Step - **[현재 동작 vs 의도]** — 현재 hardcode vs 정식으로 가야 할 동작 - **[개선 방안]** — 실행에 필요한 작업 - **[예시]** — 구체 case --- ## I1. V4 fallback chain max_rank 정책 검토 (현 3 → 동적) **[origin]** mdx 05-2 슬라이드 생성 시 발견. - mdx 05-2 의 V4 결과 : 32 frame 모두 `reject` + rank 1~9 catalog 미등록 - 등록 frame 중 가장 빠른 rank = **10** (`three_parallel_requirements`) - `max_rank=3` hardcoded 라 등록 frame 도달 못함 → `chain_exhausted` → composition planner 가 unit 생성 안 함 → 05-2 zone filtered **[pipeline stage]** - Phase Z-2 **STAGE 3** (Zone 별 프레임 매칭, V1~V4) - `src/phase_z2_pipeline.py` 의 `lookup_v4_match_with_fallback` (Step 5 → Step 6 composition planner 의 frame selector) **[현재 동작 vs 의도]** - 현재 : `max_rank=3` hardcoded. rank 1~3 검토. 그 안 등록 frame 없으면 unit 생성 안 함. - 의도 : 등록 frame 까지 자동 검색 (V4 의미 매칭 + catalog presence 균형). **[개선 방안]** - `max_rank` 의미 명확화 : 의미 신뢰 범위 / catalog fallback 검색 범위 - 옵션 : - (A) default 확대 (3 → 32) - (B) 등록 frame 우선 (의미 점수 무시) - (C) usable_count 기반 동적 (`usable ≥ N → 3` / 미만 → 32) - 임시 env toggle `PHASE_Z_MAX_RANK` 정식 정책화 **[예시]** mdx 05-2 V4 ranking : | rank | frame | label | catalog | |---|---|---|---| | 1 | bim_adoption_central_split | restructure | ❌ | | 3 | process_product_two_way | restructure | ✅ | | 10 | three_parallel_requirements | reject | ✅ | | 14 | pre_construction_model_info_stacked | reject | ✅ | --- ## I2. label priority + confidence sort 일관성 (frontend / backend) **[origin]** mdx 04 frame override 시도 시 발견. - env toggle 켜진 상태에서 backend 가 04-2 의 rank-1 (`bim_dx_comparison_table`, reject, conf=0.815) 자동 선택 → process_product_two_way (light_edit, conf=0.771) 가 가려짐. - frontend ranking 표시 는 label priority sort 적용 — backend fallback chain 은 confidence-only sort 라 동작 불일치. **[pipeline stage]** - Phase Z-2 STAGE 3 의 frame selector + Step 9 application_plan - backend `lookup_v4_match_with_fallback` 의 judgments iterate 순서 - frontend `designAgentApi.ts` 의 `frame_candidates` sort **[현재 동작 vs 의도]** - 현재 : backend = V4 raw confidence desc 순. frontend = label priority + confidence desc 순. 서로 다른 sort → "rank 1" 정의 mismatch. - 의도 : 양쪽 모두 label priority (use_as_is > light_edit > restructure > reject) + confidence desc 일관 적용. **[개선 방안]** - backend `lookup_v4_match_with_fallback` 의 judgments sort 정식 추가 - 두 layer 의 sort 함수를 single source (shared util 또는 yaml 정책) 로 통합 - 정책 명문화 : `RANKING_SORT_POLICY` 변수 또는 catalog **[예시]** mdx 04-2 V4 : - confidence desc rank 1 = bim_dx_comparison_table (reject) ← env toggle 시 backend 가 잘못 선택 - label priority sort rank 1 = process_product_two_way (light_edit) ← 정식 --- ## I3. frame-aware AI 자동 보완 layer (IMP-31 활성화) **[origin]** mdx 04-1 / 04-2 / 05-2 처리 시 발견. - 콘텐츠 cardinality / source_shape 와 frame structure mismatch 시 frame partial / builder 보완 필요 - 현재 Claude (대화 AI) 가 매번 수동 대행 (process_product_two_way dynamic 화, pre_construction_model_info_stacked 신규 등록, 등) - 매번 frame 별 builder/partial 수정 → 반복 노력 큼 **[pipeline stage]** - Phase Z-2 STAGE 3 / 4 (Zone 별 프레임 매칭 + 프레임 검토) - restructure / reject 경로 — 현재는 filtered 또는 manual override - `phase_z2_mapper.py` 의 builder + `templates/phase_z2/families/*.html` partial **[현재 동작 vs 의도]** - 현재 : restructure / reject 라벨 = AI 호출 점 미구현. Claude 가 외부에서 매번 수동. - 의도 : pipeline 안 AI fallback layer. frame visual + 콘텐츠 cardinality 분석 → builder / partial 자동 보완. **[개선 방안]** - IMP-31 (`AI-assisted frame-aware adaptation — restructure / reject routes`) 활성화 - AI 결정 범위 : - cardinality dynamic 화 (strict N → null, 5각형 → 6각형 등 좌표 동적 계산) - slot 매핑 (mdx h3 title → col_a_label 자동 등) - frame default text 제거 (BIM/DX 같은 catalog default 가 mdx 에 없는 텍스트일 때) - AI 격리 contract (memory `feedback_ai_isolation_contract`) 준수 — 콘텐츠 단위 또는 restructuring proposal 만, mdx 재작성 X **[예시]** - mdx 04-1 : pre_construction_model_info_stacked frame 의 pill 5 vertical → horizontal grid 보완. Claude 가 수동. - mdx 04-2 : process_product_two_way 의 cardinality strict 3 → null (dynamic) 보완. Claude 가 수동. - mdx 05-2 : 향후 frame 의 stretch 동작 / column N items 보완 — 같은 패턴 반복 예상 --- ## I4. slide-level CSS override 정식 mechanism **[origin]** mdx 04 default 슬라이드 의 zone 1 빈공간 / 04-2 bullet 간격 조정 시 발견. - 슬라이드 단위 visual 조정 (bullet 간격 / zone size / spacing) — frame catalog 자체는 무변 - 현재 frontend SlideCanvas 의 iframe onLoad 동적 CSS inject 만 임시 path - backend pipeline 의 final.html 자체에 inline `<style>` post-process 한 file (`mdx04_b3_v29_custom`) 도 ad-hoc **[pipeline stage]** - Phase Z-2 STAGE 5 (HTML 조립 + 검증 + 출력) - Step 13 (render) 직후 또는 final.html 후처리 단계 **[현재 동작 vs 의도]** - 현재 : frame catalog 또는 partial template 수정 = 모든 mdx 영향 (사용자 룰 위반). slide-level 조정은 frontend layer 의 iframe inject 만 임시. - 의도 : pipeline 안 slide-level CSS override 정식 mechanism. mdx 별 또는 run 별 custom style 주입 path. **[개선 방안]** - backend CLI flag `--override-slide-css '<style>...</style>'` 또는 `--slide-css-file path/to/override.css` - 또는 mdx frontmatter 안 `slide_overrides.css:` 같은 field 정식 인식 - Step 13 render 시 final.html 의 `</head>` 직전에 inject - frontend 도 같은 schema 로 받음 (현재 `slideOverrideCss` prop) **[예시]** - mdx 04 default 시 zone 1 빈공간 양보 → zone 1 height 0.38 / zone 2 height 0.60 grid 비율 + bullet margin 1px override. - mdx05 의 frame 9 (rank 14 자동 매칭) 시 frame 9 의 visual 보완 — slide-level only, frame 9 자체는 무변. --- ## I5. frame contract default text 정책 **[origin]** mdx 04-2 의 frame `bim_dx_comparison_table` 사용 시 발견. - frame contract 의 `col_a_label_default: "BIM"` / `col_b_label_default: "DX"` 가 mdx 에 없는 텍스트 강제 표시 - mdx 04-2 콘텐츠는 정책 / 조직 — BIM / DX 와 의미 mismatch **[pipeline stage]** - Phase Z-2 STAGE 3 (Zone 별 프레임 매칭) 의 mapper builder - `phase_z2_mapper.py` 의 `_resolve_title` + 각 builder 의 default 처리 **[현재 동작 vs 의도]** - 현재 : contract 의 default text 가 mdx 미제공 시 fallback. 의미 mismatch 발생. - 의도 : default 는 mdx 의 h3 title 또는 적합 slot 자동 매핑. mdx 에 없으면 빈 값. catalog default text 는 frame 의 visual placeholder 용으로만 (실제 콘텐츠 매핑 시 무시). **[개선 방안]** - contract 의 default text 정책 명문화 : - `*_label_default` = visual placeholder (figma 원본 텍스트 보존). 콘텐츠 매핑 시 자동 disable. - mdx 의 h3 title / section.title 등이 우선 - mdx 에 없으면 빈 값 (default text 강제 표시 X) - builder 마다 자동 결정 logic **[예시]** - mdx 04-2 통합 + bim_dx_comparison_table : col_a_label = "정책 및 발주 체계" (### 2.1 title), col_b_label = "조직 및 수행 역량" (### 2.2 title). BIM / DX 강제 X. --- ## I6. stage0 normalizer 통합 (raw HTML / JSX mdx 추출 한계) **[origin]** mdx 04-1 (raw HTML 카드 5개) 와 mdx 05-1 (빨간 박스 raw HTML) 처리 시 발견. - markdown bullet parser 가 `<div><ul><li>` 안 텍스트 추출 못함 - mdx 04-1 = V4 분석에서 모든 frame reject (raw HTML 의미 추출 못해서) - mdx 05-1 = perspective_3_body 빈 list (raw HTML 안 콘텐츠 누락) **[pipeline stage]** - Phase Z-2 **STAGE 1** (MDX 분석) - `src/phase_z2_pipeline.py` 의 `parse_mdx` + `_stage0_chained_adapter` - memory lock `project_phase_z_normalize_gap` — stage0 normalizer 미통합 **[현재 동작 vs 의도]** - 현재 : `parse_mdx` 가 raw markdown 만 인식. raw HTML / JSX block 의 텍스트 무시. - 의도 : stage0 normalizer 가 raw HTML / JSX 안 텍스트 추출 + markdown 으로 정규화. **[개선 방안]** - `mdx_normalizer` (이미 존재하지만 미통합) 정식 활성화 - normalizer 의 책임 : - `<div><ul><li>` → markdown bullet 으로 변환 (텍스트 보존) - JSX inline style 무시 - `<details><summary>` popup 패턴 별 처리 (Layer A → popup slot) - 환경 toggle `PHASE_Z_STAGE0_ADAPTER_ENABLED` 정식 default ON **[예시]** - mdx 04-1 : raw HTML 카드 5개 (기술 / 효과 / 인력 / 경제 / 실무) → markdown 5 top_bullets 자동 변환 → V4 분석 가능 - mdx 05-1 : 빨간 박스 안 3 항목 (기능적 대체 / 인식 왜곡 / 완전 자동화) → markdown sub-bullets 자동 변환 --- ## I7. frame 의 figma 원본 1:1 재현 (figma_to_html_agent 룰 준수) **[origin]** mdx 04-2 rank 2 (`bim_dx_comparison_table`) 작업 시 발견. - 내가 임의로 partial template 의 색감 / 구조 작성 (갈색 그라데이션 등) → figma 원본과 mismatch 사용자 catch - figma 원본 frame 18 의 정확한 visual (orange-brown title gradient / green-brown pill bar / 좌 brown / 우 green column 등) 안 봄 **[pipeline stage]** - Phase Z-2 STAGE 3 의 frame partial template 작성 / 보완 - `templates/phase_z2/families/*.html` 의 모든 frame partial **[현재 동작 vs 의도]** - 현재 : frame partial 작성 시 figma 원본 정확 분석 안 함 → 임의 색감 / 구조 작성. 사용자 catch 시 재작성 반복. - 의도 : `figma_to_html_agent` 의 PROCESS.md 룰 (수학적 계산 / bottom-up / 색상 1:1) 준수. figma `index.html` 색상 / gradient / structure 모두 1:1 재현 후 보완. **[개선 방안]** - partial template 작성 / 수정 시 figma `figma_to_html_agent/blocks/<frame_id>/index.html` 의 정확한 CSS extract 의무화 - frame_contract 작성 시 figma_to_html_agent 의 PROMOTED CSS 명시 인용 - 자동 검증 : partial 의 색상 / gradient 가 figma 원본의 값과 일치하는지 grep 또는 자동 비교 **[예시]** - mdx 04-2 rank 2 의 bim_dx_comparison_table partial 1차 작성 = 갈색만, figma 의 좌 brown / 우 green / pill badge 무시 - 사용자 catch 후 figma index.html 1:1 재작성 --- ## I8. frame ranking 의 label 별 UI 시각 차별 **[origin]** mdx 04 / 05 의 frame 선택 UI 시 발견. - 사용자가 rank 1 / rank 2 frame 의 label (use_as_is / light_edit / restructure / reject) 차이를 frontend UI 에서 시각적으로 구분 못 함 - 각 label 별 처리 path 도 명시 안 됨 (use_as_is = 코드만 / light_edit = 코드+AI / restructure = AI 보강 / reject = AI restructure) **[pipeline stage]** - Phase Z-2 STAGE 3 의 frame_candidates 표시 (frontend FramePanel) - Step 9 application_plan 의 application_mode **[현재 동작 vs 의도]** - 현재 : FramePanel 의 frame card 가 label 표시 (텍스트). 사용자가 label 의 의미 (auto-applicable / human_review 등) 모름. - 의도 : label 별 색상 / 배지 / 클릭 시 toast 메시지 (어떤 처리 path 인지 명시). **[개선 방안]** - frontend FramePanel 수정 : - label 별 색 배지 (use_as_is = 녹 / light_edit = 청 / restructure = 황 / reject = 회 또는 적) - 카드 클릭 시 tooltip 또는 toast — "이 frame 선택 시 = 코드 직접 적용" / "AI 보강 필요" 등 - backend `APPLICATION_MODE_BY_V4_LABEL` 의 매핑 정보 frontend 에 forward (이미 step09 에서 가능) **[예시]** - mdx 04-2 의 rank 1 (process_product_two_way light_edit) : 청색 배지 + "코드 매핑 + AI 보강 가능" - rank 2 (bim_dx_comparison_table reject) : 회색 배지 + "AI restructure 필요 — frame visual 활용 + 콘텐츠 매핑" --- ## 종합 8 axis 모두 mdx 03 / 04 / 05 의 실제 작업에서 발견. pipeline 의 hardcoded default / 미구현 mechanism / 정책 명문화 필요. 보고용 단발성 mitigation (env toggle / Claude 수동 대행) 으로 임시 해결 중 — 정식 axis 정리 + 정책 결정 필요. 본 issue 는 정리 / 검토용. 각 axis 별 별도 implementation issue 분리 결정은 사용자 결정.
Author
Owner

분해 완료 — 14 신규 IMP + 흡수 + 후순위 매핑 (2026-05-21)

#43 axis 8 → 신규 IMP 매핑 표

axis 분해 / 흡수 / 후순위 신규 IMP / 처리
I1 V4 max_rank 정책 분해 #67 IMP-38 V4 max_rank 정책 정식화
I2 label priority sort 일관성 분해 #68 IMP-39 label priority sort 일관성 (backend ↔ frontend)
I3 frame-aware AI 자동 보완 ★ 분해 #61 IMP-33 AI 호출 실선 wire up (+ #62 IMP-46 cache 짝)
I4 slide-level CSS override mechanism 분해 #74 IMP-45 slide-level CSS override 정식 mechanism
I5 frame contract default text 정책 분해 #69 IMP-40 frame contract default text 정책
I6 stage0 normalizer 통합 ★ 분해 #66 IMP-37 stage0 normalizer 통합 (LOCK 해제 전제)
I7 figma 원본 1:1 재현 룰 후순위 (R7 Figma 자동화) backlog 보류
I8 frame ranking label UI 차별 분해 #70 IMP-41 frame ranking label UI 차별 (배지 + tooltip)

closed: 8 axis 모두 분해 (7) 또는 후순위 결정 (1). 정리 / 검토용 source 이슈로서의 본래 목적 달성.

동반 14 신규 IMP 전체 (Wave 1 + Wave 2)

  • Wave 1 — 실질 구동 도달 필수 (6): #61 IMP-33 / #62 IMP-46 / #63 IMP-34 / #64 IMP-35 / #65 IMP-36 / #66 IMP-37
  • Wave 2 — 일관성 / 정책 / UX (8): #67 IMP-38 / #68 IMP-39 / #69 IMP-40 / #70 IMP-41 / #71 IMP-42 / #72 IMP-43 / #73 IMP-44 / #74 IMP-45

overflow 처리 정정된 순서 (모든 chain IMP 의 가드)

zone resize (#63 IMP-34) → responsive fit (#65 IMP-36) → popup (#64 IMP-35) → AI+cache (#61 IMP-33 + #62 IMP-46) → 사용자 명시 override → 자동 frame_swap 없음

closed.

## 분해 완료 — 14 신규 IMP + 흡수 + 후순위 매핑 (2026-05-21) ### #43 axis 8 → 신규 IMP 매핑 표 | axis | 분해 / 흡수 / 후순위 | 신규 IMP / 처리 | |---|---|---| | **I1** V4 max_rank 정책 | 분해 | **#67 IMP-38** V4 max_rank 정책 정식화 | | **I2** label priority sort 일관성 | 분해 | **#68 IMP-39** label priority sort 일관성 (backend ↔ frontend) | | **I3** frame-aware AI 자동 보완 ★ | 분해 | **#61 IMP-33** AI 호출 실선 wire up (+ **#62 IMP-46** cache 짝) | | **I4** slide-level CSS override mechanism | 분해 | **#74 IMP-45** slide-level CSS override 정식 mechanism | | **I5** frame contract default text 정책 | 분해 | **#69 IMP-40** frame contract default text 정책 | | **I6** stage0 normalizer 통합 ★ | 분해 | **#66 IMP-37** stage0 normalizer 통합 (LOCK 해제 전제) | | **I7** figma 원본 1:1 재현 룰 | 후순위 (R7 Figma 자동화) | backlog 보류 | | **I8** frame ranking label UI 차별 | 분해 | **#70 IMP-41** frame ranking label UI 차별 (배지 + tooltip) | **closed**: 8 axis 모두 분해 (7) 또는 후순위 결정 (1). 정리 / 검토용 source 이슈로서의 본래 목적 달성. ### 동반 14 신규 IMP 전체 (Wave 1 + Wave 2) - **Wave 1 — 실질 구동 도달 필수 (6)**: #61 IMP-33 / #62 IMP-46 / #63 IMP-34 / #64 IMP-35 / #65 IMP-36 / #66 IMP-37 - **Wave 2 — 일관성 / 정책 / UX (8)**: #67 IMP-38 / #68 IMP-39 / #69 IMP-40 / #70 IMP-41 / #71 IMP-42 / #72 IMP-43 / #73 IMP-44 / #74 IMP-45 ### overflow 처리 정정된 순서 (모든 chain IMP 의 가드) zone resize (#63 IMP-34) → responsive fit (#65 IMP-36) → popup (#64 IMP-35) → AI+cache (#61 IMP-33 + #62 IMP-46) → 사용자 명시 override → 자동 frame_swap 없음 ### closed.
Author
Owner

I7 framing 정정 (2026-05-21) — R7 후순위 → Wave 1 destination 본체

정정 사항

이전 closing comment 에서 I7 (frame 의 figma 원본 1:1 재현 룰) 을 "후순위 (R7 Figma 자동화), backlog 보류" 로 분류했음.

사용자 관찰 (2026-05-21, mdx03 시연 검증) 결과:

  • dx_sw_necessity_three_perspectives.html partial 이 .f20b__cols CSS class 사용 = frame 20b 의 visual 빌려쓰기 (cross-frame CSS clash)
  • 사용자가 본 "전혀 다른 frame visual" 현상의 root cause
  • partial 잘못은 모든 V4 label (use_as_is / light_edit / restructure / reject) 에 영향 — frame partial 이 모든 라벨의 base 이기 때문
  • 즉 R7 (Figma 자동화) 후순위 axis 가 아니라 mdx03 시연 본체 axis

정정 매핑

이전 정정
I7 → 후순위 (R7), backlog 보류 I7 → Wave 1 신규 IMP-49 분해

신규 IMP-49 (#78) — partial figma 1:1 audit + 정정

  • title: IMP-49 frame partial figma 원본 1:1 audit + 정정 (cross-frame CSS clash 폐기)
  • wave: 1 (실질 구동 도달 필수)
  • scope: 32 frame partial 전수 점검 → cross-frame CSS clash 폐기 → 각 frame 고유 namespace
  • guardrail: figma_to_html_agent/blocks/<frame_id>/index.html 의 PROMOTED CSS 정확 인용, no-hardcoding

#43#43 → IMP 매핑 표 갱신 (I7 부분만)

axis 이전 분류 정정 분류
I7 figma 원본 1:1 재현 룰 후순위 (R7), backlog 보류 #78 IMP-49 (Wave 1)

다른 axis (I1~I6, I8) 매핑은 변경 없음.

## I7 framing 정정 (2026-05-21) — R7 후순위 → Wave 1 destination 본체 ### 정정 사항 이전 closing comment 에서 **I7 (frame 의 figma 원본 1:1 재현 룰)** 을 "후순위 (R7 Figma 자동화), backlog 보류" 로 분류했음. 사용자 관찰 (2026-05-21, mdx03 시연 검증) 결과: - `dx_sw_necessity_three_perspectives.html` partial 이 `.f20b__cols` CSS class 사용 = **frame 20b 의 visual 빌려쓰기** (cross-frame CSS clash) - 사용자가 본 "전혀 다른 frame visual" 현상의 root cause - partial 잘못은 **모든 V4 label (use_as_is / light_edit / restructure / reject) 에 영향** — frame partial 이 모든 라벨의 base 이기 때문 - 즉 R7 (Figma 자동화) 후순위 axis 가 아니라 **mdx03 시연 본체 axis** ### 정정 매핑 | 이전 | 정정 | |---|---| | I7 → 후순위 (R7), backlog 보류 | **I7 → Wave 1 신규 IMP-49 분해** | ### 신규 IMP-49 (#78) — partial figma 1:1 audit + 정정 - title: `IMP-49 frame partial figma 원본 1:1 audit + 정정 (cross-frame CSS clash 폐기)` - wave: 1 (실질 구동 도달 필수) - scope: 32 frame partial 전수 점검 → cross-frame CSS clash 폐기 → 각 frame 고유 namespace - guardrail: figma_to_html_agent/blocks/<frame_id>/index.html 의 PROMOTED CSS 정확 인용, no-hardcoding ### #43 의 #43 → IMP 매핑 표 갱신 (I7 부분만) | axis | 이전 분류 | **정정 분류** | |---|---|---| | I7 figma 원본 1:1 재현 룰 | ~~후순위 (R7), backlog 보류~~ | **#78 IMP-49** (Wave 1) | 다른 axis (I1~I6, I8) 매핑은 변경 없음.
Kyeongmin added this to the B-5 Governance / Planning / Policy milestone 2026-05-22 13:58:03 +09:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Kyeongmin/C.E.L_Slide_test2#43