builderlog
📦 자동화 팩은 이제 구독이에요. 팩마다 월 990원 · 1년 9,900원. 구독하면 설치 방법을 바로 보내 드리고, 업데이트는 자동으로 받아요. 기존 구매자는 산 팩 1년 업데이트가 무료예요(내 구매함).요금 보기 →

프롬프트 도감 › No.2856

7단계 실행 규칙 검증

7Step Config Verification

Claude Code의 자동 실행 규칙을 안전하게 만들고 7단계로 꼼꼼하게 검증해줘요. 중복 확인부터 안전한 명령 작성까지 단계별로 안내해 오류를 막아줘요.

이럴 때 자동 실행 설정, 도구 설정 검증, 개발 자동화

도구 AI

프롬프트

<!--
name: "Skill: update-config (7-step verification flow)"
description: "A skill that guides Claude through a 7-step process to construct and verify hooks for Claude Code, ensuring they work correctly in the user's specific project environment"
ccVersion: "2.1.282"
variables:
  - "HOOKS_SETTINGS_MENU_COMMAND"
-->
## Constructing a Hook (with verification)

Given an event, matcher, target file, and desired behavior, follow this flow. Each step catches a different failure class — a hook that silently does nothing is worse than no hook.

1. **Dedup check.** Read the target file. If a hook already exists on the same event+matcher, show the existing command and ask: keep it, replace it, or add alongside.

2. **Construct the command for THIS project — don't assume.** The hook receives JSON on stdin. Build a command that:
   - Extracts any needed payload safely — use `jq -r` into a quoted variable or `{ read -r f; ... "$f"; }`, NOT unquoted `| xargs` (splits on spaces)
   - Invokes the underlying tool the way this project runs it (npx/bunx/yarn/pnpm? Makefile target? globally-installed?)
   - Skips inputs the tool doesn't handle (formatters often have `--ignore-unknown`; if not, guard by extension)
   - Stays RAW for now — no `|| true`, no stderr suppression. You'll wrap it after the pipe-test passes.

3. **Pipe-test the raw command.** Synthesize the stdin payload the hook will receive and pipe it directly:
   - `Pre|PostToolUse` on `Write|Edit`: `echo '{"tool_name":"Edit","tool_input":{"file_path":"<a real file from this repo>"}}' | <cmd>`
   - `Pre|PostToolUse` on `Bash`: `echo '{"tool_name":"Bash","tool_input":{"command":"ls"}}' | <cmd>`
   - `Stop`/`UserPromptSubmit`/`SessionStart`: most commands don't read stdin, so `echo '{}' | <cmd>` suffices

   Check exit code AND side effect (file actually formatted, test actually ran). If it fails you get a real error — fix (wrong package manager? tool not installed? jq path wrong?) and retest. Once it works, wrap with `2>/dev/null || true` (unless the user wants a blocking check).

4. **Write the JSON.** Merge into the target file (schema shape in the "Hook Structure" section above). If this creates `.claude/settings.local.json` for the first time, add it to .gitignore — the Write tool doesn't auto-gitignore it.

5. **Validate syntax + schema in one shot:**

   `jq -e '.hooks.<event>[] | select(.matcher == "<matcher>") | .hooks[] | select(.type == "command") | .command' <target-file>`

   Exit 0 + prints your command = correct. Exit 4 = matcher doesn't match. Exit 5 = malformed JSON or wrong nesting. A broken settings.json silently disables ALL settings from that file — fix any pre-existing malformation too.

