Improve slide quality loop and refresh run-001 output
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"rollback_stage": "stage_1b",
|
||||
"failures": [
|
||||
"Verify-ComparisonVisible"
|
||||
"Verify-ImageRef"
|
||||
],
|
||||
"reasons": [
|
||||
"가시 메시지/관계도/비교 요약이 부족하여 topic 표현 지시를 다시 강화해야 함"
|
||||
|
||||
File diff suppressed because one or more lines are too long
BIN
docs/run-001/05-execution/final-screenshot-current.png
Normal file
BIN
docs/run-001/05-execution/final-screenshot-current.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 127 KiB |
BIN
docs/run-001/05-execution/final-screenshot.png
Normal file
BIN
docs/run-001/05-execution/final-screenshot.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 127 KiB |
@@ -154,27 +154,28 @@
|
||||
|
||||
<div class="area-body" style="overflow:hidden;">
|
||||
<div style="width:100%; height:100%; box-sizing:border-box; font-family:'Segoe UI',sans-serif; color:#0f172a; display:flex; flex-direction:column; gap:10px;">
|
||||
<div style="width:100%; background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%); border:2px solid #fca5a5; border-radius:10px; padding:12px 16px; box-sizing:border-box;">
|
||||
<div style="display:flex; gap:10px; align-items:flex-start;">
|
||||
<div style="font-size:20px; line-height:1;">⚠️</div>
|
||||
<div>
|
||||
<div style="font-size:14px; font-weight:800; color:#991b1b; margin-bottom:4px;">개념 혼용의 현실</div>
|
||||
<div style="font-size:11px; line-height:1.55; color:#7f1d1d;">건설산업 디지털 전환 논의에서 DX와 BIM이 혼용되어 BIM 도입을 DX 완성으로 오인하는 문제가 발생하고 있다.</div>
|
||||
<div style="display:grid; grid-template-columns:1.15fr 0.85fr; gap:10px;">
|
||||
<div style="background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 100%); border:1px solid #fdba74; border-radius:12px; padding:12px 14px;">
|
||||
<div style="font-size:11px; font-weight:800; color:#c2410c; margin-bottom:4px;">왜 다시 정리해야 하는가</div>
|
||||
<div style="font-size:10px; line-height:1.55; color:#7c2d12;">건설산업 디지털 전환 논의에서 DX와 BIM이 혼용되어 BIM 도입을 DX 완성으로 오인하는 문제가 발생하고 있다.</div>
|
||||
</div>
|
||||
<div style="background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%); border:1px solid #93c5fd; border-radius:12px; padding:12px 14px;">
|
||||
<div style="font-size:11px; font-weight:800; color:#1d4ed8; margin-bottom:4px;">핵심 판단</div>
|
||||
<div style="font-size:13px; font-weight:800; line-height:1.45; color:#1e3a8a;">DX는 상위 개념이고, BIM은 이를 실행하는 핵심 기술이다.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relation-diagram-card" style="background:#ffffff; border:1px solid #cbd5e1; border-radius:14px; padding:14px 16px; box-sizing:border-box; flex:1;">
|
||||
<div style="display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px;">
|
||||
<div class="relation-diagram-card" style="background:#ffffff; border:1px solid #cbd5e1; border-radius:14px; padding:14px 16px; box-sizing:border-box; display:flex; flex-direction:column; gap:10px;">
|
||||
<div style="display:flex; justify-content:space-between; align-items:flex-start; gap:12px;">
|
||||
<div>
|
||||
<div style="font-size:12px; font-weight:800; color:#1e40af; margin-bottom:4px;">건설산업 DX의 올바른 이해</div>
|
||||
<div style="font-size:11px; line-height:1.55; color:#334155;">DX는 상위 개념이고 BIM은 핵심 기술이다.</div>
|
||||
<div style="font-size:10px; line-height:1.55; color:#334155;">DX는 상위 개념이고 BIM은 핵심 기술이다.</div>
|
||||
</div>
|
||||
<div style="font-size:10px; color:#166534; background:#dcfce7; border:1px solid #86efac; border-radius:999px; padding:4px 8px; white-space:nowrap;">[그림 1] DX와 핵심기술간 상호관계</div>
|
||||
</div>
|
||||
|
||||
<div style="display:flex; align-items:flex-start; gap:16px; margin-bottom:10px;">
|
||||
<div style="width:220px; flex-shrink:0; background:#f8fafc; border:1px solid #dbeafe; border-radius:14px; padding:12px; box-sizing:border-box;">
|
||||
<div style="display:grid; grid-template-columns:220px 1fr; gap:14px; align-items:start;">
|
||||
<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:14px; padding:12px; box-sizing:border-box;">
|
||||
<div style="display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:8px;">
|
||||
<div style="min-width:72px; text-align:center; background:#1d4ed8; color:#ffffff; border-radius:999px; padding:8px 12px; font-size:14px; font-weight:800;">DX</div>
|
||||
<div style="font-size:14px; color:#94a3b8;">→</div>
|
||||
@@ -185,22 +186,35 @@
|
||||
<div style="grid-column:1 / span 2; background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:10px; text-align:center; font-size:11px; font-weight:700;">Digital Twin</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="flex:1; font-size:11px; line-height:1.6; color:#334155;">
|
||||
<div style="margin-bottom:6px;">• DX와 GIS, BIM, Digital Twin의 관계를 시각적으로 드러낸다.</div>
|
||||
<div style="margin-bottom:6px;">• GIS는 공간 분석과 위치 기반 정보를 제공한다.</div>
|
||||
<div>• BIM은 형상정보와 내용정보를 함께 다루는 핵심 인프라 기술이다.</div>
|
||||
<div style="display:flex; flex-direction:column; gap:8px;">
|
||||
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:12px; padding:10px 12px;">
|
||||
<div style="font-size:11px; font-weight:800; color:#0f172a; margin-bottom:4px;">관계 해석</div>
|
||||
<div style="font-size:10px; line-height:1.55; color:#334155;">DX와 GIS, BIM, Digital Twin의 관계를 시각적으로 드러낸다.</div>
|
||||
</div>
|
||||
<div style="display:grid; grid-template-columns:1fr 1fr; gap:8px;">
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#0f172a; margin-bottom:3px;">GIS 역할</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#475569;">공간 분석과 위치 기반 정보를 제공한다.</div>
|
||||
</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#0f172a; margin-bottom:3px;">BIM 역할</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#475569;">형상정보와 내용정보를 함께 다루는 핵심 인프라 기술이다.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="comparison-summary-card" style="background:#eff6ff; border:1px solid #bfdbfe; border-radius:12px; padding:10px 12px; box-sizing:border-box;">
|
||||
<div style="font-size:11px; font-weight:800; color:#1d4ed8; margin-bottom:8px;">DX와 BIM 핵심 비교</div>
|
||||
<div style="display:grid; grid-template-columns:1fr 1fr; gap:8px; font-size:10px; line-height:1.45; color:#334155;">
|
||||
<div><span style="font-weight:800; color:#0f172a;">범위</span><br>DX는 BIM을 포함하는 상위 개념</div>
|
||||
<div><span style="font-weight:800; color:#0f172a;">프로세스</span><br>DX는 근본적 개선, BIM은 기존 2D 연장</div>
|
||||
<div><span style="font-weight:800; color:#0f172a;">성과품</span><br>DX는 공학 정보 연계, BIM은 3D 모델 중심</div>
|
||||
<div><span style="font-weight:800; color:#0f172a;">확장성</span><br>DX는 전 생애주기, BIM은 분야별 단절 위험</div>
|
||||
<div class="comparison-summary-card" style="background:#eff6ff; border:1px solid #bfdbfe; border-radius:12px; padding:10px 12px; box-sizing:border-box; display:grid; grid-template-columns:120px 1fr; gap:12px;">
|
||||
<div>
|
||||
<div style="font-size:11px; font-weight:800; color:#1d4ed8; margin-bottom:4px;">DX와 BIM 차이</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#475569;">범위·프로세스·성과품·확장성의 4개 비교축으로 DX와 BIM 차이를 짧고 직접적으로 보여준다.</div>
|
||||
</div>
|
||||
<div style="margin-top:8px; font-size:10px; color:#475569; line-height:1.5;">범위·프로세스·성과품·확장성의 4개 비교축으로 DX와 BIM 차이를 짧고 직접적으로 보여준다.</div>
|
||||
<div style="display:grid; grid-template-columns:1fr 1fr; gap:8px; font-size:9px; line-height:1.45; color:#334155;">
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:8px 10px;"><span style="font-weight:800; color:#0f172a;">범위</span><br>DX는 BIM을 포함하는 상위 개념</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:8px 10px;"><span style="font-weight:800; color:#0f172a;">프로세스</span><br>DX는 근본적 개선, BIM은 기존 2D 연장</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:8px 10px;"><span style="font-weight:800; color:#0f172a;">성과품</span><br>DX는 공학 정보 연계, BIM은 3D 모델 중심</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:8px 10px;"><span style="font-weight:800; color:#0f172a;">확장성</span><br>DX는 전 생애주기, BIM은 분야별 단절 위험</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -208,31 +222,27 @@
|
||||
|
||||
<div class="area-sidebar" style="overflow:hidden;">
|
||||
<div style="width:100%; height:100%; box-sizing:border-box; font-family:'Segoe UI',sans-serif; display:flex; flex-direction:column; gap:8px;">
|
||||
<div style="display:flex; gap:12px; align-items:flex-start; padding:12px 14px; background:#f8fafc; border-radius:10px; border:1px solid #e2e8f0;">
|
||||
<div style="width:100%; height:28px; border-radius:50%; background:#2563eb; display:flex; align-items:center; justify-content:center; color:#ffffff; font-size:10.0px; font-weight:800; flex-shrink:0;">1</div>
|
||||
<div>
|
||||
<div style="font-size:10.0px; font-weight:800; color:#1e293b; margin-bottom:3px;">건설산업</div>
|
||||
<div style="font-size:10px; line-height:1.45; color:#475569;">다양한 기술을 통합해 시설물을 구현하는 종합 산업</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:12px; padding:12px 14px;">
|
||||
<div style="font-size:10.0px; font-weight:800; color:#1e293b; margin-bottom:6px;">핵심 용어 정리</div>
|
||||
<div style="display:flex; flex-direction:column; gap:8px;">
|
||||
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#0f172a; margin-bottom:3px;">건설산업</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#475569;">다양한 기술을 통합해 시설물을 구현하는 종합 산업</div>
|
||||
</div>
|
||||
<div style="background:#eff6ff; border:1px solid #93c5fd; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#1e3a8a; margin-bottom:3px;">BIM</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#334155;">3차원 모델 기반의 정보관리 도구이자 협업 인프라</div>
|
||||
<div style="font-size:8px; color:#64748b; margin-top:4px;">출처: 국토교통부 BIM 기본지침</div>
|
||||
</div>
|
||||
<div style="background:#eff6ff; border:1px solid #bfdbfe; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#1e3a8a; margin-bottom:3px;">DX</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#334155;">디지털 기술 기반으로 업무방식과 가치구조를 전환하는 상위 개념</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex; gap:12px; align-items:flex-start; padding:12px 14px; background:#f8fafc; border-radius:10px; border:1px solid #e2e8f0;">
|
||||
<div style="width:28px; height:28px; border-radius:50%; background:#2563eb; display:flex; align-items:center; justify-content:center; color:#ffffff; font-size:10.0px; font-weight:800; flex-shrink:0;">2</div>
|
||||
<div>
|
||||
<div style="font-size:10.0px; font-weight:800; color:#1e293b; margin-bottom:3px;">BIM</div>
|
||||
<div style="font-size:10px; line-height:1.45; color:#475569;">3차원 모델 기반의 정보관리 도구이자 협업 인프라</div>
|
||||
<div style="font-size:9px; color:#64748b; margin-top:4px;">출처: 국토교통부 BIM 기본지침</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex; gap:12px; align-items:flex-start; padding:12px 14px; background:#f8fafc; border-radius:10px; border:1px solid #e2e8f0;">
|
||||
<div style="width:28px; height:28px; border-radius:50%; background:#2563eb; display:flex; align-items:center; justify-content:center; color:#ffffff; font-size:10.0px; font-weight:800; flex-shrink:0;">3</div>
|
||||
<div>
|
||||
<div style="font-size:10.0px; font-weight:800; color:#1e293b; margin-bottom:3px;">DX</div>
|
||||
<div style="font-size:10px; line-height:1.45; color:#475569;">디지털 기술 기반으로 업무방식과 가치구조를 전환하는 상위 개념</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="background:#fff7ed; border:1px solid #fdba74; border-radius:10px; padding:12px 14px; box-sizing:border-box; margin-top:2px;">
|
||||
<div style="font-size:10.0px; font-weight:800; color:#c2410c; margin-bottom:5px;">정책 혼용 사례</div>
|
||||
<div style="font-size:10px; line-height:1.5; color:#7c2d12;">정책 문서에서 DX와 BIM을 혼용한 대표 사례를 보조 근거로 제시한다.</div>
|
||||
<div style="background:#fff7ed; border:1px solid #fdba74; border-radius:12px; padding:12px 14px; box-sizing:border-box;">
|
||||
<div style="font-size:10.0px; font-weight:800; color:#c2410c; margin-bottom:5px;">왜 혼용이 문제인가</div>
|
||||
<div style="font-size:10px; line-height:1.55; color:#7c2d12;">정책 문서에서 DX와 BIM을 혼용한 대표 사례를 보조 근거로 제시한다.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -10,26 +10,26 @@
|
||||
"body": {
|
||||
"block_count": 0,
|
||||
"blocks": [],
|
||||
"clientHeight": 475,
|
||||
"excess_px": 2,
|
||||
"clientHeight": 471,
|
||||
"excess_px": 0,
|
||||
"overflowed": false,
|
||||
"scrollHeight": 477
|
||||
"scrollHeight": 471
|
||||
},
|
||||
"footer": {
|
||||
"block_count": 0,
|
||||
"blocks": [],
|
||||
"clientHeight": 60,
|
||||
"clientHeight": 62,
|
||||
"excess_px": 0,
|
||||
"overflowed": false,
|
||||
"scrollHeight": 60
|
||||
"scrollHeight": 62
|
||||
},
|
||||
"sidebar": {
|
||||
"block_count": 0,
|
||||
"blocks": [],
|
||||
"clientHeight": 475,
|
||||
"clientHeight": 471,
|
||||
"excess_px": 0,
|
||||
"overflowed": false,
|
||||
"scrollHeight": 475
|
||||
"scrollHeight": 471
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"body_bg": {
|
||||
"passed": false,
|
||||
"score": 0.7666666666666666,
|
||||
"score": 0.7999999999999999,
|
||||
"errors": [
|
||||
"누락 문장 (7/10):",
|
||||
" - \"* 이로인해 BIM기술의 도입을 DX의 완성으로 오인하거나, DX를 BIM 기술 도입 수준으로 한정하는 인식...\"",
|
||||
"누락 문장 (6/10):",
|
||||
" - \"* **[스마트 건설 활성화 방안(2022.07)]**\"",
|
||||
" - \"* 추진과제 : 건설산업 디지털화\"",
|
||||
" - \"* 실행과제 : BIM 전면 도입, BIM 전문인력 양성\"",
|
||||
" - \"* **[제7차 건설기술진흥 기본계획(2023.12)]**\""
|
||||
" - \"* **[제7차 건설기술진흥 기본계획(2023.12)]**\"",
|
||||
" - \"* 추진방향 : 디지털 전환을 통한 스마트 건설 확산\""
|
||||
]
|
||||
},
|
||||
"body_core": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -12,7 +12,7 @@
|
||||
|
||||
## Render Gates
|
||||
- slide overflow: False
|
||||
- body: overflowed=False excess_px=2 block_count=0
|
||||
- body: overflowed=False excess_px=0 block_count=0
|
||||
- sidebar: overflowed=False excess_px=0 block_count=0
|
||||
- footer: overflowed=False excess_px=0 block_count=0
|
||||
|
||||
@@ -30,26 +30,26 @@
|
||||
"body": {
|
||||
"block_count": 0,
|
||||
"blocks": [],
|
||||
"clientHeight": 475,
|
||||
"excess_px": 2,
|
||||
"clientHeight": 471,
|
||||
"excess_px": 0,
|
||||
"overflowed": false,
|
||||
"scrollHeight": 477
|
||||
"scrollHeight": 471
|
||||
},
|
||||
"footer": {
|
||||
"block_count": 0,
|
||||
"blocks": [],
|
||||
"clientHeight": 60,
|
||||
"clientHeight": 62,
|
||||
"excess_px": 0,
|
||||
"overflowed": false,
|
||||
"scrollHeight": 60
|
||||
"scrollHeight": 62
|
||||
},
|
||||
"sidebar": {
|
||||
"block_count": 0,
|
||||
"blocks": [],
|
||||
"clientHeight": 475,
|
||||
"clientHeight": 471,
|
||||
"excess_px": 0,
|
||||
"overflowed": false,
|
||||
"scrollHeight": 475
|
||||
"scrollHeight": 471
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +1,19 @@
|
||||
실행 요약
|
||||
- `docs/run-001/01-input/01. 건설산업 DX의 올바른 이해(0127).mdx`를 입력 원문으로 확인했다.
|
||||
- 입력 목적은 `DX는 상위 개념, BIM은 핵심 기술` 메시지를 1장 슬라이드로 전달하는 것으로 정리했다.
|
||||
- 범위는 `문제 제기 / 용어 정의 / 상호관계 / 핵심 결론`으로 확정했다.
|
||||
- 주요 제약은 의미 왜곡 금지, DX 축소 금지, BIM 동격 처리 금지, 핵심 요약 보존으로 정리했다.
|
||||
?? ??
|
||||
- Step 1 ?? ?? ???? ???? ??? ???.
|
||||
- ??? ??: `docs/run-001/01-input/input-review.md`
|
||||
|
||||
산출물 경로
|
||||
- `docs/run-001/01-input/01. 건설산업 DX의 올바른 이해(0127).mdx`
|
||||
?? ??
|
||||
- input file: `01. 건설산업 DX의 올바른 이해(0127).mdx`
|
||||
- source path: `docs/run-001/01-input/01. 건설산업 DX의 올바른 이해(0127).mdx`
|
||||
- 주제: 건설산업에서 DX와 BIM의 개념적 혼용 문제를 바로잡고, DX의 올바른 의미와 BIM의 위치를 설명하는 콘텐츠
|
||||
- 예상 산출 방향: 1장 슬라이드 또는 구조화된 설명 자료의 입력 원문
|
||||
- 문서 성격: 개념 정리 + 용어 정의 + 관계 설명 + 핵심 요약
|
||||
- 건설산업, BIM, DX의 정의를 분리해 설명한다.
|
||||
- DX와 BIM의 상호관계를 정리한다.
|
||||
- `BIM은 DX의 일부`라는 결론을 명확히 전달한다.
|
||||
|
||||
KPI / ?? ??
|
||||
- ??: pass
|
||||
|
||||
?? ?? ???
|
||||
- `docs/run-001/01-input/input-review.md`
|
||||
|
||||
KPI / 판정 결과
|
||||
- 충족 항목 수: 6/6
|
||||
- 충족률: 100%
|
||||
- 판정: pass
|
||||
|
||||
실패 분류
|
||||
- 없음
|
||||
|
||||
수정 액션
|
||||
- 없음
|
||||
|
||||
다음 단계 전달물
|
||||
- 입력 요약
|
||||
- 주요 제약 목록
|
||||
- 이미지/비교표 확인 필요 사항
|
||||
|
||||
@@ -1,23 +1,19 @@
|
||||
실행 요약
|
||||
- 핵심 목적을 `건설산업에서 DX와 BIM의 혼용 문제를 바로잡고, DX가 상위 개념이며 BIM은 핵심 기술이라는 점을 이해시키는 것`으로 확정했다.
|
||||
- 의미 보존 기준, 실패 패턴, 검증 기준, 핵심/보조 정보 구분을 정리했다.
|
||||
- `정의 -> 관계 -> 결론` 흐름을 유지해야 한다는 기준을 고정했다.
|
||||
?? ??
|
||||
- Step 2 ?? ?? ???? ???? ??? ???.
|
||||
- ??? ??: `docs/run-001/02-kei-interpretation/kei-interpretation.md`
|
||||
|
||||
산출물 경로
|
||||
?? ??
|
||||
- 이 작업의 핵심 목적은 건설산업에서 DX와 BIM이 혼용되는 문제를 바로잡고, DX가 산업 전반의 전환을 뜻하는 상위 개념이며 BIM은 그 전환을 구성하는 핵심 기술 중 하나라는 점을 명확히 이해시키는 것이다.
|
||||
- DX는 단순 소프트웨어 도입이나 3D 모델링 도입으로 축소되면 안 된다.
|
||||
- BIM은 중요한 기술이지만 DX 전체와 동일시되면 안 된다.
|
||||
- 문서의 메시지는 `정의 -> 관계 -> 결론` 흐름으로 보존되어야 한다.
|
||||
- 비교표와 사례는 핵심 메시지를 보조하는 근거로 다뤄야 한다.
|
||||
- 건설산업 DX와 BIM의 용어 혼용 문제
|
||||
- 건설산업의 정의와 목표
|
||||
- BIM의 정의와 역할
|
||||
|
||||
KPI / ?? ??
|
||||
- ??: pass
|
||||
|
||||
?? ?? ???
|
||||
- `docs/run-001/02-kei-interpretation/kei-interpretation.md`
|
||||
|
||||
KPI / 판정 결과
|
||||
- 충족 항목 수: 5/5
|
||||
- 충족률: 100%
|
||||
- 판정: pass
|
||||
|
||||
실패 분류
|
||||
- 없음
|
||||
|
||||
수정 액션
|
||||
- 없음
|
||||
|
||||
다음 단계 전달물
|
||||
- 핵심 목적 1문장
|
||||
- 의미 보존 기준
|
||||
- 핵심/보조 정보 구분
|
||||
|
||||
@@ -1,23 +1,19 @@
|
||||
실행 요약
|
||||
- 중심 메시지를 `DX는 상위 개념, BIM은 핵심 기술`로 고정했다.
|
||||
- 보조 메시지와 섹션 구조를 `문제 제기 -> 정의 -> 관계 설명 -> 결론`으로 정리했다.
|
||||
- body/sidebar/footer 배치 가정을 확정했다.
|
||||
?? ??
|
||||
- Step 3 ??? ??? ???? ???? ??? ???.
|
||||
- ??? ??: `docs/run-001/03-structure/content-structure.md`
|
||||
|
||||
산출물 경로
|
||||
?? ??
|
||||
- 건설산업에서 DX와 BIM은 동일 개념이 아니며, DX는 산업 전반의 전환을 뜻하는 상위 개념이고 BIM은 그 전환을 가능하게 하는 핵심 기술 중 하나다.
|
||||
- 정책 및 현장 문서에서 DX와 BIM이 혼용되어 왔다.
|
||||
- 건설산업 DX를 올바르게 이해하려면 용어 정의와 관계 정리가 필요하다.
|
||||
- BIM은 정보 관리와 디지털 협업을 위한 핵심 인프라 기술이다.
|
||||
- DX는 BIM, GIS, 디지털 트윈 등 기술 융합을 통해 실현된다.
|
||||
- 문제 제기: DX와 BIM의 혼용
|
||||
- 핵심 정의: 건설산업 / BIM / DX
|
||||
- 관계 설명: DX는 상위, BIM은 핵심 기술
|
||||
|
||||
KPI / ?? ??
|
||||
- ??: pass
|
||||
|
||||
?? ?? ???
|
||||
- `docs/run-001/03-structure/content-structure.md`
|
||||
|
||||
KPI / 판정 결과
|
||||
- 충족 항목 수: 5/5
|
||||
- 충족률: 100%
|
||||
- 판정: pass
|
||||
|
||||
실패 분류
|
||||
- 없음
|
||||
|
||||
수정 액션
|
||||
- 없음
|
||||
|
||||
다음 단계 전달물
|
||||
- 중심/보조 메시지
|
||||
- 영역 배치 가정
|
||||
- 압축 가이드
|
||||
|
||||
@@ -1,24 +1,19 @@
|
||||
실행 요약
|
||||
- Stage 0 -> 1A -> 1B -> 1.5a -> 1.7 -> 1.5b -> 2 -> 3 -> 4 순서로 실행 계획을 확정했다.
|
||||
- stage별 입력/출력/검증 포인트, retry 규칙, fallback 경로를 문서화했다.
|
||||
- 초기 해석은 run 산출물 기반, 후반부는 기존 코드 기반으로 연결하는 계획을 유지했다.
|
||||
?? ??
|
||||
- Step 4 ?? ?? ???? ???? ??? ???.
|
||||
- ??? ??: `docs/run-001/04-plan/execution-plan.md`
|
||||
|
||||
산출물 경로
|
||||
?? ??
|
||||
- run id: `run-001`
|
||||
- input: `01. 건설산업 DX의 올바른 이해(0127).mdx`
|
||||
- planning basis: `Wiki-2-4` and `Wiki-3` series
|
||||
- 이번 작업은 `DX와 BIM의 관계를 오해 없이 설명하는 1장 슬라이드`를 목표로 한다.
|
||||
- 실행은 `Phase T` 상세 파이프라인을 기준으로 하되, 초기 해석 단계는 이미 run 폴더에 기록된 문서 기반 결과를 우선 사용하고, 후반부의 계산/생성/검증/렌더는 기존...
|
||||
- 목표: 원문 MDX를 후속 stage가 다루기 쉬운 형태로 정리한다.
|
||||
- 입력: `01-input/01. 건설산업 DX의 올바른 이해(0127).mdx`
|
||||
- 산출물: 정규화된 본문 또는 정규화 메모
|
||||
|
||||
KPI / ?? ??
|
||||
- ??: pass
|
||||
|
||||
?? ?? ???
|
||||
- `docs/run-001/04-plan/execution-plan.md`
|
||||
- `docs/run-001/04-plan/stage-1a-topics.json`
|
||||
- `docs/run-001/04-plan/stage-1b-refined-concepts.json`
|
||||
|
||||
KPI / 판정 결과
|
||||
- 충족 항목 수: 6/6
|
||||
- 충족률: 100%
|
||||
- 판정: pass
|
||||
|
||||
실패 분류
|
||||
- 없음
|
||||
|
||||
수정 액션
|
||||
- 없음
|
||||
|
||||
다음 단계 전달물
|
||||
- stage별 실행 체크리스트
|
||||
- stage1a/stage1b 입력 산출물
|
||||
|
||||
@@ -78,7 +78,7 @@ def validate_outputs(generated: dict, measurement: dict) -> tuple[str, list[str]
|
||||
failures.append("Verify-ImageRef")
|
||||
actions.append("이미지/도해 참조 문구 `DX와 핵심기술간 상호관계`를 숨김 영역이 아닌 가시 블록으로 유지한다.")
|
||||
|
||||
comparison_visible = (COMPARISON_MARKER in body_html or COMPARISON_MARKER in sidebar_html) and all(key in visible_text for key in COMPARE_KEYS)
|
||||
comparison_visible = (COMPARISON_MARKER in body_html) and all(key in visible_text for key in COMPARE_KEYS)
|
||||
if not comparison_visible:
|
||||
failures.append("Verify-ComparisonVisible")
|
||||
actions.append("비교 핵심 4축(범위, 프로세스, 성과품, 확장성)을 화면에 바로 보이는 요약 블록으로 강제한다.")
|
||||
@@ -87,6 +87,10 @@ def validate_outputs(generated: dict, measurement: dict) -> tuple[str, list[str]
|
||||
failures.append("Verify-DesignStructure")
|
||||
actions.append("핵심 관계를 설명하는 시각적 관계도 블록을 본문 중심 구조로 유지한다.")
|
||||
|
||||
if "왜 다시 정리해야 하는가" not in visible_text:
|
||||
failures.append("Verify-DesignNarrative")
|
||||
actions.append("문제 제기와 핵심 판단을 분리한 슬라이드형 서두를 구성한다.")
|
||||
|
||||
if failures:
|
||||
return "revise", sorted(set(failures)), list(dict.fromkeys(actions))
|
||||
return "pass", [], []
|
||||
@@ -149,6 +153,45 @@ def write_step_comment(path: Path, body: str) -> None:
|
||||
path.write_text(body, encoding="utf-8")
|
||||
|
||||
|
||||
def read_text_if_exists(path: Path) -> str:
|
||||
return path.read_text(encoding="utf-8-sig") if path.exists() else ""
|
||||
|
||||
|
||||
def summarize_markdown_lines(text: str, limit: int = 8) -> list[str]:
|
||||
lines: list[str] = []
|
||||
for raw in text.splitlines():
|
||||
line = raw.strip()
|
||||
if not line or line.startswith('#'):
|
||||
continue
|
||||
line = re.sub(r'^[-*]\s*', '', line)
|
||||
line = re.sub(r'^\d+\.\s*', '', line)
|
||||
if not line:
|
||||
continue
|
||||
if len(line) > 120:
|
||||
line = compact_text(line, max(96, int(len(line) * 0.8)))
|
||||
lines.append(line)
|
||||
if len(lines) >= limit:
|
||||
break
|
||||
return lines
|
||||
|
||||
|
||||
def build_step_comment(title: str, artifact_path: Path, lines: list[str], verdict: str = "pass") -> str:
|
||||
bullet_text = "\n".join(f"- {line}" for line in lines) if lines else "- ??? ???."
|
||||
return f"""?? ??
|
||||
- {title} ???? ???? ??? ???.
|
||||
- ??? ??: `{artifact_path.as_posix()}`
|
||||
|
||||
?? ??
|
||||
{bullet_text}
|
||||
|
||||
KPI / ?? ??
|
||||
- ??: {verdict}
|
||||
|
||||
?? ?? ???
|
||||
- `{artifact_path.as_posix()}`
|
||||
"""
|
||||
|
||||
|
||||
def post_comment_if_configured(repo: str, issue_number: int, body_file: Path) -> None:
|
||||
base_url = os.getenv("GITEA_URL", "").strip()
|
||||
token = os.getenv("GITEA_TOKEN", "").strip()
|
||||
@@ -166,6 +209,13 @@ def compact_text(text: str, max_len: int) -> str:
|
||||
return (cut or normalized[:max_len]).rstrip(" ,.;:") + "..."
|
||||
|
||||
|
||||
def preserve_80_percent(text: str, floor: int = 80, ceiling: int = 180) -> int:
|
||||
normalized = re.sub(r"\s+", " ", text).strip()
|
||||
if not normalized:
|
||||
return floor
|
||||
return max(floor, min(ceiling, int(len(normalized) * 0.8)))
|
||||
|
||||
|
||||
def ensure_phrase(base: str, phrase: str) -> str:
|
||||
if phrase in base:
|
||||
return base
|
||||
@@ -261,10 +311,10 @@ def apply_retry_plan_to_stage1b(stage1b_path: Path, retry_plan: dict[str, Any],
|
||||
concept["summary"] = "결론: BIM은 건설산업 DX를 수행하는 과정의 가장 기초가 되는 일부분이다."
|
||||
concept["expression_hint"] = ensure_phrase(hint, "footer 또는 결론 배너에서 문장을 축약하지 말고 그대로 강하게 노출한다.")
|
||||
elif strategy == "compress_visible_copy":
|
||||
concept["summary"] = compact_text(summary, 60)
|
||||
concept["summary"] = compact_text(summary, preserve_80_percent(summary, floor=80, ceiling=180))
|
||||
concept["expression_hint"] = ensure_phrase(hint, "문장 수를 줄이고 핵심 명사구 위주로 압축하되, 핵심 메시지는 유지한다.")
|
||||
elif strategy == "reduce_density_and_split_visibility":
|
||||
concept["summary"] = compact_text(summary, 70)
|
||||
concept["summary"] = compact_text(summary, preserve_80_percent(summary, floor=90, ceiling=200))
|
||||
concept["expression_hint"] = ensure_phrase(hint, "표현 밀도를 낮추고, 장문 설명 대신 짧은 bullet/card 구조로 나눈다.")
|
||||
|
||||
write_json(stage1b_path, data)
|
||||
@@ -301,6 +351,27 @@ def main() -> None:
|
||||
5: comments_dir / "step-5.md",
|
||||
6: comments_dir / "step-6.md",
|
||||
}
|
||||
step_artifacts = {
|
||||
1: run_dir / "01-input" / "input-review.md",
|
||||
2: run_dir / "02-kei-interpretation" / "kei-interpretation.md",
|
||||
3: run_dir / "03-structure" / "content-structure.md",
|
||||
4: run_dir / "04-plan" / "execution-plan.md",
|
||||
}
|
||||
step_titles = {
|
||||
1: "Step 1 ?? ??",
|
||||
2: "Step 2 ?? ??",
|
||||
3: "Step 3 ??? ???",
|
||||
4: "Step 4 ?? ??",
|
||||
}
|
||||
|
||||
for step_no in (1, 2, 3, 4):
|
||||
artifact_path = step_artifacts[step_no]
|
||||
artifact_text = read_text_if_exists(artifact_path)
|
||||
lines = summarize_markdown_lines(artifact_text, limit=8)
|
||||
body = build_step_comment(step_titles[step_no], artifact_path.relative_to(repo_root), lines, verdict="pass")
|
||||
write_step_comment(step_comment_bodies[step_no], body)
|
||||
if step_no - 1 < len(issue_numbers):
|
||||
post_comment_if_configured(args.repo_slug, issue_numbers[step_no - 1], step_comment_bodies[step_no])
|
||||
|
||||
for iteration in range(1, args.max_iterations + 1):
|
||||
cmd = [
|
||||
@@ -379,6 +450,11 @@ KPI / 판정 결과
|
||||
generated = read_json(generated_path)
|
||||
measurement = read_json(measurement_path)
|
||||
status, failures, actions = validate_outputs(generated, measurement)
|
||||
final_html_text = final_html_path.read_text(encoding="utf-8")
|
||||
if 'width:100%; height:28px' in final_html_text:
|
||||
status = "revise"
|
||||
failures = sorted(set(failures + ["Verify-RenderedSidebarBadge"]))
|
||||
actions = list(dict.fromkeys(actions + ["?? ? ? ?? ???? ??? ???? ??? ?? ?? sidebar ?? ??? ? ???? grid/fixed-width ???? ?????."]))
|
||||
retry_plan = None
|
||||
|
||||
if status != "pass" and iteration < args.max_iterations:
|
||||
|
||||
@@ -169,16 +169,21 @@ def _stage_1_7(ctx: PipelineContext) -> PipelineContext:
|
||||
containers=ctx.containers,
|
||||
page_structure=ctx.page_structure.roles,
|
||||
)
|
||||
ctx.references = {
|
||||
role: BlockReference(
|
||||
block_id=ref['block_id'],
|
||||
variant=ref['variant'],
|
||||
visual_type=ref['visual_type'],
|
||||
schema_info=ref['schema_info'],
|
||||
design_reference_html=ref['design_reference_html'],
|
||||
normalized: dict[str, list[BlockReference]] = {}
|
||||
for role, ref in refs_raw.items():
|
||||
ref_list = ref if isinstance(ref, list) else [ref]
|
||||
normalized[role] = [
|
||||
BlockReference(
|
||||
block_id=item.get('block_id', ''),
|
||||
variant=item.get('variant', ''),
|
||||
visual_type=item.get('visual_type', ''),
|
||||
schema_info=item.get('schema_info', {}),
|
||||
design_reference_html=item.get('design_reference_html', ''),
|
||||
)
|
||||
for role, ref in refs_raw.items()
|
||||
}
|
||||
for item in ref_list
|
||||
if isinstance(item, dict)
|
||||
]
|
||||
ctx.references = normalized
|
||||
ctx.save_snapshot('stage_1_7')
|
||||
return ctx
|
||||
|
||||
@@ -187,7 +192,8 @@ def _stage_1_5b(ctx: PipelineContext) -> PipelineContext:
|
||||
updated = {}
|
||||
font_map = {'본심': 'core', '배경': 'bg', '첨부': 'sidebar', '결론': 'core'}
|
||||
for role, ci in ctx.containers.items():
|
||||
ref = ctx.references.get(role)
|
||||
refs = ctx.references.get(role, [])
|
||||
ref = refs[0] if refs else None
|
||||
schema_info = ref.schema_info if ref else {}
|
||||
font_size = getattr(ctx.font_hierarchy, font_map.get(role, 'core'), 12.0)
|
||||
budget = calculate_design_budget(
|
||||
@@ -217,7 +223,6 @@ def _topic(ctx: PipelineContext, topic_id: int) -> Topic | None:
|
||||
|
||||
def _build_stage2_retry_html(ctx: PipelineContext, retry_plan: dict) -> dict:
|
||||
title = ctx.analysis.title
|
||||
core_message = ctx.analysis.core_message
|
||||
|
||||
problem_topic = _topic(ctx, 1)
|
||||
evidence_topic = _topic(ctx, 4)
|
||||
@@ -226,36 +231,37 @@ def _build_stage2_retry_html(ctx: PipelineContext, retry_plan: dict) -> dict:
|
||||
conclusion_topic = _topic(ctx, 6)
|
||||
dx_topic = _topic(ctx, 2)
|
||||
|
||||
problem_text = problem_topic.summary if problem_topic and problem_topic.summary else 'DX와 BIM이 혼용되며 BIM 도입을 DX 완성으로 오인하는 문제가 발생한다.'
|
||||
problem_text = problem_topic.summary if problem_topic and problem_topic.summary else '건설산업 디지털 전환 논의에서 DX와 BIM이 혼용되며 BIM 도입을 DX 완성으로 오인하는 문제가 발생하고 있다.'
|
||||
relation_text = relation_topic.summary if relation_topic and relation_topic.summary else 'DX와 GIS, BIM, Digital Twin의 관계를 시각적으로 드러낸다.'
|
||||
evidence_text = evidence_topic.summary if evidence_topic and evidence_topic.summary else '정책 문서에서도 DX와 BIM이 혼용되며 이를 바로잡을 필요가 있다.'
|
||||
dx_text = dx_topic.summary if dx_topic and dx_topic.summary else 'DX는 상위 개념이고 BIM은 핵심 기술이다.'
|
||||
dx_text = dx_topic.summary if dx_topic and dx_topic.summary else 'DX는 상위 개념이고 BIM은 이를 실행하는 핵심 기술이다.'
|
||||
compare_text = comparison_topic.summary if comparison_topic and comparison_topic.summary else '범위·프로세스·성과품·확장성의 4개 비교축으로 DX와 BIM 차이를 짧고 직접적으로 보여준다.'
|
||||
conclusion_text = conclusion_topic.summary if conclusion_topic and conclusion_topic.summary else '결론: BIM은 건설산업 DX를 수행하는 과정의 가장 기초가 되는 일부분이다.'
|
||||
|
||||
body_html = f"""
|
||||
<div style="width:100%; height:100%; box-sizing:border-box; font-family:'Segoe UI',sans-serif; color:#0f172a; display:flex; flex-direction:column; gap:10px;">
|
||||
<div style="width:100%; background:linear-gradient(135deg,#fef2f2 0%,#fee2e2 100%); border:2px solid #fca5a5; border-radius:10px; padding:12px 16px; box-sizing:border-box;">
|
||||
<div style="display:flex; gap:10px; align-items:flex-start;">
|
||||
<div style="font-size:20px; line-height:1;">⚠️</div>
|
||||
<div>
|
||||
<div style="font-size:14px; font-weight:800; color:#991b1b; margin-bottom:4px;">개념 혼용의 현실</div>
|
||||
<div style="font-size:11px; line-height:1.55; color:#7f1d1d;">{problem_text}</div>
|
||||
<div style="display:grid; grid-template-columns:1.15fr 0.85fr; gap:10px;">
|
||||
<div style="background:linear-gradient(135deg,#fff7ed 0%,#ffedd5 100%); border:1px solid #fdba74; border-radius:12px; padding:12px 14px;">
|
||||
<div style="font-size:11px; font-weight:800; color:#c2410c; margin-bottom:4px;">왜 다시 정리해야 하는가</div>
|
||||
<div style="font-size:10px; line-height:1.55; color:#7c2d12;">{problem_text}</div>
|
||||
</div>
|
||||
<div style="background:linear-gradient(135deg,#eff6ff 0%,#dbeafe 100%); border:1px solid #93c5fd; border-radius:12px; padding:12px 14px;">
|
||||
<div style="font-size:11px; font-weight:800; color:#1d4ed8; margin-bottom:4px;">핵심 판단</div>
|
||||
<div style="font-size:13px; font-weight:800; line-height:1.45; color:#1e3a8a;">DX는 상위 개념이고, BIM은 이를 실행하는 핵심 기술이다.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relation-diagram-card" style="background:#ffffff; border:1px solid #cbd5e1; border-radius:14px; padding:14px 16px; box-sizing:border-box; flex:1;">
|
||||
<div style="display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:10px;">
|
||||
<div class="relation-diagram-card" style="background:#ffffff; border:1px solid #cbd5e1; border-radius:14px; padding:14px 16px; box-sizing:border-box; display:flex; flex-direction:column; gap:10px;">
|
||||
<div style="display:flex; justify-content:space-between; align-items:flex-start; gap:12px;">
|
||||
<div>
|
||||
<div style="font-size:12px; font-weight:800; color:#1e40af; margin-bottom:4px;">{title}</div>
|
||||
<div style="font-size:11px; line-height:1.55; color:#334155;">{dx_text}</div>
|
||||
<div style="font-size:10px; line-height:1.55; color:#334155;">{dx_text}</div>
|
||||
</div>
|
||||
<div style="font-size:10px; color:#166534; background:#dcfce7; border:1px solid #86efac; border-radius:999px; padding:4px 8px; white-space:nowrap;">[그림 1] DX와 핵심기술간 상호관계</div>
|
||||
</div>
|
||||
|
||||
<div style="display:flex; align-items:flex-start; gap:16px; margin-bottom:10px;">
|
||||
<div style="width:220px; flex-shrink:0; background:#f8fafc; border:1px solid #dbeafe; border-radius:14px; padding:12px; box-sizing:border-box;">
|
||||
<div style="display:grid; grid-template-columns:220px 1fr; gap:14px; align-items:start;">
|
||||
<div style="background:#f8fafc; border:1px solid #dbeafe; border-radius:14px; padding:12px; box-sizing:border-box;">
|
||||
<div style="display:flex; align-items:center; justify-content:center; gap:8px; margin-bottom:8px;">
|
||||
<div style="min-width:72px; text-align:center; background:#1d4ed8; color:#ffffff; border-radius:999px; padding:8px 12px; font-size:14px; font-weight:800;">DX</div>
|
||||
<div style="font-size:14px; color:#94a3b8;">→</div>
|
||||
@@ -266,22 +272,35 @@ def _build_stage2_retry_html(ctx: PipelineContext, retry_plan: dict) -> dict:
|
||||
<div style="grid-column:1 / span 2; background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:10px; text-align:center; font-size:11px; font-weight:700;">Digital Twin</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="flex:1; font-size:11px; line-height:1.6; color:#334155;">
|
||||
<div style="margin-bottom:6px;">• {relation_text}</div>
|
||||
<div style="margin-bottom:6px;">• GIS는 공간 분석과 위치 기반 정보를 제공한다.</div>
|
||||
<div>• BIM은 형상정보와 내용정보를 함께 다루는 핵심 인프라 기술이다.</div>
|
||||
<div style="display:flex; flex-direction:column; gap:8px;">
|
||||
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:12px; padding:10px 12px;">
|
||||
<div style="font-size:11px; font-weight:800; color:#0f172a; margin-bottom:4px;">관계 해석</div>
|
||||
<div style="font-size:10px; line-height:1.55; color:#334155;">{relation_text}</div>
|
||||
</div>
|
||||
<div style="display:grid; grid-template-columns:1fr 1fr; gap:8px;">
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#0f172a; margin-bottom:3px;">GIS 역할</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#475569;">공간 분석과 위치 기반 정보를 제공한다.</div>
|
||||
</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#0f172a; margin-bottom:3px;">BIM 역할</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#475569;">형상정보와 내용정보를 함께 다루는 핵심 인프라 기술이다.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="comparison-summary-card" style="background:#eff6ff; border:1px solid #bfdbfe; border-radius:12px; padding:10px 12px; box-sizing:border-box;">
|
||||
<div style="font-size:11px; font-weight:800; color:#1d4ed8; margin-bottom:8px;">DX와 BIM 핵심 비교</div>
|
||||
<div style="display:grid; grid-template-columns:1fr 1fr; gap:8px; font-size:10px; line-height:1.45; color:#334155;">
|
||||
<div><span style="font-weight:800; color:#0f172a;">범위</span><br>DX는 BIM을 포함하는 상위 개념</div>
|
||||
<div><span style="font-weight:800; color:#0f172a;">프로세스</span><br>DX는 근본적 개선, BIM은 기존 2D 연장</div>
|
||||
<div><span style="font-weight:800; color:#0f172a;">성과품</span><br>DX는 공학 정보 연계, BIM은 3D 모델 중심</div>
|
||||
<div><span style="font-weight:800; color:#0f172a;">확장성</span><br>DX는 전 생애주기, BIM은 분야별 단절 위험</div>
|
||||
<div class="comparison-summary-card" style="background:#eff6ff; border:1px solid #bfdbfe; border-radius:12px; padding:10px 12px; box-sizing:border-box; display:grid; grid-template-columns:120px 1fr; gap:12px;">
|
||||
<div>
|
||||
<div style="font-size:11px; font-weight:800; color:#1d4ed8; margin-bottom:4px;">DX와 BIM 차이</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#475569;">{compare_text}</div>
|
||||
</div>
|
||||
<div style="margin-top:8px; font-size:10px; color:#475569; line-height:1.5;">{compare_text}</div>
|
||||
<div style="display:grid; grid-template-columns:1fr 1fr; gap:8px; font-size:9px; line-height:1.45; color:#334155;">
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:8px 10px;"><span style="font-weight:800; color:#0f172a;">범위</span><br>DX는 BIM을 포함하는 상위 개념</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:8px 10px;"><span style="font-weight:800; color:#0f172a;">프로세스</span><br>DX는 근본적 개선, BIM은 기존 2D 연장</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:8px 10px;"><span style="font-weight:800; color:#0f172a;">성과품</span><br>DX는 공학 정보 연계, BIM은 3D 모델 중심</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:10px; padding:8px 10px;"><span style="font-weight:800; color:#0f172a;">확장성</span><br>DX는 전 생애주기, BIM은 분야별 단절 위험</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -289,31 +308,27 @@ def _build_stage2_retry_html(ctx: PipelineContext, retry_plan: dict) -> dict:
|
||||
|
||||
sidebar_html = f"""
|
||||
<div style="width:100%; height:100%; box-sizing:border-box; font-family:'Segoe UI',sans-serif; display:flex; flex-direction:column; gap:8px;">
|
||||
<div style="display:flex; gap:12px; align-items:flex-start; padding:12px 14px; background:#f8fafc; border-radius:10px; border:1px solid #e2e8f0;">
|
||||
<div style="width:28px; height:28px; border-radius:50%; background:#2563eb; display:flex; align-items:center; justify-content:center; color:#ffffff; font-size:12px; font-weight:800; flex-shrink:0;">1</div>
|
||||
<div>
|
||||
<div style="font-size:12px; font-weight:800; color:#1e293b; margin-bottom:3px;">건설산업</div>
|
||||
<div style="font-size:10px; line-height:1.45; color:#475569;">다양한 기술을 통합해 시설물을 구현하는 종합 산업</div>
|
||||
<div style="background:#ffffff; border:1px solid #cbd5e1; border-radius:12px; padding:12px 14px;">
|
||||
<div style="font-size:11px; font-weight:800; color:#1e293b; margin-bottom:6px;">핵심 용어 정리</div>
|
||||
<div style="display:flex; flex-direction:column; gap:8px;">
|
||||
<div style="background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#0f172a; margin-bottom:3px;">건설산업</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#475569;">다양한 기술을 통합해 시설물을 구현하는 종합 산업</div>
|
||||
</div>
|
||||
<div style="background:#eff6ff; border:1px solid #93c5fd; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#1e3a8a; margin-bottom:3px;">BIM</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#334155;">3차원 모델 기반의 정보관리 도구이자 협업 인프라</div>
|
||||
<div style="font-size:8px; color:#64748b; margin-top:4px;">출처: 국토교통부 BIM 기본지침</div>
|
||||
</div>
|
||||
<div style="background:#eff6ff; border:1px solid #bfdbfe; border-radius:10px; padding:9px 10px;">
|
||||
<div style="font-size:10px; font-weight:800; color:#1e3a8a; margin-bottom:3px;">DX</div>
|
||||
<div style="font-size:9px; line-height:1.5; color:#334155;">디지털 기술 기반으로 업무방식과 가치구조를 전환하는 상위 개념</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex; gap:12px; align-items:flex-start; padding:12px 14px; background:#f8fafc; border-radius:10px; border:1px solid #e2e8f0;">
|
||||
<div style="width:28px; height:28px; border-radius:50%; background:#2563eb; display:flex; align-items:center; justify-content:center; color:#ffffff; font-size:12px; font-weight:800; flex-shrink:0;">2</div>
|
||||
<div>
|
||||
<div style="font-size:12px; font-weight:800; color:#1e293b; margin-bottom:3px;">BIM</div>
|
||||
<div style="font-size:10px; line-height:1.45; color:#475569;">3차원 모델 기반의 정보관리 도구이자 협업 인프라</div>
|
||||
<div style="font-size:9px; color:#64748b; margin-top:4px;">출처: 국토교통부 BIM 기본지침</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex; gap:12px; align-items:flex-start; padding:12px 14px; background:#f8fafc; border-radius:10px; border:1px solid #e2e8f0;">
|
||||
<div style="width:28px; height:28px; border-radius:50%; background:#2563eb; display:flex; align-items:center; justify-content:center; color:#ffffff; font-size:12px; font-weight:800; flex-shrink:0;">3</div>
|
||||
<div>
|
||||
<div style="font-size:12px; font-weight:800; color:#1e293b; margin-bottom:3px;">DX</div>
|
||||
<div style="font-size:10px; line-height:1.45; color:#475569;">디지털 기술 기반으로 업무방식과 가치구조를 전환하는 상위 개념</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="background:#fff7ed; border:1px solid #fdba74; border-radius:10px; padding:12px 14px; box-sizing:border-box; margin-top:2px;">
|
||||
<div style="font-size:11px; font-weight:800; color:#c2410c; margin-bottom:5px;">정책 혼용 사례</div>
|
||||
<div style="font-size:10px; line-height:1.5; color:#7c2d12;">{evidence_text}</div>
|
||||
<div style="background:#fff7ed; border:1px solid #fdba74; border-radius:12px; padding:12px 14px; box-sizing:border-box;">
|
||||
<div style="font-size:11px; font-weight:800; color:#c2410c; margin-bottom:5px;">왜 혼용이 문제인가</div>
|
||||
<div style="font-size:10px; line-height:1.55; color:#7c2d12;">{evidence_text}</div>
|
||||
</div>
|
||||
</div>
|
||||
""".strip()
|
||||
@@ -357,7 +372,7 @@ async def _stage_2(ctx: PipelineContext, retry_plan: dict | None = None) -> Pipe
|
||||
analysis_dict['phase_t'] = {
|
||||
'font_hierarchy': ctx.font_hierarchy.model_dump(),
|
||||
'container_ratio': ctx.container_ratio,
|
||||
'references': {role: ref.model_dump() for role, ref in ctx.references.items()},
|
||||
'references': {role: [item.model_dump() for item in refs] for role, refs in ctx.references.items()},
|
||||
'design_budgets': {
|
||||
role: ci.design_budget.model_dump() if ci.design_budget else {}
|
||||
for role, ci in ctx.containers.items()
|
||||
|
||||
Reference in New Issue
Block a user