पाठ 15 / 25

Guardrail Hook

ख़तरनाक commands चलने से पहले रोकें और edits के बाद files format करें।

जाँचें, फिर अनुमति दें या रोकें

Pre-tool hook tool call को चलने से पहले देखता है और उसे अस्वीकार कर सकता है, ऐसे संदेश के साथ जिसे model पढ़कर अपना रास्ता बदलता है। Post-tool hook edit के बाद formatters या tests चला सकता है। साथ में वे अतिरिक्त prompting के बिना नियम लागू करते हैं।

Force push रोकें

यह script hook का JSON पढ़ती है और call रोकने तथा कारण दिखाने के लिए exit code 2 देती है। JSON fields और exit-code का सटीक व्यवहार आपके agent के hook दस्तावेज़ में तय है, इसलिए अपने version के लिए जाँच लें।

#!/usr/bin/env bash
# .claude/hooks/block-force-push.sh
cmd=$(jq -r '.tool_input.command // ""')
if echo "$cmd" | grep -Eq 'git push.*(--force|-f)'; then
  echo "Blocked: force pushes are not allowed. Use a normal push." >&2
  exit 2
fi

कारण के साथ रोकें

सिर्फ़ "denied" model को अनुमान लगाने पर छोड़ देता है। जो संदेश बताए कि इसकी जगह क्या करें, वह model को अगली बारी में योजना सुधारने देता है।

त्वरित जाँच: Blocking hook को कारण क्यों print करना चाहिए?

  • Linux में कारण ज़रूरी हैं
  • ताकि model अपनी योजना बदल सके
  • ताकि agent धीमा हो
  • वरना hooks रोक नहीं सकते
Answer

ताकि model अपनी योजना बदल सके — संदेश model को लौटाया जाता है, जो फिर सुरक्षित विकल्प चुन सकता है।