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
+282
View File
@@ -0,0 +1,282 @@
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Synonym 사전 관리 기준</title>
<style>
body {
font-family: -apple-system, 'Segoe UI', 'Malgun Gothic', sans-serif;
max-width: 1800px;
margin: 0 auto;
padding: 24px;
line-height: 1.6;
color: #1e293b;
background: #f8fafc;
}
h1 { color: #1e293b; border-bottom: 3px solid #2563eb; padding-bottom: 12px; }
h2 {
color: #1a365d;
background: #e0e7ff;
padding: 10px 16px;
border-radius: 6px;
margin-top: 32px;
}
hr { border: none; border-top: 1px solid #cbd5e1; margin: 24px 0; }
table {
border-collapse: collapse;
width: 100%;
margin: 12px 0 24px;
background: #fff;
box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}
th, td {
border: 1px solid #e2e8f0;
padding: 10px;
text-align: left;
vertical-align: top;
}
th {
background: #1e293b;
color: #fff;
font-weight: 700;
text-align: center;
width: 120px;
}
td:first-child {
background: #f1f5f9;
font-weight: 600;
text-align: center;
width: 120px;
}
td img {
max-width: 260px;
height: auto;
display: block;
margin: 0 auto 6px;
border: 1px solid #cbd5e1;
border-radius: 4px;
}
td br + strong { color: #2563eb; }
</style>
</head>
<body>
<h1>Synonym 사전 관리 기준 — 이원화</h1>
<blockquote>
<p><strong>초안 검수 결과 반영 판</strong>: 기준과 실제 사전의 모순을 해소하기 위해 production/candidate로 분리.</p>
</blockquote>
<h2>1. 운영 원칙 (v2)</h2>
<ul>
<li><strong>이원화</strong>: <code>synonyms.yaml</code> (production, 최소본) + <code>synonyms_candidates.yaml</code> (검수 대기)</li>
<li><strong>production 진입 기준 (엄격)</strong>:</li>
<li>실제 데이터(MDX + Figma)에 <strong>등장 확인</strong></li>
<li><strong>매칭 케이스에 직접 영향</strong> 확인</li>
<li><strong>일반 용어/유의어 아님</strong> (엄밀 동의어)</li>
<li><strong>candidate 승격 프로세스</strong>:</li>
<li>실패 케이스 분석</li>
<li>candidate에서 해당 항목 확인</li>
<li>회귀 테스트 통과 시 production으로 이동</li>
<li>일반 용어는 <strong>영구적으로 제외</strong> (reject 처리)</li>
</ul>
<h2>2. Production 사전 (6개 canonical)</h2>
<p>실전 매칭에 사용. 변경은 회귀 테스트 필수.</p>
<table>
<thead>
<tr>
<th>Canonical</th>
<th>Variants</th>
<th>등록 이유</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>필수조건</code></td>
<td><code>필수 요건</code>, <code>필수요건</code></td>
<td>MDX03-1 정답 매칭에 필수</td>
</tr>
<tr>
<td><code>DX</code></td>
<td><code>디지털 전환</code>, <code>디지털전환</code></td>
<td>MDX/Figma 전반 빈번</td>
</tr>
<tr>
<td><code>과정혁신</code></td>
<td><code>과정의 혁신</code>, <code>Process 혁신</code></td>
<td>MDX03-2 정답 매칭에 필수</td>
</tr>
<tr>
<td><code>결과혁신</code></td>
<td><code>결과의 혁신</code>, <code>Product의 변화</code></td>
<td>MDX03-2 정답 매칭에 필수</td>
</tr>
<tr>
<td><code>3D모델</code></td>
<td><code>3D 모델</code>, <code>3차원 모델</code></td>
<td>MDX 전반 띄어쓰기 혼용</td>
</tr>
<tr>
<td><code>2D도면</code></td>
<td><code>2D 도면</code></td>
<td>MDX 전반 띄어쓰기 혼용</td>
</tr>
</tbody>
</table>
<p><strong>총 variants 11개</strong> (데이터 기반 검증 완료)</p>
<h2>3. Candidate 사전 (검수 대기: 9개, 거부: 7개)</h2>
<h3>3-1. Evidence Only (데이터 등장 확인, production 승격 여부 검토)</h3>
<table>
<thead>
<tr>
<th>Canonical</th>
<th>Variants</th>
<th>등장 위치</th>
<th>상태</th>
<th>메모</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>BIM</code></td>
<td><code>Building Information Modeling</code></td>
<td>MDX/01.mdx</td>
<td>evidence_only</td>
<td>MDX01에 1회만 등장. 풀네임-약어 쌍.</td>
</tr>
<tr>
<td><code>발주자</code></td>
<td><code>발주처</code></td>
<td>MDX/01.mdx, Figma/1171281175/texts.md</td>
<td>evidence_only</td>
<td>Figma DB에 '발주처'도 이미 등록됨 (1171281195 analysis.md). canonical 어느 쪽으로 갈지 결정 필요.</td>
</tr>
<tr>
<td><code>시공자</code></td>
<td><code>시공사</code>, <code>건설사</code></td>
<td>MDX/01.mdx, Figma/1171281175</td>
<td>evidence_only</td>
<td>Figma DB에 '시공사'도 등록됨. canonical 정책 필요.</td>
</tr>
<tr>
<td><code>설계자</code></td>
<td><code>설계사</code>, <code>엔지니어링사</code></td>
<td>MDX/01.mdx, Figma/1171281175</td>
<td>evidence_only</td>
<td>위와 동일.</td>
</tr>
<tr>
<td><code>디지털기술</code></td>
<td><code>디지털 기술</code>, <code>Digital Technology</code></td>
<td>MDX/01.mdx, MDX/03.mdx</td>
<td>evidence_only</td>
<td>일반 용어 성격. 기술 전반에 쓰임.</td>
</tr>
<tr>
<td><code>전문지식</code></td>
<td><code>전문 지식</code></td>
<td>MDX/03.mdx, Figma/1171281192</td>
<td>evidence_only</td>
<td>일반 용어 성격.</td>
</tr>
<tr>
<td><code>성장동력</code></td>
<td><code>성장 동력</code></td>
<td>Figma/1171281192</td>
<td>evidence_only</td>
<td>Figma 한 곳에만 등장. 효과 미미 예상.</td>
</tr>
<tr>
<td><code>기대효과</code></td>
<td><code>기대 효과</code></td>
<td>Figma/1171281191/analysis.md</td>
<td>evidence_only</td>
<td>Figma analysis.md에만 등장 (제가 태깅 시 쓴 단어). 실질 효과 낮음.</td>
</tr>
<tr>
<td><code>주체별</code></td>
<td><code>역할별</code></td>
<td>Figma/1171281191/analysis.md</td>
<td>evidence_only</td>
<td>Figma analysis.md에서 1회 (제가 태깅 시 사용).</td>
</tr>
</tbody>
</table>
<h3>3-2. Reject (등록 기준 위반, 사전에서 제외)</h3>
<table>
<thead>
<tr>
<th>Canonical</th>
<th>이유</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>고부가가치</code></td>
<td>일반 용어. 띄어쓰기 변형도 데이터에 없음.</td>
</tr>
<tr>
<td><code>건설산업</code></td>
<td>일반 용어. 데이터에는 공백 없는 '건설산업' 한 형태로만 등장.</td>
</tr>
<tr>
<td><code>역량목표</code></td>
<td>일반 용어. 띄어쓰기 변형 데이터 없음.</td>
</tr>
<tr>
<td><code>실행요건</code></td>
<td>일반 용어. 띄어쓰기 변형 데이터 없음.</td>
</tr>
<tr>
<td><code>정책목표</code></td>
<td>일반 용어. 띄어쓰기 변형 데이터 없음.</td>
</tr>
<tr>
<td><code>3요소</code></td>
<td>수량 표현. 띄어쓰기/유의어 변형 데이터 없음.</td>
</tr>
<tr>
<td><code>4문제</code></td>
<td>수량 표현. 데이터 없음.</td>
</tr>
</tbody>
</table>
<h2>4. 초안 대비 변경 요약</h2>
<table>
<thead>
<tr>
<th>항목</th>
<th>초안</th>
<th>수정판</th>
</tr>
</thead>
<tbody>
<tr>
<td>총 canonical</td>
<td>22</td>
<td>6 (production) + 16 (candidate 대기/거부)</td>
</tr>
<tr>
<td>총 variants</td>
<td>55</td>
<td>10 (production) + 나머지는 candidate</td>
</tr>
<tr>
<td>일반 용어 포함 여부</td>
<td>❌ 기준 위반 포함됨</td>
<td>✓ production 제외, candidate에서 reject</td>
</tr>
<tr>
<td>데이터 검증</td>
<td>❌ 55개 중 31개 미검증</td>
<td>✓ production은 전부 데이터 검증 완료</td>
</tr>
</tbody>
</table>
<h2>5. 다음 액션</h2>
<ol>
<li><strong>Phase 18~22 재실행</strong> — production 최소본으로 돌려서 점수 변화 확인</li>
<li><strong>candidate evidence_only 9개 검토</strong> — 매칭 실패 케이스 발생 시 승격</li>
<li><strong>data mining 스크립트 준비</strong> — 놓친 variants 자동 발굴 (다음 단계)</li>
</ol>
</body>
</html>