목적: Fact Book Mode 분석 결과의 품질·재현성·검증성 보증
적용: 모든 Fact Book Mode 실행 후 자동 검증
확대: 2026-02-19
□ Fact Book 존재 여부
- 캐시 키: `semiconductor_ai_factbook_YYYY_MM`
- 현재 버전: 2026_02
- 최종 갱신: 2026-02-19
□ Fact Book 신선도
- TTL: 30일 이내
- 만료 시: 자동 갱신 트리거
□ 버전 호환성
- Schema v1.0 호환
- 9개국 데이터 완전성
자동 검증 코드:
def check_factbook_version():
cache_key = f"semiconductor_ai_factbook_{datetime.now().strftime('%Y_%m')}"
factbook = cache.get(cache_key)
if not factbook:
return {"status": "FAIL", "reason": "Fact Book not found"}
age_days = (datetime.now() - factbook['updated_at']).days
if age_days > 30:
return {"status": "WARNING", "reason": f"Fact Book {age_days} days old"}
if len(factbook['countries']) < 9:
return {"status": "FAIL", "reason": f"Only {len(factbook['countries'])} countries"}
return {"status": "PASS", "factbook_version": cache_key, "age_days": age_days}
□ Agent_FB 실행 여부
- 최초 생성: 2.5-3.5시간
- 캐시 사용: 30분
- 실행 시간 기록
□ Agent_1~5 실행 완료
- 각 Agent 타임스탬프
- Confidence Score > 0.7
- 에러 발생 여부
□ Agent 간 데이터 전달
- Agent_FB → Agent_1~5
- Fact Book Section 참조 여부
□ 모든 정량 데이터에 [Section X.Y] 표기
- 예: "TSMC 92% [Section 2.1]"
- 금지: "TSMC 약 90%", "TSMC ~90%"
□ Section 형식 검증
- 정규표현식: \\[Section \\d+\\.\\d+\\]
- 허용: [Section 2.1], [Section 2.3.1]
- 금지: [Fact Book], [출처 3], [2.1]
자동 검증: