[控场AI]
概念PreToolUse Hook

PreToolUse hook

Claude Code 提供的一种钩子机制,在权限规则评估之前执行,可读取完整工具输入并通过退出码强制阻断工具调用,用于弥补字符串匹配规则的不足

时间轴 (近 90 天)

10月18日

PreToolUse hook 在权限规则评估之前执行,可通过退出码 2 强制阻断工具调用,且该阻断优先于 allow 规则。

待验证50%
10月18日

一个 PreToolUse hook 在加入后能阻断全部 22 种测试命令,且不影响正常的特性分支推送。

待验证50%
10月18日

修复 hook 的工作分三步:按 &&、||、;、|、换行、$(...) 和反引号拆分命令;丢弃环境变量前缀和 env、timeout、xargs、nohup、exec 等包装器并递归进入 sh -c、eval 和脚本;跳过 git 全局选项后检查标志和 refspec。

待验证50%
10月18日

PreToolUse hook 从 stdin 接收包含工具名和输入的 JSON,退出码 0 表示放行并继续正常权限流程,退出码 2 表示硬阻断,其他非零退出码通常视为错误。

待验证50%
10月18日

该 PreToolUse hook 附带 52 个 Vitest 用例(39 个应阻断、12 个应放行,外加当前分支检查)。

待验证50%
10月14日

PreToolUse 和 PostToolUse hook 分别在工具执行前、后拦截,与 Stop hook 共同构成循环内的策略注入点。

待验证50%

全部知识事实 (6)

来源文章