Improve preserved slide loop for run-001

This commit is contained in:
2026-04-02 15:38:43 +09:00
parent 01a3ad51b9
commit 37ae72a63e
21 changed files with 329 additions and 229 deletions

View File

@@ -26,6 +26,7 @@ COMPARISON_MARKER = "comparison-summary-card"
RELATION_MARKER = "relation-diagram-card"
COMPARE_KEYS = ["범위", "프로세스", "성과품", "확장성"]
CORE_MESSAGE_KEYS = ["DX는 상위 개념", "BIM은 핵심 기술"]
CORE_MESSAGE_MARKERS = [("상위 개념", "상위개념"), ("핵심 기술", "핵심 인프라 기술")]
IMAGE_REFERENCE_KEY = "DX와 핵심기술간 상호관계"
@@ -70,9 +71,10 @@ def validate_outputs(generated: dict, measurement: dict) -> tuple[str, list[str]
failures.append("Verify-RenderZone")
actions.append(f"overflow가 발생한 zone({', '.join(zone_overflows)})의 content budget, block 수, typography를 재조정한다.")
if not all(key in visible_text for key in CORE_MESSAGE_KEYS):
core_message_ok = all(any(marker in visible_text for marker in variants) for variants in CORE_MESSAGE_MARKERS)
if not core_message_ok:
failures.append("Verify-CoreMessage")
actions.append("핵심 메시지 `DX는 상위 개념`, `BIM은 핵심 기술`을 가시 텍스트에 직접 노출한다.")
actions.append("원문 표현을 유지하되 `상위 개념` `핵심 기술/핵심 인프라 기술` 판단이 가시 텍스트에 분명히 드러나도록 정리한다.")
if IMAGE_REFERENCE_KEY not in visible_text:
failures.append("Verify-ImageRef")
@@ -87,9 +89,10 @@ def validate_outputs(generated: dict, measurement: dict) -> tuple[str, list[str]
failures.append("Verify-DesignStructure")
actions.append("핵심 관계를 설명하는 시각적 관계도 블록을 본문 중심 구조로 유지한다.")
if "왜 다시 정리해야 하는가" not in visible_text:
narrative_markers = ["DX와 BIM의 혼용 문제", "DX의 정의와 위치", "BIM과 핵심기술의 관계", "DX와 BIM 비교 핵심 포인트"]
if sum(1 for marker in narrative_markers if marker in visible_text) < 3:
failures.append("Verify-DesignNarrative")
actions.append("문제 제기와 핵심 판단을 분리한 슬라이드형를 구성한다.")
actions.append("원문 주요 소제목과 읽기 순서가 유지되도록 본문구성한다.")
if failures:
return "revise", sorted(set(failures)), list(dict.fromkeys(actions))