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
+91
View File
@@ -0,0 +1,91 @@
# V2 실패 원인 진단 리포트
_생성: 2026-04-24T09:45:39 · 모델: `jhgan/ko-sroberta-multitask`_
V2(의미 기반 rerank) 가 TARGET 4 섹션 모두에서 V1 1위를 바꾸지 못한 이유를 가설 A~E 로 분리 진단한 결과.
## 1. 진단 해석 (요약)
- **가설 B 약간 의심**: pairwise cosine 평균 = 0.729 — 구분이 다소 약함
- **정답 프레임의 32-전체 cosine 랭킹 (summary)**: 01-2=1위, 02-2.2=1위, 03-1=1위, 03-2=1위 (Top-5 내 4/4)
- **V1 Top-5 내 V1↔cosine Spearman 평균 = 0.457** (1=완전 일치, -1=완전 반대) → V1 순서와 cosine 순서가 유사
**Variant 별 32-전체 Top1-Top2 평균 gap** (클수록 구분력 강함):
- `summary`: mean gap = 0.0307
- `full_text`: mean gap = 0.0310
- `title_only`: mean gap = 0.0244
- `summary_plus_tokens`: mean gap = 0.0140
## 2. 입력 품질
### 2.1 Frame content (32 프레임)
- 글자 수: 평균 **235.2** · 중앙값 228.5 · 최소 147 / 최대 373
- 프레임 간 pairwise cosine 분포 (496 쌍): 평균 **0.7291** · 중앙값 0.7275 · p90 0.8007 · 범위 [0.5441, 0.9145]
- 근접 중복 쌍 (cosine ≥ 0.9): **1개**
- `1171281211``1171281212` cosine=0.9145
### 2.2 MDX 섹션별 입력 (variant 비교)
| 섹션 | summary 글자 | full 글자 | title 글자 | summary+tokens 글자 |
|---|---:|---:|---:|---:|
| **01-2** | 64 | 1859 | 11 | 625 |
| **02-2.2** | 34 | 1108 | 18 | 436 |
| **03-1** | 32 | 684 | 18 | 318 |
| **03-2** | 36 | 1025 | 27 | 426 |
| **01-1** | 46 | 981 | 8 | 423 |
| **02-1** | 80 | 476 | 13 | 317 |
| **02-2.1** | 35 | 282 | 25 | 170 |
## 3. 32-전체 cosine 진단 (현재 V2 입력 = summary)
| 섹션 | 정답 rank | %ile | 정답 cosine | top1 | top1-top2 gap | 32 평균 cosine |
|---|---:|---:|---:|---:|---:|---:|
| **01-2** | 1 | 100.0 | 0.7295 | 0.7295 | 0.0439 | 0.6067 |
| **02-2.2** | 1 | 100.0 | 0.6416 | 0.6416 | 0.0492 | 0.4527 |
| **03-1** | 1 | 100.0 | 0.634 | 0.634 | 0.0381 | 0.4661 |
| **03-2** | 1 | 100.0 | 0.5991 | 0.5991 | 0.0191 | 0.4647 |
| **01-1** | — | — | — | 0.6017 | 0.0137 | 0.5434 |
| **02-1** | — | — | — | 0.6285 | 0.0302 | 0.4789 |
| **02-2.1** | — | — | — | 0.5511 | 0.0205 | 0.4427 |
## 4. V1 Top-5 내부 cosine 진단 (현재 V2 입력 = summary)
| 섹션 | V1 순서 | cosine 순서 | Spearman | Top1-Top2 gap |
|---|---|---|---:|---:|
| **01-2** | 18 → 27 → 11 → 1 → 9 | 18 → 27 → 11 → 1 → 9 | 1.0 | 0.0853 |
| **02-2.2** | 14 → 9 → 12 → 3 → 5 | 14 → 12 → 3 → 9 → 5 | 0.7 | 0.1558 |
| **03-1** | 13 → 15 → 20 → 27 → 19 | 13 → 15 → 20 → 27 → 19 | 1.0 | 0.0381 |
| **03-2** | 29 → 12 → 9 → 11 → 8 | 29 → 8 → 11 → 12 → 9 | 0.1 | 0.1159 |
| **01-1** | 1 → 27 → 11 → 12 → 20 | 27 → 11 → 12 → 1 → 20 | 0.4 | 0.0374 |
| **02-1** | 12 → 14 → 27 → 3 → 20 | 20 → 14 → 12 → 27 → 3 | -0.1 | 0.0115 |
| **02-2.1** | 11 → 8 → 3 → 29 → 9 | 29 → 8 → 3 → 11 → 9 | 0.1 | 0.0491 |
## 5. 입력 variant ablation
TARGET 4 섹션의 **정답 rank (32-전체)** variant 별 비교.
| 섹션 | summary | full_text | title_only | summary+tokens |
|---|---:|---:|---:|---:|
| **01-2** | 1 | 24 | 1 | 2 |
| **02-2.2** | 1 | 2 | 1 | 3 |
| **03-1** | 1 | 12 | 1 | 11 |
| **03-2** | 1 | 1 | 2 | 3 |
TARGET 4 섹션의 **Top1-Top2 gap (32-전체)** variant 별 비교 — 크면 구분력 강함.
| 섹션 | summary | full_text | title_only | summary+tokens |
|---|---:|---:|---:|---:|
| **01-2** | 0.0439 | 0.0175 | 0.0749 | 0.0075 |
| **02-2.2** | 0.0492 | 0.0385 | 0.0205 | 0.0166 |
| **03-1** | 0.0381 | 0.0562 | 0.0144 | 0.0284 |
| **03-2** | 0.0191 | 0.0421 | 0.0108 | 0.0048 |
## 6. 다음 단계
이 리포트의 수치를 근거로 주범 가설을 확정한 뒤 해당 축만 개선 — 전체 리팩터 전에 원인 분리가 목적.
- 가설 B (frame content 품질) 이 주범이면: `analysis.md` "내용 설명" 을 재작성해야 함. 분량을 늘리고 구조적 특징을 더 구체적으로 적어 구분도 확보.
- 가설 A (MDX summary) 이 주범이면: `detect_mdx.build_summary` 를 개선 또는 variant 교체.
- 가설 E (V1 Top-5 범위) 가 주범이면: rerank 범위를 Top-10 / Top-15 로 확장, 또는 V2 를 32-전체 rerank 로 변경.
- 가설 C (모델) 은 A/B/D/E 배제 후에만 검토 (과잉 실험 방지).