wip: phase_z2 evidence 파이프라인 + matching 실험(phase2~26) + 프론트 trace 패널 진행분 스냅샷

- 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>
This commit is contained in:
2026-07-02 17:03:42 +09:00
co-authored by Claude Opus 4.8
parent 97b7833a1b
commit b836e79ee1
527 changed files with 673036 additions and 717 deletions
+326
View File
@@ -0,0 +1,326 @@
# Phase 25 — Template-fit-v1 (최종 운영 체계)
**공식**: `0.25 anchor + 0.20 card + 0.20 rel + 0.15 slot + 0.20 content - penalties`
**결과: 4/4 정답**
**✓ 검증 기준 통과**: 4/4, 오답 use_as_is 없음, 1-2위 격차 모두 ≥ 0.05
**Phase 24 대비 업그레이드**:
- DB: legacy 32 frames (family/semantic_role) → templates_v1 32개 (slot + anchor_sets + fit_notes + adaptation_allowed)
- 구조 축: 단일 → 3개 분해 (cardinality / relation / slot_coverage)
- 감점 축 2개: not_suits (의미 mismatch), adaptation_cost (재구성 비용)
- 조건부 cap: `bim_dx`, `safety_quality_productivity` 등 짧은 generic 세트 편향 방어
- 라우팅: use_as_is / light_edit / restructure / reject 4단계
## 1. TARGET별 결과
| MDX | 정답 | 1위 conf (라우팅) | 2위 conf | margin |
|-----|------|------------------|----------|--------|
| MDX01-2-details | 18 (bim_dx_comparison_table) | 18 (0.922 use_as_is) ✓ | 29 (0.847) | 0.076 |
| MDX02-2.2-table | 14 (three_persona_benefits) | 14 (0.928 use_as_is) ✓ | 20 (0.748) | 0.180 |
| MDX03-1 | 13 (three_parallel_requirements) | 13 (0.925 use_as_is) ✓ | 20 (0.846) | 0.079 |
| MDX03-2 | 29 (process_product_two_way) | 29 (0.919 use_as_is) ✓ | 18 (0.821) | 0.098 |
## 2. Top-5 매트릭스 (32 템플릿 중)
| 콘텐츠 | 1위 | 2위 | 3위 | 4위 | 5위 |
|--------|-----|-----|-----|-----|-----|
| **MDX01-2-details**<br>정답 18 | <div style='background:#fff3cd;border:3px solid #dc2626;padding:8px;border-radius:6px'>🎯<br>![18](../../data/figma_previews/18.png)<br>**18** (0.922)<br>bim_dx_comparison_tabl<br>*use_as_is*</div> | ![29](../../data/figma_previews/29.png)<br>**29** (0.847)<br>process_product_two_wa<br>*reject* | ![24](../../data/figma_previews/24.png)<br>**24** (0.735)<br>engn_sw_three_types<br>*restructure* | ![23](../../data/figma_previews/23.png)<br>**23** (0.655)<br>app_sw_package_vs_solu<br>*reject* | ![31](../../data/figma_previews/31.png)<br>**31** (0.564)<br>industry_characteristi<br>*reject* |
| **MDX02-2.2-table**<br>정답 14 | <div style='background:#fff3cd;border:3px solid #dc2626;padding:8px;border-radius:6px'>🎯<br>![14](../../data/figma_previews/14.png)<br>**14** (0.928)<br>three_persona_benefits<br>*use_as_is*</div> | ![20](../../data/figma_previews/20.png)<br>**20** (0.748)<br>dx_sw_necessity_three_<br>*restructure* | ![21](../../data/figma_previews/21.png)<br>**21** (0.743)<br>solution_engn_split_di<br>*restructure* | ![13](../../data/figma_previews/13.png)<br>**13** (0.739)<br>three_parallel_require<br>*reject* | ![28](../../data/figma_previews/28.png)<br>**28** (0.722)<br>sw_reality_three_empha<br>*reject* |
| **MDX03-1**<br>정답 13 | <div style='background:#fff3cd;border:3px solid #dc2626;padding:8px;border-radius:6px'>🎯<br>![13](../../data/figma_previews/13.png)<br>**13** (0.925)<br>three_parallel_require<br>*use_as_is*</div> | ![20](../../data/figma_previews/20.png)<br>**20** (0.846)<br>dx_sw_necessity_three_<br>*light_edit* | ![28](../../data/figma_previews/28.png)<br>**28** (0.727)<br>sw_reality_three_empha<br>*reject* | ![21](../../data/figma_previews/21.png)<br>**21** (0.677)<br>solution_engn_split_di<br>*reject* | ![14](../../data/figma_previews/14.png)<br>**14** (0.659)<br>three_persona_benefits<br>*reject* |
| **MDX03-2**<br>정답 29 | <div style='background:#fff3cd;border:3px solid #dc2626;padding:8px;border-radius:6px'>🎯<br>![29](../../data/figma_previews/29.png)<br>**29** (0.919)<br>process_product_two_wa<br>*use_as_is*</div> | ![18](../../data/figma_previews/18.png)<br>**18** (0.821)<br>bim_dx_comparison_tabl<br>*reject* | ![23](../../data/figma_previews/23.png)<br>**23** (0.645)<br>app_sw_package_vs_solu<br>*reject* | ![24](../../data/figma_previews/24.png)<br>**24** (0.641)<br>engn_sw_three_types<br>*reject* | ![27](../../data/figma_previews/27.png)<br>**27** (0.638)<br>bim_adoption_central_s<br>*restructure* |
## 3. 유닛별 세부 (Top-5 breakdown)
### MDX01-2-details — 정답 18 (bim_dx_comparison_table)
**MDX 분석 (detect_mdx.py — LLM 0회)**
- title: 건설산업 DX의 올바른 이해 / 2. 용어간 상호관계
- summary: 건설산업 DX의 올바른 이해 / 2. 용어간 상호관계. DX / BIM
- item_count: {'detected': 2, 'source': 'table_columns'}
- relation_type: {'value': 'compare', 'confidence': 'high'}
- detected_terms: 112개
**🎯 1위 bim_dx_comparison_table** (Frame 18) — **use_as_is**
![18](../../data/figma_previews/18.png)
- **anchor**: 1.00 — `bim_dx`: ['BIM', 'DX'] *(cap0.70 면제 (방증 0.71≥0.5))*
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.61
- **base**: 0.922
- **confidence**: **0.922** → use_as_is
**2위 process_product_two_way** (Frame 29) — **reject**
![29](../../data/figma_previews/29.png)
- **anchor**: 0.75 — `dimension_2d_3d`: ['2D', '3D', '3D모델']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.55
- **base**: 0.847
- **confidence**: **0.847** → reject
**3위 engn_sw_three_types** (Frame 24) — **restructure**
![24](../../data/figma_previews/24.png)
- **anchor**: 1.00 — `sw_three_types`: ['상용', '전용']
- **cardinality**: 0.50
- **relation**: 1.00
- **slot**: 0.50
- **content**: 0.55
- **base**: 0.735
- **adaptation**: -0.00 ['forbidden:n<min']
- **confidence**: **0.735** → restructure
**4위 app_sw_package_vs_solution** (Frame 23) — **reject**
![23](../../data/figma_previews/23.png)
- **anchor**: 0.00 — `None`: []
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.53
- **base**: 0.655
- **confidence**: **0.655** → reject
**5위 industry_characteristics_three_col** (Frame 31) — **reject**
![31](../../data/figma_previews/31.png)
- **anchor**: 0.33 — `three_industries`: ['토목']
- **cardinality**: 0.50
- **relation**: 1.00
- **slot**: 0.50
- **content**: 0.53
- **base**: 0.564
- **adaptation**: -0.00 ['forbidden:n<min']
- **confidence**: **0.564** → reject
### MDX02-2.2-table — 정답 14 (three_persona_benefits)
**MDX 분석 (detect_mdx.py — LLM 0회)**
- title: DX의 시행 목표 및 기대효과 / 2. DX 기반 Process 혁신에 따른 주체별 기대효과 / 2.2 DX 시행 주체별 기대효과
- summary: DX의 시행 목표 및 기대효과 / 2. DX 기반 Process 혁신에 따른 주체별 기대효과 / 2.2 DX 시행 주체별 기대효과. 발주자 / 시공자 / 설계자
- item_count: {'detected': 3, 'source': 'table_columns'}
- relation_type: {'value': 'parallel', 'confidence': 'high'}
- detected_terms: 126개
**🎯 1위 three_persona_benefits** (Frame 14) — **use_as_is**
![14](../../data/figma_previews/14.png)
- **anchor**: 1.00 — `construction_personas`: ['발주자', '설계자', '시공자']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.64
- **base**: 0.928
- **confidence**: **0.928** → use_as_is
**2위 dx_sw_necessity_three_perspectives** (Frame 20) — **restructure**
![20](../../data/figma_previews/20.png)
- **anchor**: 0.33 — `three_design_perspectives`: ['디지털']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.57
- **base**: 0.748
- **confidence**: **0.748** → restructure
**3위 solution_engn_split_diagram** (Frame 21) — **restructure**
![21](../../data/figma_previews/21.png)
- **anchor**: 0.50 — `solution_concepts`: ['시공', '협업']
- **cardinality**: 0.80
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.54
- **base**: 0.743
- **confidence**: **0.743** → restructure
**4위 three_parallel_requirements** (Frame 13) — **reject**
![13](../../data/figma_previews/13.png)
- **anchor**: 0.33 — `three_pillars`: ['기술']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.53
- **base**: 0.739
- **confidence**: **0.739** → reject
**5위 sw_reality_three_emphasis** (Frame 28) — **reject**
![28](../../data/figma_previews/28.png)
- **anchor**: 0.33 — `domain_civil`: ['실무']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.45
- **base**: 0.722
- **confidence**: **0.722** → reject
### MDX03-1 — 정답 13 (three_parallel_requirements)
**MDX 분석 (detect_mdx.py — LLM 0회)**
- title: DX 실행 체계 구축 방안 / 1. DX 시행을 위한 필수 요건
- summary: DX 실행 체계 구축 방안 / 1. DX 시행을 위한 필수 요건. 기술 / 사람 / 자연
- item_count: {'detected': 3, 'source': 'bullets'}
- relation_type: {'value': 'parallel', 'confidence': 'high'}
- detected_terms: 90개
**🎯 1위 three_parallel_requirements** (Frame 13) — **use_as_is**
![13](../../data/figma_previews/13.png)
- **anchor**: 1.00 — `three_pillars`: ['기술', '사람', '자연']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.63
- **base**: 0.925
- **confidence**: **0.925** → use_as_is
**2위 dx_sw_necessity_three_perspectives** (Frame 20) — **light_edit**
![20](../../data/figma_previews/20.png)
- **anchor**: 0.75 — `dx_sw_necessity`: ['DX', 'S/W', '필수']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.54
- **base**: 0.846
- **confidence**: **0.846** → light_edit
**3위 sw_reality_three_emphasis** (Frame 28) — **reject**
![28](../../data/figma_previews/28.png)
- **anchor**: 0.33 — `domain_civil`: ['토목']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.47
- **base**: 0.727
- **confidence**: **0.727** → reject
**4위 solution_engn_split_diagram** (Frame 21) — **reject**
![21](../../data/figma_previews/21.png)
- **anchor**: 0.25 — `solution_engn_sw`: ['S/W']
- **cardinality**: 0.80
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.52
- **base**: 0.677
- **confidence**: **0.677** → reject
**5위 three_persona_benefits** (Frame 14) — **reject**
![14](../../data/figma_previews/14.png)
- **anchor**: 0.00 — `None`: []
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.55
- **base**: 0.659
- **confidence**: **0.659** → reject
### MDX03-2 — 정답 29 (process_product_two_way)
**MDX 분석 (detect_mdx.py — LLM 0회)**
- title: DX 실행 체계 구축 방안 / 2. Process의 혁신과 Product의 변화
- summary: DX 실행 체계 구축 방안 / 2. Process의 혁신과 Product의 변화. 과정 / 결과
- item_count: {'detected': 2, 'source': 'subsections'}
- relation_type: {'value': 'compare', 'confidence': 'high'}
- detected_terms: 117개
**🎯 1위 process_product_two_way** (Frame 29) — **use_as_is**
![29](../../data/figma_previews/29.png)
- **anchor**: 1.00 — `dimension_2d_3d`: ['2D', '2D도면', '3D', '3D모델']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.60
- **base**: 0.919
- **confidence**: **0.919** → use_as_is
**2위 bim_dx_comparison_table** (Frame 18) — **reject**
![18](../../data/figma_previews/18.png)
- **anchor**: 0.70 — `bim_dx`: ['BIM', 'DX'] *(cap0.70 적용 (방증 0.29<0.5))*
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.48
- **base**: 0.821
- **confidence**: **0.821** → reject
**3위 app_sw_package_vs_solution** (Frame 23) — **reject**
![23](../../data/figma_previews/23.png)
- **anchor**: 0.00 — `None`: []
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.47
- **base**: 0.645
- **confidence**: **0.645** → reject
**4위 engn_sw_three_types** (Frame 24) — **reject**
![24](../../data/figma_previews/24.png)
- **anchor**: 0.67 — `engn_sw`: ['Engn', 'S/W']
- **cardinality**: 0.50
- **relation**: 1.00
- **slot**: 0.50
- **content**: 0.50
- **base**: 0.641
- **adaptation**: -0.00 ['forbidden:n<min']
- **confidence**: **0.641** → reject
**5위 bim_adoption_central_split** (Frame 27) — **restructure**
![27](../../data/figma_previews/27.png)
- **anchor**: 0.67 — `productivity_digital`: ['DX', '디지털']
- **cardinality**: 1.00
- **relation**: 1.00
- **slot**: 1.00
- **content**: 0.61
- **base**: 0.838
- **not_suits**: -0.20 ['BIM vs DX 직접 대조']
- **confidence**: **0.638** → restructure
## 4. 요약
- **정답률**: 4/4 — Phase 22~24 와 동일하지만 근거가 다름.
- **1-2위 격차**: Phase 24 대비 일부 MDX에서 margin 작아짐 (2위도 구조 호환되면 light_edit 영역 상승).
- **하지만 운영 관점 차이**:
- 정답 모두 `use_as_is` (≥0.90) — 원본 그대로 slot fill.
- 오답 후보 `light_edit`/`restructure`/`reject` 로 등급 분리 — 단순 1위/아님 이분법 아님.
- 조건부 cap 의도대로 작동: MDX01-2 bim_dx **면제** (방증 comparison_dimensions 0.71), MDX03-2 bim_dx **적용** (방증 0.29<0.5).
- not_suits `주체별 나열`, `필수요건` 등 구조 신호로 오답 후보 확실히 억제.
**결론**: template-fit-v1 은 단순 매칭 점수를 넘어 **운영 가능한 DB 체계** 제공.
기존 Phase 22~24 의 키워드/내용/구조 축은 base 의 일부로 유지하되, 감점 + 라우팅 + cap 이 실제 운영에 필요.