단원 10 — 검증 루프, Boris Cherny 의 하네스 정의
별칭: Boris 검증 루프 단원 · 검증 루프 하네스
요약
entity/boris-cherny (Anthropic, entity/claude-code 책임자) 의 핵심 명제 — "Claude Code 를 잘 쓰는 사람은 AI 한테 일을 잘 시키는 사람 이 아닙니다. AI 가 자기 작업을 스스로 검증 하게 만드는 사람 입니다." 이것이 concept/harness-engineering 의 정수.
상세
핵심 명제
"Claude Code 를 잘 쓰는 사람은 AI 한테 일을 잘 시키는 사람이 아닙니다. AI 가 자기 작업을 스스로 검증하게 만드는 사람 입니다." — Boris Cherny (Anthropic / Claude Code 책임자)
검증 루프 설계 — 좋은 지시 vs 나쁜 지시
❌ 검증 없는 지시:
"이 기능 만들어 줘."
✅ 검증 루프 포함 지시:
"이 기능을 구현해 줘. 작동 확인용 테스트 코드 도 같이 작성해 줘. 마지막으로 테스트를 실행 해서 통과 여부를 확인해 줘."
→ 이 차이 하나가 Claude 를 코드 생성기 에서 자기 검증 에이전트 로 전환.
비유 (Boris): 후배에게 일 줄 때
- ❌ "보고서 만들어놔."
- ✅ "보고서 만들어 줘. 숫자 출처 맞는지 확인하고, 맞춤법 검토 후 공유해 줘."
term/claude-md 의 가장 중요한 요소 — "하지 말아야 할 것"
"실무에서는 Claude 가 잘하는 일을 더 잘하게 만드는 것보다 하면 안 되는 일을 못 하게 막는 것 이 훨씬 중요할 때가 많다." — Boris Cherny
CLAUDE.md 실전 예시:
# 절대 금지
- 마이그레이션 파일은 사용자 승인 없이 수정하지 않는다
- 프로덕션 DB 관련은 절대 자동 실행하지 않는다
# 새 기능 구현 전 필수
- 반드시 테스트 전략을 먼저 설명한다
Boris 의 CLAUDE.md 길이 원칙: 약 2,500 토큰 — 심플하게. 길면 독.
권한 설계 — 하네스의 경계선
허용 (자동): 테스트 실행, 파일 읽기
승인 필요: 패키지 설치, 커밋
금지: 위험한 삭제 명령, 프로덕션 DB 접근
"신입 개발자에게 처음부터 모든 서버 권한 을 다 주지 않듯, AI 도 마찬가지다. 똑똑한 만큼 더 큰 실수 를 할 수 있다."
장시간 검증 3종 세트
| 방법 | 동작 |
|---|---|
| 테스트 자동 실행 | 구현 → 테스트 작성 → 실행 → 실패 시 재수정 |
| term/stop-hook | Claude 완료 시 빌드/테스트/린트 자동 실행 |
| UI 검증 | 스크린샷·브라우저 자동화로 화면 확인 |
방법론
강의 진행 시퀀스 (8분):
- Boris 명제 (1분): AI 한테 시키는 사람이 아니라 스스로 검증하게 만드는 사람.
- 나쁜 지시 vs 좋은 지시 (2분): 두 줄 비교. 후배 비유.
- CLAUDE.md = 하네스 (2분): 하지 말아야 할 것 이 잘하는 것 보다 중요. 코드 예시.
- 권한 설계 3 단계 (1분): 자동 / 승인 / 금지.
- 검증 3종 세트 (1분): 테스트 / 스톱 훅 / UI.
- 메시지 정착 (1분): "검증 루프 없이는 AI 코딩이 신뢰할 수 없다."
주의사항
- Boris 권위의 무게: Claude Code 책임자 — 슬라이드에 직책 명기.
- 2,500 토큰 길이의 함의: 짧게 가 핵심. 청중이 최대한 길게 적자 는 오해 방지.
- 권한 설계의 OS 비유: 루트 권한 / sudo / 일반 사용자 의 OS 권한 분리와 등가. 친숙성 활용.
- 다음 단원 연결: lesson/hrn-experience-as-validator — 그러면 무엇을 금지해야 하는가? = 경험에서 온다.
표어 정합
본 단원의 Boris 정의 가 강의 표어 "AI-Native Vibe Coding: No Design, No Code" 의 작동 형태 다. 설계 없이는 코딩이 안된다 (Thesis) → *그 설계는 AI 가 자기를 검증하게 만드는 시스템 * — AI 에게 어떻게 일을 시키는가 (Corollary) 의 정수. 이 한 줄이 8·9·14·16 모든 도구의 왜 그렇게 만들어졌는가 에 답한다.