什么是 Hook？	在循环中的确定性代码，能保证比运行时格式化更可靠。
Pre-tool use Hook 和 Post-tool use Hook 的触发时机分别是什么？	Pre-tool use 在工具调用前触发；Post-tool use 在工具调用成功后触发。
在 Hook 中，返回 JSON 并退出代码 0 表示什么？	成功，Claude 会解析该 JSON。
在 Hook 中，退出代码 2 的作用是什么？	表示阻塞错误或停止 (Blocking error/stop)。
如何在 Pre-tool use Hook 中实现对工具调用的修改（如移除秘密）？	返回更新后的输入 (updated input)，替换整个输入对象。
哪些 Hook 事件用于在 Claude 进行上下文压缩后重新注入上下文？	使用 Session start Hook 配合 compact matcher。
Stop 和 Refuse 这两个 Hook 的主要功能是什么？	Stop 用于结束 Claude 的回合；Refuse 用于在条件不满足时拒绝执行。
除了 JSON，Hook 还可以通过什么方式返回数据？	通过退出代码 (exit codes) 来返回数据。
