再次确认:执行前,它都查一遍规则

Claude 决定调用某个工具时,系统在真正执行前会走一套判断流程:

Claude 决定调用工具(如 Bash("rm temp.txt"))
  ↓
第一关:权限模式检查
  ├── bypassPermissions?→ 直接执行,跳过所有检查
  └── 其他模式 → 继续
  ↓
第二关:规则匹配
  ├── 找到 allow 规则?→ 自动执行
  ├── 找到 deny 规则? → 直接拒绝,返回错误给 Claude
  └── 无匹配规则 → 继续
  ↓
第三关:Hook 检查(见第五节)
  ├── PreToolUse hook 返回 block?→ 拒绝
  └── 通过 → 继续
  ↓
第四关:工具自身的 checkPermissions()
  ├── 工具判断危险?→ 弹出确认框
  └── 安全 → 执行
  ↓
执行工具
  ↓
PostToolUse hook 执行(事后处理)

当弹出确认框时,用户看到的提示消息由 createPermissionRequestMessage() 生成,会准确说明是哪条规则要求确认,或哪个 Hook 触发了拦截。