हुक्स और settings.json रेसिपी
settings.json, परमिशन, और हुक्स के लिए ड्रॉप-इन रेसिपी। कमांड को अपने स्टैक के अनुसार अनुकूलित करें।
स्टार्टर प्रोजेक्ट settings.json
.claude/settings.json (कमिट किया हुआ, पूरी टीम के लिए):
{
"permissions": {
"allow": [
"Read",
"Bash(npm run test:*)",
"Bash(npm run lint)",
"Bash(git status)",
"Bash(git diff:*)"
],
"ask": ["Bash(npm install:*)", "Write"],
"deny": ["Read(./.env)", "Read(./**/*.pem)", "Bash(git push --force:*)"]
}
}
व्यक्तिगत/मशीन-विशिष्ट ओवरराइड को .claude/settings.local.json (git-ignored) में रखें।
एडिट के बाद ऑटो-फ़ॉर्मेट
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true" }
]
}
]
}
}
समाप्ति से पहले क्वालिटी गेट
टेस्ट पास होने तक "done" को ब्लॉक करें (वैचारिक — दस्तावेज़ के अनुसार Stop/प्री-फ़िनिश इवेंट से जोड़ें):
{
"hooks": {
"Stop": [
{ "hooks": [ { "type": "command", "command": "npm test --silent" } ] }
]
}
}
सेफ़्टी गार्ड (सुरक्षित पाथ को एडिट करने से रोकें)
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "case \"$CLAUDE_FILE_PATH\" in *secrets*|*.env|*/vendor/*) echo 'blocked: protected path'; exit 1;; esac" }
]
}
]
}
}
:::tip हुक्स को तेज़ और आइडेमपोटेंट रखें ये लगातार चलते हैं। इन्हें तेज़, दोबारा चलाने के लिए सुरक्षित बनाएँ, और केवल असली समस्याओं पर ही मुखर रखें। :::