fact-auditlisted
Install: claude install-skill jsb4702-glitch/verification-harness
# fact-audit — 미묘한 사실오류 탈상관 검증
> ⚠️ 전제(정직): 이 skill은 환각을 **0으로 못 만든다**. 모델이 확신하며 틀린 오류 중 *외부와 대조 가능한* 부분만 잡는다. 두 모델이 같은 학습편향을 공유하면 둘 다 틀려 통과(상관오류). 안전임계는 최종적으로 1차 문헌+인간.
## 절차 (답변 송출 전 또는 사후)
1. **주장 추출**: 답변에서 반증가능한 개별 사실주장을 리스트화 (규격 Rev·수치·물성·인과·"항상/없다" 단정). 의견·정성서술 제외.
2. **분류**:
- 🔢 검증가능(외부 정답 존재) → 도구 대조: 규격/최신성=web_search, DOI/논문=`pn-verify/crossref`, 부품=`pn-verify/digikey`, 산술=Bash.
- 🧠 판단성(정답 외부에 없음·해석) → 아래 **계층형 이종검증**.
### 계층형 이종검증 (Groq + Gemini 캐스케이드)
1. **1차 스크리닝 → Groq**(`groq-review`, llama-3.3-70b, 빠름·쌈): 명백한 오류 솎기. 단 약한 모델이라 단독반박=권위 아님, "조사 플래그"로만.
2. **권위 교차검증 → Gemini**(`gemini-review`, flash): 안전임계 또는 Groq가 플래그한 건. 더 강함.
3. **삼각측량**(안전임계만): Claude≠Gemini 갈리면 Groq 표로 판정. 2:1 다수 + 근거 우선.
4. **폴백**: Gemini 429/503 실패 시 Groq를 주검증자로 대체.
- 상관오류(셋 다 공유하는 오개념)는 못 잡음 → 안전임계 최종은 1차문헌+인간.
3. **대조 실행**: 각 주장을 해당 경로로 독립 확인. 자기확신 재진술 금지 — 반드시 외부 앵커.
4. **불일치 리포트**(핵심 산출물): 일치는 생략, **불일치·미검증만** 표로.
`| 주장 | 내 근거 | 외부확인 | 판정(일치/반증/미검증) | 조치 |`
5. **반증 프롬프트**(보조): 남은 판단성 주장에 "이게 틀렸다면 어디서 깨지나?" 1패스. 자기검토라 효과 제한적임을 명시.
## 출력 규율
- 불일치/미검증 0건이어도 "전부 일치"라 단정 말 것 → "외부확인된 N건 일치, 검증불가 M건"으로 표기(미검증을 일치로 위장 금지).
- 검증불가 주장은 🔴 [지식한계]로 강등. 도구 실패 시 "미검증", 날조 금지.
- 불일치 건은 `eval/verifier_disagree.md`에 적재(이종검증 ROI 추적).
## 한계 명시 (매 사용 시 1줄)
"이 감사는 외부 대조 가능한 오류만 커버. 두 모델 공통 맹점·1차문헌 미확인 영역은 잔존 — 안전임계는 전문가 확정."
## 구조화 출력 (필수 — 불일치 리포트 표 다음에 항상 포함)
```json
{
"tool": "fact-audit",
"verdict": "PASS|WARN|FAIL",
"confirmed": 0,
"unverified": 0,
"refuted": 0,
"finding