Fable Ish
Fable-style verification gate for Claude Code: don't say done until it's verified. Port of the Codex plugin by Agent Korea (플라잉따릉이).
Install
/plugin marketplace add /path/to/fable-ishInstall command taken from the project's README or registry entry. Always review code before running it.
README excerpt
Read full README on GitHub →fable-ish
"fable-ish" = "Fable처럼(-ish)". 관찰 가능한 검증으로 통과하기 전에는, 완료를 인정하지 않는다.
fable-ish는 Anthropic이 최근 선보인 코딩 모델 Fable이 보여준 검증 규율을 Claude Code 훅으로 재현한 플러그인입니다. Fable의 강함은 "똑똑한 모델이 코드를 잘 쓴다"가 아니라 루프에 있습니다 — 작업의 위험에 맞춰 탈출 조건을 매 순간 새로 세우고, 그 조건이 관찰 가능한 검증으로 통과되기 전에는 완료를 인정하지 않습니다. fable-ish는 그 규율을 가벼운 훅 3개로 흉내 냅니다(그래서 -ish).
원작자 & 포팅. 원본
fable-ish는 플라잉따릉이 (Agent Korea) 가 Fable의 동작 방식을 역설계해 Codex용 플러그인으로 만들었습니다. 이 저장소는 그 플러그인을 Claude Code로 포팅한 버전입니다 (포팅: chrisryugj). 플러그인 이름·스킬·워크플로는 원본 그대로 보존했습니다.
🔁 Fable 루프, 한 문장으로
목표 설정 → 근거 수집 → 작업 단위 정의 → 탈출 기준 설정 → 구현 → 검증 → 반례 탐색 → 기준 재조정 → 통과하면 탈출, 아니면 반복.
핵심은 고정 체크리스트("테스트 통과")가 아니라 동적 탈출 조건입니다. 위험이 낮으면 정적 검증 하나로 충분하고, 인증·DB·배포처럼 위험이 크면 더 강한 증명을 탈출 기준으로 요구합니다.
이 루프 전체는 스킬이 안내하는 지침입니다. 훅이 기계적으로 강제하는 건 마지막 한 가지 — "검증 증거 없이는 완료 인정 안 함"(Stop 게이트) — 과 작업을 말로만 약속하고 끝내는 것을 되돌리는 정도입니다. 나머지 단계(컨텍스트 확인·작업 단위 명시·반례 탐색 등)는 강제가 아니라 권고입니다.
💡 fable-ish가 하는 일
LLM은 종종 검증 없이 "다 됐습니다"라고 보고합니다. fable-ish는 그 습관에 마찰을 넣습니다. 라이프사이클 훅으로:
- 🏷️ 작업 분류 — 들어온 요청을
quick/normal/deep/blocked로 나눠, 거기에 맞는 검증 깊이를 컨텍스트로 주입합니다. 파괴적·시크릿 노출 요청은 종료가 아니라 입력 단계에서 막습니다. - 🛡️ 위험 차단 —
rm -rf, 재귀적Remove-Item,git push,terraform/pulumi destroy, 시크릿 출력 명령, 시크릿 파일(.env/.pem/id_rsa) 편집 같은 파괴적 동작만 실행 전에 차단합니다. 배포·마이그레이션·publish 명령은 일부러 막지 않습니다 — fable-ish는 검증 게이트지 배포 게이트가 아니기 때문입니다 (휴리스틱 1차 방어 — 하드 강제는permissions.deny로 보강, 설계 노트 참고). - 📒 증거 기록 — 어떤 파일이 바뀌었는지, 어떤 검증 명령이 돌았는지, 실패가 있었는지를 작은 JSON 장부(ledger)에 남깁니다. 검증이 바뀐 파일을 실제로 커버했는지(
direct/generic/uncertain)까지 추적합니다. - 🚦 완료 게이트 — 코드를 바꿨는데 성공한 검증 증거가 없으면, 종료 시점에 "검증부터 하라"고 되돌립니다 (무한 루프 방지를 위해 최대 2회).
한 줄 원칙: 관찰하지 않은 검증을 했다고 주장하지 마라.
⚡ 설치
이 저장소는 단일 플러그인이자 마켓플레이스(.claude-plugin/marketplace.json)입니다.
로컬에서 바로 (클론만 하면 됨):
/plugin marketplace add /path/to/fable-ish
/plugin install fable-ish
GitHub 공개 후 (저장소를 push했다면):
/plugin marketplace add chrisryugj/fable-ish
/plugin install fable-ish
설치 후 Claude Code를 재시작하세요. 플러그인에 번들된 훅은 자동으로 신뢰되지 않습니다. /hooks를 열어 훅 정의를 검토하고 신뢰해야 게이트가 작동합니다.
요구사항: 훅은 표준 라이브러리만 쓰는 Python 스크립트입니다.
python3가 PATH에 있어야 합니다. Windows에서python3가 없다면python을 쓰거나hooks/hooks.json의command항목을 맞게 바꿔주세요.
▶️ 사용법 — 한 번 설치하면 알아서 흐릅니다
설치하고 /hooks에서 신뢰하면 그 뒤로는 자동입니다. 따로 켤 필요가 없습니다.
- 자동 (훅): 모든 프롬프트가
quick/normal/deep/blocked로 분류되고, 코드를 바꿨는데 검증이 없으면 종료 시점에 되돌립니다. 당신이 할 일은 없습니다. - 명시 호출 (스킬):
/fable-ish <작업>슬래시 커맨드로 직접 부르거나, "fable-ish로 끝까지 구현해" 같은 자연어, 또는 복잡·검증이 필요한 작업이면 Claude가 알아서 스킬을 부릅니다. (fablish오타도 같은 스킬로 인식)
훅이 비활성/미신뢰 상태여도 스킬은 재사용 가능한 지침으로 계속 동작하지만, 기계적 게이트는 돌지 않습니다.
참고: 위험 차단 훅은 휴리스틱(우회 가능)이라 1차 방어입니다. 우회 불가한 하드 강제가 필요하면 네이티브
permissions.deny를 함께 거세요 — 예제는examples/claude-permissions.example.json, 설명은 아래 설계 노트.
🔧 작동 방식
Similar plugs
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
Bash is all you need - A nano claude code–like 「agent harness」, built from 0 to 1
Documented system prompts from Anthropic - Claude Fable 5.1, Opus 5.5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro,…
Wrap Antigravity, ChatGPT Codex, Claude Code, Grok Build, Muse Code, Devin as an OpenAI/Gemini/Claude/Codex compatible API service, allowing you to enjoy the free Gemini…