6. **Prove the hook fires** — only for `Pre|PostToolUse` on a matcher you can trigger in-turn (`Write|Edit` via Edit, `Bash` via Bash). `Stop`/`UserPromptSubmit`/`SessionStart` fire outside this turn — skip to step 7.

   For a **formatter** on `PostToolUse`/`Write|Edit`: introduce a detectable violation via Edit (two consecutive blank lines, bad indentation, missing semicolon — something this formatter corrects; NOT trailing whitespace, Edit strips that before writing), re-read, confirm the hook **fixed** it. For **anything else**: temporarily prefix the command in settings.json with `echo "$(date) hook fired" >> /tmp/claude-hook-check.txt; `, trigger the matching tool (Edit for `Write|Edit`, a harmless `true` for `Bash`), read the sentinel file.

   **Always clean up** — revert the violation, strip the sentinel prefix — whether the proof passed or failed.

   **If proof fails but pipe-test passed and `jq -e` passed**: the settings watcher isn't watching `.claude/` — it only watches directories that had a settings file when this session started. The hook is written correctly. ${HOOKS_SETTINGS_MENU_COMMAND?`Tell the user to open `${HOOKS_SETTINGS_MENU_COMMAND}` once (reloads config) or restart — you can't do this yourself; `${HOOKS_SETTINGS_MENU_COMMAND}` is a user UI menu and opening it ends this turn.`:"Tell the user to start a new session so the new settings load. You can't do this yourself."}

7. **Handoff.** ${HOOKS_SETTINGS_MENU_COMMAND?`Tell the user the hook is live (or needs `${HOOKS_SETTINGS_MENU_COMMAND}`/restart per the watcher caveat). Point them at `${HOOKS_SETTINGS_MENU_COMMAND}` to review, edit, or disable it later.`:"Tell the user the hook is live (or needs a new session per the watcher caveat), and that they can review, edit, or disable it later in the settings file you wrote."} The UI only shows "Ran N hooks" if a hook errors or is slow — silent success is invisible by design.

팁

출처

권리: MIT; Piebald-AI/claude-code-system-prompts; 원문 출처 링크 참조. 수정·번역 여부는 카드 메타 참조.

프롬프트 도감builderlog.net · PROMPT DEX · 2026 가을판 · 205종

원하는 결과부터 골라보세요. 무료 프롬프트는 복사해서 바로 써보고, 반복 작업은 내 컴퓨터에 맞는 패키지로 시작할 수 있어요.

패키지 둘러보기 무료 프롬프트 먼저 써보기
000수록 프롬프트
0.0평균 별점 / 5
0직접 재현·테스트
0내 사진이 필요한 것
채집0/ 0
LAST SYNC

🆓 무료 프롬프트, 골라 드려요

복사해서 바로 쓰는 것만
전체 도감에서 더 찾기 ↓

🐙 GitHub 스타 목록 참고 · 실행 검증 아님

🎯 뭘 하고 싶어요?

목표를 하나 고르면 그 스킬트리만 펼쳐집니다. 전체는 "전체 코스"

📡 실시간 수집함

깃허브·사례집·레딧·해커뉴스를 매일 긁어 쌓습니다. 사람이 검토하기 전까지는 미검증
수집중▮

★ 별점 기준

  • 5: 거의 실패 없음, 결과가 곧바로 쓸 만함
  • 4: 한두 번 재생성하면 됨
  • 3: 재미는 있으나 편차 크거나 근거 약함

🔋 토큰 산정

  • 입력: 한글 1.3자, 영문 4자를 1토큰으로 추정
  • 텍스트 프롬프트는 Qwen2.5-14B 로컬 실행 실측치로 교체
  • 이미지 1장은 Gemini 이미지 모델 기준 1,290토큰
  • 영상·음악은 토큰이 아닌 초당 크레딧 과금

🎯 추천 코스

  • '뭘 하고 싶은지'를 먼저 고르면 그 목표에 맞는 프롬프트를 쓰는 순서대로 묶어 보여줍니다
  • 카드마다 '이럴 때 쓰세요'와 '어디에 올리나'를 적어 두었습니다
  • 같은 프롬프트가 여러 코스에 들어갈 수 있습니다

⚖️ 라이선스·삭제 요청

  • 원문을 그대로 실은 프롬프트는 재배포가 허용된 출처(CC0·MIT·CC BY 4.0 등)만이며, 항목마다 라이선스와 원작자를 표기합니다
  • 상업 매체에서 소개된 프롬프트는 원문을 옮기지 않고 도감 편집부가 같은 기능으로 다시 썼습니다. 출처 링크는 참고용입니다
  • 결과 이미지는 원작자가 공개한 것을 라이선스에 따라 싣고, 실존 인물의 얼굴이 식별되는 이미지는 싣지 않습니다. 상표·캐릭터가 보이는 이미지는 예시 목적이며 권리는 각 소유자에게 있습니다
  • 권리자의 삭제 요청은 Contact로 보내 주세요. 확인 즉시 내립니다
  • '빌더로그 직접 작성' 표시가 있는 항목은 © 빌더로그입니다. 개인적·비상업적 용도로 본인의 에이전트에 붙여넣어 쓰는 것만 허용하며, 상업적 이용과 원문 전체·일부의 복제·재게시·재배포(블로그·SNS·강의·유료 자료 포함)를 금지합니다. 소개는 해당 페이지 링크로만 해 주세요. 항목에 다른 라이선스가 적혀 있으면 그것이 우선합니다

📡 실시간 수집

  • scripts/collect.py 가 GitHub API·사례집 README·Reddit·Hacker News를 긁어 inbox.json 에 쌓습니다 (LLM 없이 결정적 코드)
  • GitHub Actions(매일 06:00 KST) 또는 로컬 launchd로 자동 실행. 처음 본 항목은 NEW 표시
  • 수집함의 항목은 미검증입니다. 사람이 검토해 도감으로 승격합니다

📸 결과 캡처

  • 텍스트·설정 프롬프트: 로컬 Qwen2.5-14B 실행 출력을 그대로 캡처 (입력값은 카드에 표시)
  • 이미지 프롬프트: CC BY 4.0 / MIT로 공개된 오픈소스 사례집의 결과물. 원작자 링크 표기
  • 같은 프롬프트가 아닌 경우 '유사 사례'로 구분. 캡처가 없는 항목은 출처 링크로 확인

✅ 검증 방식

  • 결과 공개 확인: 매체·계정에서 실제 결과물이 여러 건 공개된 것
  • 직접 테스트: 텍스트·설정 프롬프트를 로컬 모델로 실행해 형식과 의도가 재현되는지 확인
  • 원문 인용을 원칙으로 하되, 저작권상 전문을 못 옮긴 항목은 핵심 요소 기준으로 재구성했다고 표시
⚪ 내 도감

채집한 프롬프트를 파일로 저장해 다른 도구나 노트에 붙여넣으세요.

상세

다음으로 둘러보기

자동화 패키지내 작업에 맞는 패키지 고르기숏츠·블로그·릴스·틱톡 작업을 내 컴퓨터에서 한 흐름으로. Mac · Windows깃허브 분석실행 환경까지 확인한 도구 찾기GitHub 도구의 용도와 실행 환경을 정리했어요떡상 레이더지금 뜨는 소재 보기떡상 쇼츠·사람들이 찾는 소재·급상승 키워드를 6시간마다 모아요