← ClaudeAtlas

write-gatelisted

Pre-write and review gates for code changes. Pre-write: before creating any new function, helper, type, or file — 만들어줘, 추가해줘, 구현해줘, 새 파일, 리팩토링, new helper/component. Post-write: after finishing a change — 다 했어, 리뷰해줘, 검토, review my change. Prevents duplicate reimplementation and enforces the review checklist including run-verification (scaled to change size/runtime surface — no full verification for small mechanical changes) and doc sync.
jx-hxxx/hi-vibe · ★ 3 · Code & Development · score 79
Install: claude install-skill jx-hxxx/hi-vibe
# write-gate > **답변 언어**: 이 지침은 한국어로 쓰였지만, **출력은 항상 사용자가 대화에서 쓰는 언어**를 따른다 (한국어→한국어, 영어→영어). 기존 문서·코드에 언어가 있으면 그쪽을 우선한다. ## 먼저: 안전벨트가 매여 있는지 (두 모드 공통, 세션당 한 번) **훅은 조용히 실패한다**(fail-open) — 망가져도 에러조차 안 뜬다. 그래서 "훅이 죽었나"를 훅으로는 알 수 없다(자기가 안 도니까). 확인할 수 있는 건 **훅과 무관하게 도는 이 스킬 층뿐**이다. 이 스킬은 사용자 말("만들어줘", "다 했어")에 걸리므로 훅이 전멸해도 살아 있다. 이 스킬이 이번 세션에서 처음 걸릴 때 한 번만: `python3 "${CLAUDE_PLUGIN_ROOT}/scripts/doctor.py" --root <repo> --quick` JSON `state` 하나로 갈린다. **`alive`면 아무 말도 하지 마라** — 정상을 보고하는 건 잔소리다. - **`alive`** → 침묵. 그대로 아래 작업을 진행한다. - **`stale` / `never-ran`** → 훅이 이 세션에서 안 돌았다. 한 줄로 알린다: "hi-vibe 훅이 이 세션에서 안 돌고 있습니다(마지막 기록 N시간 전). 방금 플러그인을 업데이트했다면 Claude Code를 다시 시작하면 되고, 아니면 `/hi-vibe:doctor`로 확인하세요." **막지는 마라** — 훅 없이도 이 스킬은 동작하므로 하던 일은 그대로 진행한다. - **`not-initialized`** → 이 폴더는 hi-vibe가 꺼져 있다. 한 번만 알린다: "이 폴더는 hi-vibe가 꺼져 있습니다(자동 감지·기록 없음). 쓰시려면 `/hi-vibe:init`, 안 쓰실 거면 그렇다고 말씀만 주세요." 사용자가 "안 쓴다"고 하면 `.hi-vibe/optout` 파일을 만들어라(`mkdir -p .hi-vibe && touch .hi-vibe/optout`) — 그러면 훅은 계속 꺼진 채로, 다시 묻지 않는다. **여기서 마음대로 init하지 마라.** opt-in은 사용자가 정한다. - **`optout`** → 침묵. 이 폴더에서 다시는 묻지 않는다. **`tracked_env`가 비어 있지 않으면** `state`와 별개로 **반드시 알린다**(세션당 한 번). 목록에 있는 `.env` 파일이 Git에 올라가 있다는 뜻이고, **비밀키 검사는 `.env`를 검사 대상에서 빼므로 이건 훅도 `check`도 못 잡는다.** > `.env`가 Git에 올라가 있습니다(`<파일들>`). 비밀키 검사는 `.env`를 안 보기 > 때문에 이건 아무 검사에도 안 걸립니다. `git rm --cached <파일>` 후 > `.gitignore`에 넣으세요. **이미 push했다면 히스토리에 남아 있으니 그 키는 > 폐기(rotate)해야 합니다.** 파일을 열어 보지 마라 — 내용을 읽는 순간 대화창이 유출 통로가 된다.