03-실전
03 — 실전: 자기 검증 해체 절차
섹션 제목: “03 — 실전: 자기 검증 해체 절차”진단: 우리 파이프라인은 자기 검증인가
섹션 제목: “진단: 우리 파이프라인은 자기 검증인가”다음 5문항으로 자가 진단.
- writer와 verifier가 다른 sub-agent type인가?
- verifier가 writer의 사고과정(scratchpad)을 입력으로 받지 않는가?
- verifier가 외부 도구 (테스트 러너, 링크 체커, 빌드)로 사실을 검증하는가, 아니면 텍스트만 읽는가?
- verifier 출력이 “Looks good”이 아니라 구조화된 게이트(pass/fail + 항목별 evidence)인가?
- published 상태로 마킹하는 권한이 verifier 또는 사람에게만 있는가? (writer에게 없다는 것을 보장하는가?)
5개 모두 YES가 아니면 자기 검증이다.
해체 절차
섹션 제목: “해체 절차”1단계 — 패스 명시 분리
섹션 제목: “1단계 — 패스 명시 분리”역할별 sub-agent를 따로 만든다. OMC라면 team N:writer와 별도로 team N:verifier를 호출. 단일 LLM 호출 안에서 “스스로 검증해 봐”는 금지.
2단계 — 입력 분리
섹션 제목: “2단계 — 입력 분리”verifier 프롬프트에 writer의 reasoning을 포함하지 않는다. 출력 결과물만 전달.
3단계 — 도구 분리
섹션 제목: “3단계 — 도구 분리”verifier에게는 다음을 의무화.
- 코드 챕터 →
pytest/npm test실제 실행 - 링크 →
link-checker스크립트 실제 호출 - 인용 →
sources/파일 실제 grep
LLM이 말로 “테스트 통과”라고 보고하면 신뢰하지 않는다. 도구의 raw exit code만 신뢰한다.
4단계 — 게이트 구조화
섹션 제목: “4단계 — 게이트 구조화”verifier 출력 형식:
gate: pass | failchecks: - name: link-check result: pass evidence: "0 broken links / 47 checked" - name: source-citation result: fail evidence: "3 quotes without source: line 14, 22, 88"“Looks good”은 게이트가 아니다.
5단계 — published 권한 격리
섹션 제목: “5단계 — published 권한 격리”status: published로 바꿀 수 있는 주체를 verifier 또는 사람으로 한정. writer는 status: writer-pass까지만.
예외 — 짧은 맞춤법 검사
섹션 제목: “예외 — 짧은 맞춤법 검사”자기 검증이 정당화되는 유일한 케이스는 형식적·기계적 검사다 — 들여쓰기, 마크다운 문법, 형용사 필터. 이 경우에도 가급적 정규식/린터에 맡긴다. LLM 호출로 처리하지 않는다.