코드를 작성하기 전에 AI 환각 현상을 포착하기 위해 /probe 사용하기

/probe가 하는 일
/probe 기법은 AI가 생성한 계획이 각 주장된 사실을 예상값과 함께 번호가 매겨진 CLAIM으로 출력하도록 강제합니다. 그런 다음 실제 시스템을 조사하는 명령을 실행하여 예상 결과와 실제 결과 사이의 차이를 포착합니다.
출처의 실제 예시
한 개발자가 ~/.claude/projects/... 아래에 저장된 Claude의 JSONL 세션 파일을 파싱하려 했습니다. Claude는 형식을 자신 있게 설명했지만, /probe를 실행하면 네 가지 환각이 드러났습니다:
- 주장 1: AI는 최상위 유형이 2가지(user, assistant)라고 말했습니다. 실제: queue-operation, file-history-snapshot, attachment, system, permission-mode, summary를 포함해 7가지 유형이 있습니다.
- 주장 2: AI는 assistant 내용 = text + tool_use라고 말했습니다. 실제: 확장 사고 모드에서 assistant 출력의 약 1/3을 차지하는 thinking 블록을 놓쳤습니다.
- 주장 3: AI는 user 내용이 항상 배열이라고 말했습니다. 실제: 다형성: 문자열 또는 배열입니다.
- 주장 4: AI는 폴더 이름에서 /를 -로 대체한다고 말했습니다. 실제: 실제로는 대시를 앞에 붙인 후 대체합니다.
/probe가 없었다면, jq 필터는 문자열 형태의 user 내용에서 오류를 일으키고, thinking 블록을 쓰레기로 덤프하며, 7가지 메시지 유형 중 5가지를 완전히 놓쳤을 것입니다.
프로브 작동 방식
AI는 jq -r '.type' file.jsonl | sort -u와 같은 명령을 실행하기 전에 "EXPECTED: 2 types"와 같은 주장을 작성합니다. 한 프로브 출력은 다음과 같았습니다:
CLAIM 1: JSONL has 2 top-level types (user, assistant) EXPECTED: 2 COMMAND: jq -r '.type' *.jsonl | sort -u | wc -l ACTUAL: 7 DELTA: +5 unknown types (queue-operation, file-history-snapshot, attachment, system, permission-mode, summary)
출처의 주요 통찰
프로브할 가치가 있는 주장은 종종 AI가 가장 자신 있어하는 것들입니다. AI가 주저할 때는 이미 확인해야 한다는 것을 알고 있습니다. AI가 단호하게 X라고 말할 때는 모릅니다. 높은 확신을 가진 주장이 환각이 숨어 있는 곳입니다.
또 다른 이점은 하나의 프로브가 N개의 영구적인 테스트가 된다는 것입니다. 7가지 유형 발견은 새로운 유형이 나타나면 CI가 실패하는 스키마 테스트가 됩니다. 문자열-또는-배열 발견은 두 형태를 퍼즈하는 속성 테스트가 됩니다. 업스트림 형식이 변경되면 테스트가 실패하고, 다시 프로브를 실행하며, 오라클이 업데이트됩니다.
제한 사항 및 개선점
프로브는 AI가 주장할 것이라고 생각하는 주장만 포착합니다. 알려지지 않은 미지의 것은 보이지 않습니다. 도움이 되는 것들:
- 주장을 생성하기 전에 현실을 열거하기 위해 먼저
jq 'keys'실행 - Dex Horthy의 CRISPY 패턴은 AI가 자신의 격차 목록을 표면화하도록 밀어붙입니다
- GitHub의 Spec Kit은 사양에서 [NEEDS CLARIFICATION] 마커를 사용하여 AI가 맹점을 표시하도록 강제합니다
- 주장 목록의 인간 검토도 권장됩니다
전통적인 TDD와의 대조
전통적인 TDD는 당신이 일어날 것이라고 생각하는 것에 기반하여 테스트를 작성합니다. 프로브 기반 TDD는 당신이 스파이크하거나 검증한 일어나는 것에 기반하여 테스트를 작성합니다. 목은 시스템에 대한 당신의 모델을 테스트합니다. 프로브는 시스템 자체를 테스트합니다.
소스 파일
개발자는 두 파일이 포함된 gist에 전체 /probe 스킬 파일을 공유했습니다:
- README.md: REPL-as-oracle 각도와 TDD 대조를 포함한 긴 글
- probe-skill.md: Claude Code 스킬로 로드되는 7단계 프로토콜
패턴은 단순히 "주장 테이블 + 실제 시스템 프로브 + 차이 포착"이며, 당신이 코딩하려는 시스템을 쿼리할 수 있는 모든 REPL 또는 CLI 도구와 함께 작동합니다.
📖 전체 소스 읽기: r/ClaudeAI
👀 See Also

AbsolutelySkilled 레지스트리가 Claude Code용 156개의 프로덕션 준비 완료 스킬 추가
한 개발자가 세션 간에 지속되는 Claude Code용 156개의 구조화된 스킬 모듈 레지스트리인 AbsolutelySkilled를 만들었습니다. 각 스킬에는 SKILL.md 파일에 트리거 조건, 참조 파일, 테스트 케이스, 안티패턴이 포함되어 있습니다.

디자인 작업을 위한 클로드: 매 세션마다 똑같은 취향 논쟁을 멈추는 방법
클라이언트 작업을 Claude로 진행하는 개발자는 핵심 문제를 설명합니다: Claude는 거부된 디자인 결정을 기억하지 못하여 일반적인 결과물과 일관성 없는 브랜드 아이덴티티를 초래합니다.

컨텍스티움: Claude 코드를 위한 오픈소스 지속적 컨텍스트 프레임워크
Contextium은 CLAUDE.md 파일을 컨텍스트 라우터로 사용하여 관련 마크다운 파일을 지연 로드하는 구조화된 git 저장소 프레임워크로, Claude Code 세션에 지속적인 컨텍스트를 제공합니다. 오픈소스 버전에는 6개의 샘플 앱과 27개의 통합 문서가 포함된 템플릿이 제공됩니다.

AI 팀 OS: Claude 코드를 위한 자율 운영 조직 레이어
AI Team OS는 Claude Code를 위한 운영 체제 레이어로, 사용자의 프롬프트를 기다리지 않고 시스템이 계속 작동하는 자율 워크플로를 생성합니다. 여기에는 22개의 특화된 에이전트 템플릿, 40개 이상의 MCP 도구가 포함되며, 외부 API 비용 없이 Claude Code 구독 내에서 완전히 실행됩니다.