- src: phase_z2 composition/mapper/pipeline/placement_planner/retry, ai_fallback(prompts/schema/validate), mdx_text_atoms 신규 - Front: PipelineTracePanel 신규, FramePanel/SlideCanvas/Home/designAgentApi 등 갱신 + 테스트 4종 추가 - templates/phase_z2: catalog(component_expansion_registry, node_slot_mapping 신규), frames, families, slide_base 갱신 - tests/matching: phase2~26 매칭 실험 스크립트·리포트·온톨로지 전체 (미커밋 진행분) - tests: b4_v4 evidence, task5~28.5 시리즈, regression(imp95 baseline) 등 신규 테스트 대량 추가 - docs/reference: MDX 구조 인벤토리, MDX→Frame 구조 계약 문서 - scripts: mdx 계약/parity/coverage/viewport 체크, gitea comment, run sync 유틸 - .gitignore: tmp*.json, chromedriver, .orchestrator, *.pkl, Front_test* 등 임시/스냅샷 제외 미완성 작업의 보존용 스냅샷 커밋 (2026-07-02) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7.7 KiB
7.7 KiB
현재 상황 정리 (2026-04-24)
MDX ↔ Figma frame 매칭. V1 완료, V2/V3/V4 는 아직 실행 전. 착수 전에 4가지만 확정하면 됨.
1. 현재 상태
끝난 것
- V1 (키워드 baseline) — 실행 완료
- 결과 YAML: mdx_matching_result.yaml
- 리포트: MDX_MATCHING_REPORT.html
- TARGET 4 전부 1위 일치 (01-2→18 / 02-2.2→14 / 03-1→13 / 03-2→29)
- Holdout 3 blind 결과 산출 (01-1→1 / 02-1→12 / 02-2.1→11)
안 끝난 것
- V2 / V3 / V4 — 코드도 없고 실행도 안 됨. 지금까지는 설계/계획 단계
- 옛 Phase 22
25 리포트(2026-04-22)는 옛 키워드 체계 기반 — 현재 V1V4 비교 기준으로는 사용하지 않음. 과거 실험 기록 / 참고 자산으로 유지
이미 확정된 것
- Figma 구조 축은 기존
structure_ontology.yamltemplates_v1재사용 (새 AI 패스 없음) - V4 판정 라벨은
use_as_is / light_edit / restructure / reject(코드 실체 그대로) - 핵심 리포트 3개 고정 —
KEYWORD_INVENTORY/FRAME_KEYWORD_REVIEW/MDX_MATCHING_REPORT - V1~V4 비교는 신규 HTML 금지 —
MDX_MATCHING_REPORT내부 섹션으로 통합
Holdout 5원칙 (잠금)
- TARGET 4 고정 (ANSWER_MAP 변경 금지)
- 기준 잠금 (전처리 / anchor / V1 가중치 변경 금지)
- Blind 실행 (01-1 / 02-1 / 02-2.1 expected frame 사전 미기재)
- Post-hoc 해석만
- Generalization-only (per-section 튜닝 금지)
2. 지금 확정해야 하는 것 (4개)
V2/V3/V4 착수 직전 결정사항만 추림.
2.1 옵션 A / B / C — 어떻게 돌릴지
| 내용 | 특징 | |
|---|---|---|
| A | keyword_base.yaml 을 V1 corpus 기반으로 재생성 후 phase23~25 원본 그대로 실행 |
키워드 축이 V1 과 수학적으로 동일. 빌드 스크립트 1회 작업 필요 |
| B | 옛 keyword_base.yaml 그대로 phase23~25 실행 |
즉시 실행. 하지만 V1 과 키워드 축 불일치 — V1⊂V2 아님 |
| C | V1 결과를 baseline 으로 주입하고 의미/구조/판정 축을 Top-K rerank 로 얹음 | V1 후보 집합 위에서 V2/V3 재정렬, V4 판정 — V1 baseline 일관성 보장. 신규 스크립트 3개 |
→ 권장: C
2.2 Top-K 의 K 값
V1 에서 몇 위까지를 V2 후보로 넘길지. Holdout 성적은 근거로 사용하지 않음 — 설계는 원칙 기반.
- K=3: 엄격. rerank 축의 의미가 약해짐 (V1 이 사실상 단독 결정)
- K=5: V1 필터 역할을 유지하면서 rerank 후보 폭을 확보하는 절충안
- K=8: 느슨. V1 baseline filter 의미가 약해질 수 있음
→ 권장: K=5
2.3 V3 구조 호환도 테이블
- 기존
_COMPAT(phase_common.py:221-299) 재사용 - 또는 재설계
→ 권장: 기존 재사용 (검증된 값 + 재설계 범위 불명확)
2.4 V4 판정 threshold
template_fit.py:397-400 의 0.90 / 0.75 / 0.60 기본값 유지 여부.
→ 권장: 기본값 유지 (Holdout 5원칙 #2 "기준 잠금" 과 정합)
3. 버전별 정의 (확정 전제)
- V1: 키워드 3-layer 점수 (
0.30 × standalone + 0.50 × group + 0.20 × related). 32 frame 전체 랭킹. 완료 - V2: V1 Top-K 를 의미 유사도(ko-sroberta) 로 재정렬. 모델
jhgan/ko-sroberta-multitask, MDX summary = title + 첫 문단 + slot labels - V3: V2 후보를 MDX 구조(코드) × Figma 구조(기존
templates_v1) 비교로 재정렬 - V4: V3 후보를 template-fit-v1 로 판정 —
use_as_is/light_edit/restructure/reject
V4 는 점수 랭킹이 아니라 판정 라벨 을 출력. 같은 1위라도 reject 면 실제 사용 불가.
4. 권장안 한 줄 요약
옵션 C + K=5 + _COMPAT 재사용 + threshold 기본값 으로 확정 → V2 스크립트부터 착수.
이 4개 모두 "예" 면 V2 작성 들어감. 하나라도 다르게 가고 싶으면 그것만 지정.
5. 착수 순서 (확정 후)
pipeline_08_v2_semantic_rerank.py— V1 Top-5 × ko-sroberta rerankpipeline_08_v3_structure_rerank.py— MDX 구조 × Figma 구조 rerank (_COMPAT기반)pipeline_08_v4_template_fit_judgment.py— template-fit-v1 판정 라벨- TARGET 4 + Holdout 3 동일 입력으로 V1~V4 4회 실행 (lock_snapshot 동일)
- 결과를 MDX_MATCHING_REPORT.html 내부 V1~V4 비교 섹션으로 통합
6. 핵심 산출물 (현재 존재하는 것만)
| 파일 | 용도 |
|---|---|
| pipeline_01_extract_nodes.py | Figma texts.md + MDX 섹션 추출 |
| pipeline_04_normalize.py | Kiwi + user_dict + PRE_COLLAPSE + 필터 |
| keyword_normalizer.py | 공통 정규화 모듈 |
| pipeline_07_auto_anchor_candidates.py | 3-layer anchor 결정론적 생성 |
| pipeline_06_2_mdx_matching.py | V1 keyword matching |
| normalized_text_tokens.yaml | 정규화 corpus (unique 1713) |
| auto_anchor_candidates.yaml | 3-layer anchor + provenance |
| mdx_matching_result.yaml | V1 결과 + lock_snapshot |
기존 자산 (V2~V4 에서 재활용 대상)
| 파일 | 용도 | V2~V4 역할 |
|---|---|---|
| embeddings.py | ko-sroberta 로더 | V2 semantic rerank |
| detect_mdx.py | MDX 구조/summary 추출 (코드) | V2 summary + V3 MDX 구조 |
phase_common.py _COMPAT |
구조 호환도 테이블 | V3 rerank |
| template_fit.py | template-fit-v1 판정 엔진 | V4 판정 |
structure_ontology.yaml templates_v1 |
32 frame AI 구조화 | V3 Figma 구조 입력 (고정 재사용) |
7. 규칙 (스스로 상기)
- 결과물을 고치지 말고 프로세스를 고친다
- 하드코딩 금지 (anchor / 점수 / blob)
- 핵심 리포트 3개 고정 덮어쓰기 —
KEYWORD_INVENTORY/FRAME_KEYWORD_REVIEW/MDX_MATCHING_REPORT - V1~V4 비교는
MDX_MATCHING_REPORT안에 섹션으로 (신규 HTML 금지) - AI curator bias 재발 금지 — 통계/근거 없는 키워드 묶음 만들지 않기
anchor_sets_input.yaml수동 재편집 금지 (Step 7 자동 산출 사용)- V2~V4 구현 시
template_fit.py라벨을 바꾸지 말 것 —use_as_is / light_edit / restructure / reject그대로
8. 변경 이력
- 2026-04-24 초판 — V1 완료 + V2~V4 재실행 계획 (가중합 표현)
- 2026-04-24 교정 1 — 리포트 3개 정의 교정,
MATCHING_COMPARISON.html폐기, V2~V4 를 캐스케이드 rerank / 판정 으로 재정의 - 2026-04-24 교정 2 — V4 라벨을 코드 실체(
template_fit.py) 기준use_as_is / light_edit / restructure / reject로 통일, Figma 구조 입력은templates_v1고정 재사용으로 확정 - 2026-04-24 교정 3 (현재):
- Holdout 을 K 값 설계 근거처럼 읽히던 §2.2 문장 제거 — Holdout 5원칙 #4/#5 준수
- "V1 ⊂ V2 ⊂ V3 ⊂ V4 집합 포함 보장" 표현 완화 — V4 는 판정이라 출력 타입이 다름
- 옛 Phase 22~25 "폐기 대상" → "현재 비교 기준 미사용 / 참고 자산 유지"
9. 지금 유지할 핵심 원칙
- 키워드는 고정 baseline
- 내용 / 구조 / 적용 가능성은 baseline 을 대체하지 않고 그 위에 붙는 보강 신호
- MDX 구조는 코드가 파악
- Figma 구조는 AI 가 파악한 결과(
templates_v1) 를 고정 재사용 - Holdout 은 설계 보정이 아니라 일반화 검증용
- V4 는 점수 경쟁이 아니라 실제 사용 가능성 판정