{"repo":"chrisryugj/fable-ish","free":true,"listed":false,"github":"https://github.com/chrisryugj/fable-ish","clone":"git clone https://github.com/chrisryugj/fable-ish.git","description":"Fable-style verification gate for Claude Code: don't say done until it's verified. Port of the Codex plugin by Agent Korea (플라잉따릉이).","language":"Python","stars":41,"topics":["ai-agents","anthropic","claude","claude-code","claude-code-plugin","codex","developer-tools","fable","hooks","verification"],"license":"MIT","category":"ai-agents","readme_excerpt":"fable-ish \"fable-ish\" = \"Fable처럼(-ish)\". 관찰 가능한 검증으로 통과하기 전에는, 완료를 인정하지 않는다. fable-ish 는 Anthropic이 최근 선보인 코딩 모델 Fable 이 보여준 검증 규율 을 Claude Code 훅으로 재현한 플러그인입니다. Fable의 강함은 \"똑똑한 모델이 코드를 잘 쓴다\"가 아니라 루프 에 있습니다 — 작업의 위험에 맞춰 탈출 조건을 매 순간 새로 세우고, 그 조건이 관찰 가능한 검증 으로 통과되기 전에는 완료를 인정하지 않습니다. fable-ish는 그 규율을 가벼운 훅 3개로 흉내 냅니다(그래서 -ish ). English 원작자 & 포팅. 원본 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)에 남깁니다. 검증이 바뀐 파일을 실제로 커버했는지","default_branch":null,"files":null,"tree":[],"storefront":"/r/chrisryugj","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/chrisryugj/fable-ish/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}