코드를 작성하기 전에 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

MCP 서버가 코드베이스를 지식 그래프로 인덱싱하여 토큰을 10배 감소시킵니다
codebase-memory-mcp라는 새로운 MCP 서버는 tree-sitter를 사용하여 코드베이스를 지속적인 지식 그래프로 파싱하여 구조적 쿼리에 대한 토큰 사용량을 최소 10배 감소시킵니다. 35개의 실제 저장소에서 벤치마킹한 결과, 파일별 탐색을 그래프 쿼리로 대체합니다.

스카이넷: 클로드 코드 에이전트를 위한 다중 에이전트 협업 네트워크
Skynet은 다수의 Claude Code 에이전트와 인간 간 역할 기반 협업을 가능하게 하는 오픈소스 네트워크입니다. npx를 사용하여 스킬로 설치되며 자연어 명령을 통해 관리됩니다.

JobPilot: 자동화된 구직 지원을 위한 Claude 코드 플러그인
JobPilot은 Playwright 브라우저 자동화를 사용하여 구직 및 지원 과정을 자동화하는 Claude Code 플러그인입니다. 구직 게시판 검색, 지원서 자동 작성, 자기소개서 생성, 지원 통계 추적 등의 명령어를 포함합니다.

Savecraft MCP 서버는 Claude에게 정확한 Magic: The Gathering 데이터를 제공합니다
Savecraft는 MTG Arena Player.log를 로컬에서 파싱하고 게임 상태를 동기화하며, 실제 Magic: The Gathering 데이터를 기반으로 구축된 12개의 전문가 참조 모듈에 Claude가 접근할 수 있도록 하는 오픈소스 MCP 서버입니다. 이 도구는 실제 Arena 데이터, 17Lands의 드래프트 추천, 그리고 완전한 Scryfall 데이터베이스에 대한 접근을 제공함으로써 Claude가 카드 이름과 규칙을 망상하는 것을 방지합니다.