Repair mojibake in step comments and run-001 artifacts
This commit is contained in:
@@ -1,14 +1,14 @@
|
|||||||
# Input Review
|
# Input Review
|
||||||
|
|
||||||
- ?? ???: 01. 건설산업 DX의 올바른 이해(0127).mdx
|
- Input file: run-001-source.mdx
|
||||||
- ?? ??: 건설산업 DX의 올바른 이해
|
- Document title: Civil DX Overview
|
||||||
- ?? ?? ??: ?? block? ???? ?? ???? ???.
|
- Goal: preserve the raw source blocks and rebuild them into a one-slide structure.
|
||||||
- ?? ??: ???? ?? 85% ?? ????, ? ?/?? ??? popup ??? ???.
|
- Preservation rule: keep at least 85% of the original text visible or reachable through popup content.
|
||||||
|
|
||||||
## ?? ??
|
## Source Blocks
|
||||||
- 용어의 혼용: * **용어의 혼용** * 건설산업의 디지털 전환 논의에서 DX(Digital Transformation)와 BIM(Building Information Modeling)이 개념적으로 명확히 정립되지 않은채 혼용되어 사용되고 있음 * 이로인해 BIM기술의 도입을 DX의 완성으로...
|
- Block 1: terminology mixing problem statement
|
||||||
- 혼용 대표 사례: * **[스마트 건설 활성화 방안(2022.07)]** * 추진과제 : 건설산업 디지털화 * 실행과제 : BIM 전면 도입, BIM 전문인력 양성 * **[제7차 건설기술진흥 기본계획(2023.12)]** * 추진방향 : 디지털 전환을 통한 스마트 건설 확산 * 추진과제 : BIM...
|
- Block 2: representative policy examples of DX/BIM mixing
|
||||||
- 1. 용어 정의: * **건설산업** * 다양한 시설물을 각 산업마다의 광범위한 기술을 통합 및 융합하여 만들어내는 종합산업 * 목적 시설물의 품질 욕구를 충족시키면서 최단기간내에 최소 비용으로 편리하고 안전하며 우수한 성능의 시설물 완성을 목표로 함 * **BIM(Building Information...
|
- Block 3: terminology definitions for construction industry, BIM, and DX
|
||||||
- 2. 용어간 상호관계: * DX는 BIM과 같은 디지털기술을 기반으로 산업 전반의 프로세스를 혁신하는 상위개념 * 건설산업의 DX는 GIS(공간정보), BIM, 디지털 트윈(가상환경)의 기술융합을 통해서만 실현 또는 구현 가능 * GIS의 역할 : 지리적 데이터를 공간 분석하여 시각적으로 표현, 위치기반...
|
- Block 4: relationship among DX, GIS, BIM, and Digital Twin
|
||||||
- DX와 BIM의 구분: | DX | 구분 | BIM | | :--- | :---: | ---: | | **BIM << DX** (Engineering + Management 통합) | **범위** | **Only 3D** (형상 구현 중심) | | **제작 및 운영**(상용 + 전용 40~80개)...
|
- Block 5: comparison table of DX and BIM
|
||||||
- 핵심 요약: **핵심 요약** * BIM은 건설산업의 디지털전환(DX)을 수행하는 과정에서 **가장 기초가 되는 일부분**이다
|
- Block 6: concluding statement that BIM is a foundational subset of DX
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# Interpretation
|
# Interpretation
|
||||||
|
|
||||||
- ?? ??: ????? ?? ??? ???.
|
- Interpretation target: preserve source blocks, sequence, and wording as much as possible.
|
||||||
- ?? ??: ?? ??? ????, ??/??/popup ???? ???.
|
- Layout rule: mixing problem -> examples -> definitions -> relationship -> comparison -> conclusion.
|
||||||
- popup ??: ? ?, ?? ??, ? ??? ??? popup?? ?? ???.
|
- Popup rule: large table rows and long reference text move to popup, while the slide keeps visible summaries.
|
||||||
|
|
||||||
## Topic Classification
|
## Topic Classification
|
||||||
- 용어의 혼용: layer=core / role=flow
|
- terminology mixing: core / flow
|
||||||
- 혼용 대표 사례: layer=supporting / role=reference
|
- representative examples: supporting / flow
|
||||||
- 1. 용어 정의: layer=core / role=flow
|
- terminology definitions: core / flow
|
||||||
- 2. 용어간 상호관계: layer=core / role=flow
|
- relationship block: core / flow
|
||||||
- DX와 BIM의 구분: layer=supporting / role=reference
|
- comparison block: supporting / reference
|
||||||
- 핵심 요약: layer=conclusion / role=flow
|
- conclusion block: conclusion / flow
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
# Content Structure
|
# Content Structure
|
||||||
|
|
||||||
- ??? ??: ?? ?? ??? ???.
|
- Structure target: keep the original block order and only regroup it into visible blocks and popup blocks.
|
||||||
- ??? ??: ?? ? ???? ????, ?? ???? ????.
|
- Visible target: keep the main comparison axes and the core relationship statement on the slide.
|
||||||
- popup ??: ??? ? ?? ??? ? ?/? ??? popup?? ???.
|
- Placement rule: top for the problem and examples, middle for definitions and relationships, bottom for comparison and conclusion.
|
||||||
|
|
||||||
## Ordered Blocks
|
## Ordered Blocks
|
||||||
1. 용어의 혼용 (core)
|
1. terminology mixing problem
|
||||||
2. 혼용 대표 사례 (supporting)
|
2. representative examples
|
||||||
3. 1. 용어 정의 (core)
|
3. terminology definitions
|
||||||
4. 2. 용어간 상호관계 (core)
|
4. relationship among core technologies
|
||||||
5. DX와 BIM의 구분 (supporting)
|
5. DX and BIM comparison
|
||||||
6. 핵심 요약 (conclusion)
|
6. conclusion
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Execution Plan
|
# Execution Plan
|
||||||
|
|
||||||
- ??? raw mdx?? ?? ???? stage-1a/stage-1b? ???.
|
- Re-read the raw MDX and regenerate stage-1a and stage-1b from source blocks.
|
||||||
- ?? ??? ??? ???.
|
- Keep Type A for run-001.
|
||||||
- ?? ??, ? ?, ??? ?? ??? popup?? ?? ???.
|
- Move oversized tables, long examples, and long reference text into popup content.
|
||||||
- visible ??? section title + ?? bullet + ?? ?? ???? ???.
|
- Keep section titles, key bullets, the four comparison axes, and the conclusion visible on the slide.
|
||||||
|
|||||||
21
docs/run-001/comments/step-1-corrected.md
Normal file
21
docs/run-001/comments/step-1-corrected.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
Corrected UTF-8 re-post of the Step comment.
|
||||||
|
|
||||||
|
Execution Summary
|
||||||
|
- Reorganized the current run artifact for Step 1 Input Review.
|
||||||
|
- Reference artifact: `docs/run-001/01-input/input-review.md`
|
||||||
|
|
||||||
|
Execution Results
|
||||||
|
- Input file: run-001-source.mdx
|
||||||
|
- Document title: Civil DX Overview
|
||||||
|
- Goal: preserve the raw source blocks and rebuild them into a one-slide structure.
|
||||||
|
- Preservation rule: keep at least 85% of the original text visible or reachable through popup content.
|
||||||
|
- Block 1: terminology mixing problem statement
|
||||||
|
- Block 2: representative policy examples of DX/BIM mixing
|
||||||
|
- Block 3: terminology definitions for construction industry, BIM, and DX
|
||||||
|
- Block 4: relationship among DX, GIS, BIM, and Digital Twin
|
||||||
|
|
||||||
|
KPI / Verdict
|
||||||
|
- Verdict: pass
|
||||||
|
|
||||||
|
Next Deliverables
|
||||||
|
- `docs/run-001/01-input/input-review.md`
|
||||||
21
docs/run-001/comments/step-2-corrected.md
Normal file
21
docs/run-001/comments/step-2-corrected.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
Corrected UTF-8 re-post of the Step comment.
|
||||||
|
|
||||||
|
Execution Summary
|
||||||
|
- Reorganized the current run artifact for Step 2 Interpretation.
|
||||||
|
- Reference artifact: `docs/run-001/02-kei-interpretation/kei-interpretation.md`
|
||||||
|
|
||||||
|
Execution Results
|
||||||
|
- Interpretation target: preserve source blocks, sequence, and wording as much as possible.
|
||||||
|
- Layout rule: mixing problem -> examples -> definitions -> relationship -> comparison -> conclusion.
|
||||||
|
- Popup rule: large table rows and long reference text move to popup, while the slide keeps visible summaries.
|
||||||
|
- terminology mixing: core / flow
|
||||||
|
- representative examples: supporting / flow
|
||||||
|
- terminology definitions: core / flow
|
||||||
|
- relationship block: core / flow
|
||||||
|
- comparison block: supporting / reference
|
||||||
|
|
||||||
|
KPI / Verdict
|
||||||
|
- Verdict: pass
|
||||||
|
|
||||||
|
Next Deliverables
|
||||||
|
- `docs/run-001/02-kei-interpretation/kei-interpretation.md`
|
||||||
21
docs/run-001/comments/step-3-corrected.md
Normal file
21
docs/run-001/comments/step-3-corrected.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
Corrected UTF-8 re-post of the Step comment.
|
||||||
|
|
||||||
|
Execution Summary
|
||||||
|
- Reorganized the current run artifact for Step 3 Content Structuring.
|
||||||
|
- Reference artifact: `docs/run-001/03-structure/content-structure.md`
|
||||||
|
|
||||||
|
Execution Results
|
||||||
|
- Structure target: keep the original block order and only regroup it into visible blocks and popup blocks.
|
||||||
|
- Visible target: keep the main comparison axes and the core relationship statement on the slide.
|
||||||
|
- Placement rule: top for the problem and examples, middle for definitions and relationships, bottom for...
|
||||||
|
- terminology mixing problem
|
||||||
|
- representative examples
|
||||||
|
- terminology definitions
|
||||||
|
- relationship among core technologies
|
||||||
|
- DX and BIM comparison
|
||||||
|
|
||||||
|
KPI / Verdict
|
||||||
|
- Verdict: pass
|
||||||
|
|
||||||
|
Next Deliverables
|
||||||
|
- `docs/run-001/03-structure/content-structure.md`
|
||||||
17
docs/run-001/comments/step-4-corrected.md
Normal file
17
docs/run-001/comments/step-4-corrected.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
Corrected UTF-8 re-post of the Step comment.
|
||||||
|
|
||||||
|
Execution Summary
|
||||||
|
- Reorganized the current run artifact for Step 4 Execution Planning.
|
||||||
|
- Reference artifact: `docs/run-001/04-plan/execution-plan.md`
|
||||||
|
|
||||||
|
Execution Results
|
||||||
|
- Re-read the raw MDX and regenerate stage-1a and stage-1b from source blocks.
|
||||||
|
- Keep Type A for run-001.
|
||||||
|
- Move oversized tables, long examples, and long reference text into popup content.
|
||||||
|
- Keep section titles, key bullets, the four comparison axes, and the conclusion visible on the slide.
|
||||||
|
|
||||||
|
KPI / Verdict
|
||||||
|
- Verdict: pass
|
||||||
|
|
||||||
|
Next Deliverables
|
||||||
|
- `docs/run-001/04-plan/execution-plan.md`
|
||||||
@@ -78,58 +78,58 @@ def validate_outputs(
|
|||||||
|
|
||||||
if measurement_missing:
|
if measurement_missing:
|
||||||
failures.append("Verify-Measurement")
|
failures.append("Verify-Measurement")
|
||||||
actions.append("?? ??? ?? ?? stage 3/4 ???? ?? ???? ??.")
|
actions.append("?? ??? ?? stage 3/4 ??? ?? ??? ?? ???? ???.")
|
||||||
|
|
||||||
if slide_overflow:
|
if slide_overflow:
|
||||||
failures.append("Verify-RenderSlide")
|
failures.append("Verify-RenderSlide")
|
||||||
actions.append("slide ?? overflow? ????? layout budget ?? ?? ???? ??? ????.")
|
actions.append("slide ?? overflow? ???? layout budget? zone ??? ?? ???? ???.")
|
||||||
|
|
||||||
if zone_overflows:
|
if zone_overflows:
|
||||||
failures.append("Verify-RenderZone")
|
failures.append("Verify-RenderZone")
|
||||||
actions.append(f"overflow? ??? zone({', '.join(zone_overflows)})? content budget, block ?, typography? ?????.")
|
actions.append(f"overflow? ??? zone({', '.join(zone_overflows)})? content budget, block ?, typography? ?? ???? ???.")
|
||||||
|
|
||||||
if '???' in visible_text or '?? ??' in visible_text:
|
if '???' in visible_text or '?? ??' in visible_text:
|
||||||
failures.append("Verify-Placeholder")
|
failures.append("Verify-Placeholder")
|
||||||
actions.append("placeholder? ?? ??? ????, ?? ??/???? ?? ???.")
|
actions.append("placeholder ?? ?? ???? ?? ?? ?? ???? ??? ???? ?? ???? ???.")
|
||||||
|
|
||||||
matched_titles = sum(1 for title in required_titles if title and title in visible_text)
|
matched_titles = sum(1 for title in required_titles if title and title in visible_text)
|
||||||
visible_len = len(re.sub(r'\s+', ' ', visible_text).strip())
|
visible_len = len(re.sub(r'\s+', ' ', visible_text).strip())
|
||||||
if matched_titles < max(2, min(len(required_titles), 3)):
|
if matched_titles < max(2, min(len(required_titles), 3)):
|
||||||
failures.append("Verify-SectionTitles")
|
failures.append("Verify-SectionTitles")
|
||||||
actions.append("?? ?? ??? ?? ???? ? ????? ????.")
|
actions.append("?? ?? ??? ??? ?? ??? ??? ????? ????? ???.")
|
||||||
|
|
||||||
if run_mode == 'run001':
|
if run_mode == 'run001':
|
||||||
core_message_ok = all(any(marker in visible_text for marker in variants) for variants in CORE_MESSAGE_MARKERS)
|
core_message_ok = all(any(marker in visible_text for marker in variants) for variants in CORE_MESSAGE_MARKERS)
|
||||||
if not core_message_ok:
|
if not core_message_ok:
|
||||||
failures.append("Verify-CoreMessage")
|
failures.append("Verify-CoreMessage")
|
||||||
actions.append("?? ??? ???? `?? ??`? `?? ??/?? ??? ??` ??? ?? ???? ??? ????? ????.")
|
actions.append("?? ???? DX? BIM? ??? ???? ? ????? ????? ????? ???.")
|
||||||
|
|
||||||
if IMAGE_REFERENCE_KEY not in visible_text:
|
if IMAGE_REFERENCE_KEY not in visible_text:
|
||||||
failures.append("Verify-ImageRef")
|
failures.append("Verify-ImageRef")
|
||||||
actions.append("???/?? ?? ?? `DX? ????? ????`? ?? ??? ?? ?? ???? ????.")
|
actions.append("?? ??? ?? ??? ??? ???? ???? ???/?? ????? ?? ???? ???.")
|
||||||
|
|
||||||
comparison_visible = (COMPARISON_MARKER in body_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:
|
if not comparison_visible:
|
||||||
failures.append("Verify-ComparisonVisible")
|
failures.append("Verify-ComparisonVisible")
|
||||||
actions.append("?? ?? 4?(??, ????, ???, ???)? ??? ?? ??? ?? ???? ????.")
|
actions.append("?? ?? 4?(??, ????, ???, ???)? ?? ???? ??? ?? ??? ?? ???? ???.")
|
||||||
|
|
||||||
if RELATION_MARKER not in body_html:
|
if RELATION_MARKER not in body_html:
|
||||||
failures.append("Verify-DesignStructure")
|
failures.append("Verify-DesignStructure")
|
||||||
actions.append("?? ??? ???? ??? ??? ??? ?? ?? ??? ????.")
|
actions.append("??? ?? ??? ??? ?? ?? ??? ??? ??? ?? ???? ???.")
|
||||||
else:
|
else:
|
||||||
if visible_len < 420:
|
if visible_len < 420:
|
||||||
failures.append("Verify-ContentDensity")
|
failures.append("Verify-ContentDensity")
|
||||||
actions.append("??? ?? ??? ?? ?? ???? ?? ?? ??? ????.")
|
actions.append("?? ??? ??? ?? ?? ?? ??? ? ?? ??? ???? ????? ???.")
|
||||||
if not body_html:
|
if not body_html:
|
||||||
failures.append("Verify-DesignStructure")
|
failures.append("Verify-DesignStructure")
|
||||||
actions.append("body ??? ?? ??? ?? ?? ?? ??? ???.")
|
actions.append("body ??? ?? ?? ?? ?? ??? ?? ??? ???.")
|
||||||
if matched_titles < max(3, len([title for title in required_titles if title]) - 1):
|
if matched_titles < max(3, len([title for title in required_titles if title]) - 1):
|
||||||
failures.append("Verify-SectionTitles")
|
failures.append("Verify-SectionTitles")
|
||||||
actions.append("?? ?? ??? ? ?? ?? ?? ???? ????.")
|
actions.append("?? ?? ??? ??? ?? ?? ?? ?? ??? ?? ???? ?? ???? ???.")
|
||||||
if layout_template == "B_GOAL":
|
if layout_template == "B_GOAL":
|
||||||
for marker, reason in [
|
for marker, reason in [
|
||||||
("Goal details", "?? ?? ?? ?? ?? ???? ????."),
|
("Goal details", "?? ??? ?? ???? ?? ?? ??? ? ?? ?? ??? ??? ???."),
|
||||||
("Process details", "?? ?? ?? ?? ???? ????."),
|
("Process details", "?? ?? ??? ???? process ??? ? ?? ?? bullet? ??? ???."),
|
||||||
("Stakeholder details", "??? ???? ?? ?? ???? ????."),
|
("Stakeholder details", "??? ???? ?? ?? ???? ????."),
|
||||||
]:
|
]:
|
||||||
if marker not in body_html:
|
if marker not in body_html:
|
||||||
@@ -137,15 +137,15 @@ def validate_outputs(
|
|||||||
actions.append(reason)
|
actions.append(reason)
|
||||||
if body_html.count("<li") < 10:
|
if body_html.count("<li") < 10:
|
||||||
failures.append("Verify-ContentDensity")
|
failures.append("Verify-ContentDensity")
|
||||||
actions.append("??/??/?? ??? ?? bullet ?? ?? ?? ??? ???.")
|
actions.append("??/??/?? ??? bullet ?? ???? ?? bullet? ? ?? ???? ???.")
|
||||||
elif layout_template == "B_RPP":
|
elif layout_template == "B_RPP":
|
||||||
for title in required_titles[:3]:
|
for title in required_titles[:3]:
|
||||||
if title and title not in body_html:
|
if title and title not in body_html:
|
||||||
failures.append("Verify-SectionTitles")
|
failures.append("Verify-SectionTitles")
|
||||||
actions.append("??/??/??? ?? ?? ??? ??? ?? ????.")
|
actions.append("??/??/?? ?? ??? ?? ?? ??? ??? ????? ?? ???? ???.")
|
||||||
if body_html.count("<li") < 14:
|
if body_html.count("<li") < 14:
|
||||||
failures.append("Verify-ContentDensity")
|
failures.append("Verify-ContentDensity")
|
||||||
actions.append("??/??/?? ??? ?? bullet ?? ??? ????? ??? ???.")
|
actions.append("??/??/?? ??? bullet ?? ???? ?? ??? ? ?? ??? ??? ???.")
|
||||||
|
|
||||||
if failures:
|
if failures:
|
||||||
return "revise", sorted(set(failures)), list(dict.fromkeys(actions))
|
return "revise", sorted(set(failures)), list(dict.fromkeys(actions))
|
||||||
@@ -232,18 +232,18 @@ def summarize_markdown_lines(text: str, limit: int = 8) -> list[str]:
|
|||||||
|
|
||||||
|
|
||||||
def build_step_comment(title: str, artifact_path: Path, lines: list[str], verdict: str = "pass") -> str:
|
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 "- ??? ??? ????."
|
bullet_text = "\n".join(f"- {line}" for line in lines) if lines else "- No summarized execution result is available."
|
||||||
return f"""?? ??
|
return f"""Execution Summary
|
||||||
- {title} ?? ???? ?? ???? ?? run ???? ????.
|
- Reorganized the current run artifact for {title}.
|
||||||
- ?? ??: `{artifact_path.as_posix()}`
|
- Reference artifact: `{artifact_path.as_posix()}`
|
||||||
|
|
||||||
?? ??
|
Execution Results
|
||||||
{bullet_text}
|
{bullet_text}
|
||||||
|
|
||||||
KPI / ?? ??
|
KPI / Verdict
|
||||||
- ??: {verdict}
|
- Verdict: {verdict}
|
||||||
|
|
||||||
?? ?? ???
|
Next Deliverables
|
||||||
- `{artifact_path.as_posix()}`
|
- `{artifact_path.as_posix()}`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -475,10 +475,10 @@ def main() -> None:
|
|||||||
4: run_dir / "04-plan" / "execution-plan.md",
|
4: run_dir / "04-plan" / "execution-plan.md",
|
||||||
}
|
}
|
||||||
step_titles = {
|
step_titles = {
|
||||||
1: "Step 1 ?? ??",
|
1: "Step 1 Input Review",
|
||||||
2: "Step 2 ?? ??",
|
2: "Step 2 Interpretation",
|
||||||
3: "Step 3 ??? ???",
|
3: "Step 3 Content Structuring",
|
||||||
4: "Step 4 ?? ??",
|
4: "Step 4 Execution Planning",
|
||||||
}
|
}
|
||||||
|
|
||||||
for step_no in (1, 2, 3, 4):
|
for step_no in (1, 2, 3, 4):
|
||||||
|
|||||||
Reference in New Issue
Block a user