/** * Forgen v0.4.1 — TEST-3: 결론 vs 검증 비율 가드 * * Claude 응답 텍스트에서 **결론 키워드** 와 **검증 키워드** 빈도 비율을 측정. * 결론 / 검증 > 3 이면 "결론을 쏟아내지만 검증이 부족한" 합의-기반 완료 선언 * 패턴 — stop-guard 에서 block. * * 배경 (RC3): v0.4.0 self-interview 에서 "통과했다 / 완료됐다" 같은 결론이 * 한 응답에 5~8회 반복되지만 "테스트 실행했나 / 증거가 뭔가" 관련 표현은 * 0회인 케이스 반복 관찰. TEST-1 이 "측정 도구 호출 0건" 을 봤다면, TEST-3 * 은 같은 문제를 **텍스트-내부** 비율로 잡는다 (도구 호출이 있어도 서술이 * 결론-편향이면 감지). * * 순수 함수 — Stop hook 이 `block_message` 로 주입할 수 있도록 reason 문자열을 * 직접 반환. */ export interface RatioCheckInput { text: string; /** 비율 임계값. 기본 3 (결론이 검증의 3배 넘으면 block). */ threshold?: number; /** * 결론/검증 둘 다 합쳐 이 개수 미만이면 판정 보류 (sparse text). * 기본 4 — 짧은 1-2줄 응답에 오탐 방지. */ minTotal?: number; } export interface RatioCheckResult { /** true = 결론 편향 감지 — block 후보. */ block: boolean; conclusionCount: number; verificationCount: number; /** 검증이 0이면 Infinity, 아니면 결론/검증. */ ratio: number; /** block 시 stop-guard block_message 로 주입할 사람-읽기 문장. */ reason: string; } export declare function checkConclusionVerificationRatio(input: RatioCheckInput): RatioCheckResult;