Files
C.E.L_Slide_test2/tests/matching/PRIORITY_5_REVIEW_r2.html
T
KyeongminandClaude Opus 4.8 b836e79ee1 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>
2026-07-02 17:03:42 +09:00

470 lines
15 KiB
HTML

<!DOCTYPE html>
<html lang="ko"><head><meta charset="utf-8"><title>Priority 5 r2</title><style>
body { font-family: -apple-system, "Segoe UI", Pretendard, sans-serif; max-width: 1100px; margin: 2em auto; padding: 0 1.5em 4em; line-height: 1.65; color: #222; background: #f8fafc; }
h1 { border-bottom: 3px solid #2563eb; padding-bottom: 0.25em; }
h2 { margin-top: 2.5em; background: #e0e7ff; padding: 0.6em 0.9em; border-left: 4px solid #0a6; border-radius: 4px; }
h3 { margin-top: 1.3em; color: #1a365d; }
table { border-collapse: collapse; background: #fff; margin: 0.5em 0 1em; }
th, td { border: 1px solid #e2e8f0; padding: 8px 10px; text-align: left; vertical-align: top; }
th { background: #1e293b; color: #fff; }
code { background: #f4f4f4; padding: 1px 6px; border-radius: 3px; font-size: 0.9em; color: #111; }
strong { color: #0a6; }
</style></head>
<body><h1>Priority 5 프레임 검토 리포트 (C.2-b r2)</h1>
<p>r1 버그 수정 후 재라벨링. 각 프레임마다 <strong>r1 → r2 변화</strong> 를 함께 표시.</p>
<h2>Frame 03 — 국외 BIM 수행 현황</h2>
<ul>
<li>layout: <code>list-numbered-4</code> (original: <code>list-numbered</code>)</li>
<li>relation_type / cardinality.ideal: <code>parallel</code> / 4</li>
</ul>
<h3>r1 → r2 변화 요약</h3>
<table>
<thead>
<tr>
<th></th>
<th>r1 primary</th>
<th>r2 primary</th>
<th>변경</th>
</tr>
</thead>
<tbody>
<tr>
<td>content_affinity</td>
<td><code>process_steps</code></td>
<td><strong><code>stakeholder_roles</code></strong></td>
<td></td>
</tr>
<tr>
<td>structure_intent</td>
<td><code>sequence</code></td>
<td><strong><code>multi_parallel</code></strong></td>
<td></td>
</tr>
</tbody>
</table>
<h3>r2 content_affinity</h3>
<ul>
<li>primary: <strong><code>stakeholder_roles</code></strong></li>
<li>secondary: <code>policy_requirements</code></li>
<li>evidence:<ul>
<li><code>primary</code> (keyword_match) — kw=['수행', '수행'] / rule='수행' 등 키워드가 stakeholder_roles 를 가리킴 / conf=0.7</li>
<li><code>secondary_1</code> (keyword_match) — kw=['국외', '국외'] / conf=0.65</li>
<li><code>blocked_by_not_suits</code> — process_steps(['단계', '순서']), concept_comparison(['비교']), capability_requirements(['필수', '요건'])</li>
</ul>
</li>
</ul>
<h3>r2 structure_intent</h3>
<ul>
<li>primary: <strong><code>multi_parallel</code></strong></li>
<li>evidence:<ul>
<li><code>primary</code> (content_or_structure) — rule=4개 병렬 / conf=0.75</li>
<li><code>blocked_by_not_suits</code> — persona_mapping(['주체별']), binary_compare(['2개 비교']), sequence(['단계', '순서'])</li>
</ul>
</li>
</ul>
<h3>alternative_patterns</h3>
<table>
<thead>
<tr>
<th>대안</th>
<th style="text-align: right;">confidence</th>
<th>source</th>
<th>reason</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>bullet-cards</code></td>
<td style="text-align: right;">1.0</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 1.0)</td>
</tr>
<tr>
<td><code>list-stacked</code></td>
<td style="text-align: right;">1.0</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 1.0)</td>
</tr>
<tr>
<td><code>side-card</code></td>
<td style="text-align: right;">0.88</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.88)</td>
</tr>
<tr>
<td><code>definition-list</code></td>
<td style="text-align: right;">0.82</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.82)</td>
</tr>
</tbody>
</table>
<hr />
<h2>Frame 11 — 시공단계 BIM 모델·정보 활용 구분</h2>
<ul>
<li>layout: <code>cards-3-category</code> (original: <code>3-category</code>)</li>
<li>relation_type / cardinality.ideal: <code>parallel</code> / 3</li>
</ul>
<h3>r1 → r2 변화 요약</h3>
<table>
<thead>
<tr>
<th></th>
<th>r1 primary</th>
<th>r2 primary</th>
<th>변경</th>
</tr>
</thead>
<tbody>
<tr>
<td>content_affinity</td>
<td><code>persona_benefit</code></td>
<td><strong><code>concept_definition</code></strong></td>
<td></td>
</tr>
<tr>
<td>structure_intent</td>
<td><code>sequence</code></td>
<td><strong><code>multi_parallel</code></strong></td>
<td></td>
</tr>
</tbody>
</table>
<h3>r2 content_affinity</h3>
<ul>
<li>primary: <strong><code>concept_definition</code></strong></li>
<li>secondary: <code>comparative_matrix</code></li>
<li>evidence:<ul>
<li><code>primary</code> (keyword_match) — kw=['분류', '구분', '분류'] / rule='분류' 등 키워드가 concept_definition 를 가리킴 / conf=0.8</li>
<li><code>secondary_1</code> (keyword_match) — kw=['다면'] / conf=0.65</li>
<li><code>blocked_by_not_suits</code> — persona_benefit(['발주자', '설계자', '시공자']), concept_comparison(['비교', '대조', 'vs']), process_steps(['순서']), capability_requirements(['필수', '요건'])</li>
</ul>
</li>
</ul>
<h3>r2 structure_intent</h3>
<ul>
<li>primary: <strong><code>multi_parallel</code></strong></li>
<li>secondary: <code>matrix_coverage</code></li>
<li>evidence:<ul>
<li><code>primary</code> (content_or_structure) — rule=카드 3열 / conf=0.75</li>
<li><code>secondary_1</code> (keyword_match) — rule=— / conf=0.55</li>
<li><code>blocked_by_not_suits</code> — persona_mapping(['주체별']), sequence(['순서'])</li>
</ul>
</li>
</ul>
<h3>alternative_patterns</h3>
<table>
<thead>
<tr>
<th>대안</th>
<th style="text-align: right;">confidence</th>
<th>source</th>
<th>reason</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>3-section</code></td>
<td style="text-align: right;">1.0</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 1.0)</td>
</tr>
<tr>
<td><code>3-emphasis</code></td>
<td style="text-align: right;">0.85</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.85)</td>
</tr>
<tr>
<td><code>3col-parallel</code></td>
<td style="text-align: right;">0.72</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.72)</td>
</tr>
<tr>
<td><code>3col-cards</code></td>
<td style="text-align: right;">0.65</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.65)</td>
</tr>
<tr>
<td><code>3col-compare</code></td>
<td style="text-align: right;">0.65</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.65)</td>
</tr>
</tbody>
</table>
<hr />
<h2>Frame 12 — 건설산업의 목표 (BIM의 목적)</h2>
<ul>
<li>layout: <code>cycle-3way-intersection</code> (original: <code>cycle-3way</code>)</li>
<li>relation_type / cardinality.ideal: <code>parallel</code> / 3</li>
</ul>
<h3>r1 → r2 변화 요약</h3>
<table>
<thead>
<tr>
<th></th>
<th>r1 primary</th>
<th>r2 primary</th>
<th>변경</th>
</tr>
</thead>
<tbody>
<tr>
<td>content_affinity</td>
<td><code>interrelation</code></td>
<td><strong><code>interrelation</code></strong></td>
<td></td>
</tr>
<tr>
<td>structure_intent</td>
<td><code>cycle_interrelation</code></td>
<td><strong><code>cycle_interrelation</code></strong></td>
<td></td>
</tr>
</tbody>
</table>
<h3>r2 content_affinity</h3>
<ul>
<li>primary: <strong><code>interrelation</code></strong></li>
<li>secondary: <code>goal_axes</code></li>
<li>evidence:<ul>
<li><code>primary</code> (keyword_match) — kw=['조화', '교차', '수렴', '3원', '교차', '수렴', '3원'] / rule='조화' 등 키워드가 interrelation 를 가리킴 / conf=0.95</li>
<li><code>secondary_1</code> (keyword_match) — kw=['목표', '궁극적', '목표', '궁극적'] / conf=0.65</li>
<li><code>blocked_by_not_suits</code> — persona_benefit(['발주자', '설계자', '시공자']), process_steps(['순서']), capability_requirements(['필수', '요건'])</li>
</ul>
</li>
</ul>
<h3>r2 structure_intent</h3>
<ul>
<li>primary: <strong><code>cycle_interrelation</code></strong></li>
<li>secondary: <code>hierarchy</code>, <code>multi_parallel</code></li>
<li>evidence:<ul>
<li><code>primary</code> (content_or_structure) — rule=조화 / conf=0.95</li>
<li><code>secondary_1</code> (keyword_match) — rule=— / conf=0.55</li>
<li><code>secondary_2</code> (layout_default) — rule=— / conf=0.55</li>
<li><code>blocked_by_not_suits</code> — persona_mapping(['주체별']), sequence(['순서']), singleton_emphasis(['문제', '진단', '약점'])</li>
</ul>
</li>
</ul>
<h3>alternative_patterns</h3>
<table>
<thead>
<tr>
<th>대안</th>
<th style="text-align: right;">confidence</th>
<th>source</th>
<th>reason</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>3col-parallel</code></td>
<td style="text-align: right;">0.7</td>
<td>manual_seed</td>
<td>3개 요소를 순환 대신 평면 병렬 나열로 표현하는 대안</td>
</tr>
<tr>
<td><code>circular-nodes</code></td>
<td style="text-align: right;">0.6</td>
<td>manual_seed</td>
<td>N개 요소를 radial 로 배치하는 대안</td>
</tr>
</tbody>
</table>
<hr />
<h2>Frame 20 — 디지털 전환(DX)은 S/W가 필수다</h2>
<ul>
<li>layout: <code>cards-3-header</code> (original: <code>3col-cards</code>)</li>
<li>relation_type / cardinality.ideal: <code>parallel</code> / 3</li>
</ul>
<h3>r1 → r2 변화 요약</h3>
<table>
<thead>
<tr>
<th></th>
<th>r1 primary</th>
<th>r2 primary</th>
<th>변경</th>
</tr>
</thead>
<tbody>
<tr>
<td>content_affinity</td>
<td><code>concept_comparison</code></td>
<td><strong><code>capability_requirements</code></strong></td>
<td></td>
</tr>
<tr>
<td>structure_intent</td>
<td><code>binary_compare</code></td>
<td><strong><code>multi_parallel</code></strong></td>
<td></td>
</tr>
</tbody>
</table>
<h3>r2 content_affinity</h3>
<ul>
<li>primary: <strong><code>capability_requirements</code></strong></li>
<li>secondary: <code>before_after_change</code></li>
<li>evidence:<ul>
<li><code>primary</code> (keyword_match) — kw=['필수', 'S/W', '필수', 'S/W'] / rule='필수' 등 키워드가 capability_requirements 를 가리킴 / conf=0.85</li>
<li><code>secondary_1</code> (keyword_match) — kw=['전환'] / conf=0.65</li>
<li><code>blocked_by_not_suits</code> — comparative_matrix(['다면']), process_steps(['순서']), concept_comparison(['비교', '대조', 'vs']), concept_definition(['개념'])</li>
</ul>
</li>
</ul>
<h3>r2 structure_intent</h3>
<ul>
<li>primary: <strong><code>multi_parallel</code></strong></li>
<li>secondary: <code>state_transition</code></li>
<li>evidence:<ul>
<li><code>primary</code> (content_or_structure) — rule=3관점 / conf=0.8</li>
<li><code>secondary_1</code> (keyword_match) — rule=— / conf=0.55</li>
<li><code>blocked_by_not_suits</code> — matrix_coverage(['다면']), binary_compare(['2개 개념', '대조']), sequence(['순서'])</li>
</ul>
</li>
</ul>
<h3>alternative_patterns</h3>
<table>
<thead>
<tr>
<th>대안</th>
<th style="text-align: right;">confidence</th>
<th>source</th>
<th>reason</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>persona-3col</code></td>
<td style="text-align: right;">1.0</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 1.0)</td>
</tr>
<tr>
<td><code>3col-parallel</code></td>
<td style="text-align: right;">0.78</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.78)</td>
</tr>
<tr>
<td><code>3col-compare</code></td>
<td style="text-align: right;">0.69</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.69)</td>
</tr>
<tr>
<td><code>table-3col</code></td>
<td style="text-align: right;">0.62</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.62)</td>
</tr>
<tr>
<td><code>compare-rows</code></td>
<td style="text-align: right;">0.24</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.24)</td>
</tr>
</tbody>
</table>
<hr />
<h2>Frame 29 — Process/Product 혁신</h2>
<ul>
<li>layout: <code>banner-top-2col-bottom</code> (original: <code>compare-2banner-top-2col-bottom</code>)</li>
<li>relation_type / cardinality.ideal: <code>compare</code> / 2</li>
</ul>
<h3>r1 → r2 변화 요약</h3>
<table>
<thead>
<tr>
<th></th>
<th>r1 primary</th>
<th>r2 primary</th>
<th>변경</th>
</tr>
</thead>
<tbody>
<tr>
<td>content_affinity</td>
<td><code>before_after_change</code></td>
<td><strong><code>before_after_change</code></strong></td>
<td></td>
</tr>
<tr>
<td>structure_intent</td>
<td><code>state_transition</code></td>
<td><strong><code>state_transition</code></strong></td>
<td></td>
</tr>
</tbody>
</table>
<h3>r2 content_affinity</h3>
<ul>
<li>primary: <strong><code>before_after_change</code></strong></li>
<li>secondary: <code>concept_comparison</code>, <code>comparative_matrix</code></li>
<li>evidence:<ul>
<li><code>primary</code> (keyword_match) — kw=['AS-IS', 'TO-BE', '혁신', '이중 변환', '과정', 'AS-IS', 'TO-BE', '혁신'] / rule='AS-IS' 등 키워드가 before_after_change 를 가리킴 / conf=0.95</li>
<li><code>secondary_1</code> (keyword_match) — kw=['대조', 'vs', 'vs'] / conf=0.65</li>
<li><code>secondary_2</code> (keyword_match) — kw=['축', '축'] / conf=0.65</li>
<li><code>blocked_by_not_suits</code> — process_steps(['단계', '순서'])</li>
</ul>
</li>
</ul>
<h3>r2 structure_intent</h3>
<ul>
<li>primary: <strong><code>state_transition</code></strong></li>
<li>secondary: <code>binary_compare</code></li>
<li>evidence:<ul>
<li><code>primary</code> (content_or_structure) — rule=AS-IS / conf=0.95</li>
<li><code>secondary_1</code> (layout_default) — rule=— / conf=0.55</li>
<li><code>blocked_by_not_suits</code> — sequence(['단계', '순서'])</li>
</ul>
</li>
</ul>
<h3>alternative_patterns</h3>
<table>
<thead>
<tr>
<th>대안</th>
<th style="text-align: right;">confidence</th>
<th>source</th>
<th>reason</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>compare-2col</code></td>
<td style="text-align: right;">1.0</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 1.0)</td>
</tr>
<tr>
<td><code>table-2col</code></td>
<td style="text-align: right;">0.98</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.98)</td>
</tr>
<tr>
<td><code>2col-paired</code></td>
<td style="text-align: right;">0.86</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.86)</td>
</tr>
<tr>
<td><code>2-boxes</code></td>
<td style="text-align: right;">0.54</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.54)</td>
</tr>
<tr>
<td><code>central-split</code></td>
<td style="text-align: right;">0.52</td>
<td>derived_from_COMPAT</td>
<td>_COMPAT 공통 호환 mdx_layout 집합 기반 파생 (정규화 0.52)</td>
</tr>
</tbody>
</table>
<hr /></body></html>