Passa al contenuto principale

Ricette per hook e settings.json

Intermedio

Ricette pronte all'uso per settings.json, permessi e hook. Adatta i comandi al tuo stack.

settings.json di partenza del progetto

.claude/settings.json (sottoposto a commit, valido per tutto il team):

{
"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:*)"]
}
}

Metti le sovrascritture personali o specifiche della macchina in .claude/settings.local.json (ignorato da git).

Formattazione automatica dopo le modifiche

{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{ "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATH\" 2>/dev/null || true" }
]
}
]
}
}

Gate di qualità prima di concludere

Blocca il "fatto" finché i test non passano (concettuale — collegalo a un evento Stop/pre-conclusione secondo la documentazione):

{
"hooks": {
"Stop": [
{ "hooks": [ { "type": "command", "command": "npm test --silent" } ] }
]
}
}

Guardia di sicurezza (blocca la modifica dei percorsi protetti)

{
"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 Mantieni gli hook veloci e idempotenti Vengono eseguiti di continuo. Falli rapidi, sicuri da rieseguire e rumorosi solo in caso di problemi reali. :::

Prossimi passi