Hooks SmartStackSmartStack Hooks
SmartStack CLI déploie un ensemble de hooks Claude Code qui agissent en garde-fous pendant les sessions de développement assisté par IA. SmartStack CLI deploys a set of Claude Code hooks that act as guard rails during AI-assisted development sessions.
Les hooks sont installés dans et déclenchés par les évènements Claude Code (/.claude/hooks/PreToolUse, PostToolUse, Stop, etc.) selon la configuration de /.claude/settings.json.
Hooks live in and are triggered by Claude Code events (/.claude/hooks/PreToolUse, PostToolUse, Stop, …) per the /.claude/settings.json configuration.
Hooks déployésDeployed hooks
| Hook | DéclencheurTrigger | RôleRole |
|---|---|---|
git-guard.cjs |
PreToolUse (Bash) |
Bloque le git commit brut en shell — les commits passent par le chemin sanctionné /gitflow commit, qui applique les gardes (validation EF Core, message conventionnel)Blocks raw shell git commit — commits go through the sanctioned /gitflow commit path, which enforces the guards (EF Core validation, conventional message) |
ef-guard.cjs |
PreToolUse (Bash) |
Bloque le dotnet ef brut en shell — les migrations passent par /efcore (politique de risque 3 paliers)Blocks raw shell dotnet ef — migrations go through /efcore (3-tier risk policy) |
ba-audit-guard.cjs |
PreToolUse (Task) |
Bloque le lancement d'un sous-agent chargé d'appliquer À LA MAIN les règles d'audit BA sur le corpus .smartstack/ba/ (le scénario à 394 M tokens) — l'audit mécanique passe par le CLI déterministe /ba-audit-run ; les prompts qui citent le moteur passent. Débrayable via BA_AUDIT_GUARD_OFF=1 (utilisateur uniquement)Blocks launching a subagent asked to apply the BA audit rules BY HAND over the .smartstack/ba/ corpus (the 394M-token scenario) — mechanical auditing goes through the deterministic /ba-audit-run CLI; prompts citing the engine pass. Disable with BA_AUDIT_GUARD_OFF=1 (user-only) |
appsettings-guard.sh |
PreToolUse (Write) |
Bloque l'écriture de secrets dans appsettings..json (les secrets vont dans appsettings.Local.json, gitignoré)Blocks writing secrets into appsettings..json (secrets belong in the gitignored appsettings.Local.json) |
wsl-dotnet-cleanup.sh |
PostToolUse (Bash) |
Nettoie les processus dotnet orphelins sous WSL après les commandes shellCleans up orphaned dotnet processes on WSL after shell commands |
Le câblage évènement → hook est livré dans hooks.json et fusionné dans par /.claude/settings.jsonss install. Les gardes git-guard/ef-guard/ba-audit-guard ne bloquent que le chemin brut : le chemin sanctionné (/gitflow, /efcore, /ba-audit-run) reste entièrement fonctionnel.
The event → hook wiring ships in hooks.json and is merged into /.claude/settings.json by ss install. The git-guard/ef-guard/ba-audit-guard guards only block the raw path: the sanctioned path (/gitflow, /efcore, /ba-audit-run) remains fully functional.
Personnaliser un hookCustomising a hook
Ne modifiez jamais directement les fichiers de — ils sont écrasés à la prochaine mise à jour. Forkez le hook depuis /.claude/hooks/templates/hooks/ du repo CLI, ou ajoutez un hook complémentaire dans /.claude/settings.local.json.
Never edit the files in directly — they are overwritten on the next update. Fork the hook from /.claude/hooks/templates/hooks/ in the CLI repo, or add a complementary hook in /.claude/settings.local.json.
DiagnosticDiagnostics
ss doctor # vérifie hooks + skills + settings
ss doctor --json # sortie machine