Agent Skills
返回列表
💻

Latch · Claude Code 钩子管理

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/latch。

技能介绍

为什么需要 Latch

在 Claude Code 里,CLAUDE.md 和规则指令是软约束:长会话、歧义或提示注入下,「每次都要做 X」「绝不做 Y」很容易落空。真正可执行的硬边界应落在 钩子(hooks) 上——PreToolUse 的 permissionDecision: "deny" 甚至在 bypassPermissions 下也能拦截工具调用。但钩子涉及 26 种生命周期事件、匹配器、settings.json 合并层级,以及 command / prompt / http / agent 四种类型;配错事件名会静默不触发,并行钩子还会让 updatedInput 行为不可预测。

Latch 把一次会话的任务收窄为三类交付:提出方案(PROPOSE)、写入配置(CONFIGURE)、排查故障(DEBUG)。它不替你去改业务代码,只留在钩子领域,并按 SCAN → PROPOSE → IMPLEMENT → VERIFY → MAINTAIN 走完整闭环。

核心能力与工作方式

  • 事件与匹配器选型:对照事件目录,优先选最窄事件;避免在 PreToolUse 上滥用 *;质量关卡用 Stop / SubagentStop,而非每次编辑后硬拦 Write。
  • PreToolUse 决策语义:allow / deny / ask / defer;阻塞用 exit 2 且 stderr 走 JSON 协议;updatedInput 只能与 allow 配对,且同一工具仅允许一个 PreToolUse 改输入。
  • 食谱式子流程:configure(默认)、debug、pretool、posttool,以及 notification、sessionstart、security、quarantine、skill-telemetry 等专题;自然语言关键词会路由到对应食谱或 PROPOSE。
  • 实现纪律:改前备份 ~/.claude/settings.json,用 /hooks 看现有配置,jq 校验 JSON,提醒重启会话;生产钩子设显式 timeout;命令钩子用 set -uo pipefail,不用 set -e。

与生态的分工也写死在边界里:CI/GitHub Actions 找 Gear/Pipe,Shell/编辑器找 Hearth,代码审查找 Judge,MCP/应用层安全分析找 Sentinel,项目技能脚手架找 Sigil。

适用边界与注意点

  • 任何 exit 2 或 permissionDecision: "deny" 的阻塞钩子 必须先说明理由并确认(ONBLOCKINGHOOK)。
  • 仅在 Edit|Write 上拦文件不够:Bash 重定向仍可写盘,需配对匹配写文件命令的 Bash 钩子。
  • 不要假设同匹配器组内钩子顺序——并行执行;高频事件上钩子数量与延迟要控(command 目标约 ≤200ms)。
  • JSON 里 command 路径不要用 $HOME 等未展开变量;勿从不可信仓库直接克隆含钩子的配置——首次会话启动即可能 RCE。
  • 插件侧用 hooks/hooks.json;技能/代理前置元数据里的钩子只绑定组件生命周期,结束即清理。

使用场景

  • 在 Claude Code 里跑自动化改仓,需要 PreToolUse 拦截对 main 的 force-push、rm -rf / 等 Bash 再执行。
  • PostToolUse 钩子延迟高或误触发,要用 /hooks、claude --debug 和 stdin 手测定位匹配器与 timeout。
  • 新会话希望 SessionStart 注入分支/CI 状态与 CLAUDE.md 摘要,避免每轮手动贴上下文。
  • 合规要求 MCP 删改操作可审计,需设计 PreToolUse deny/ask 并配 HTTP webhook 写外部日志。

适合人员

  • 负责 Claude Code 落地、要把「禁止写 .env/密钥文件」从 CLAUDE.md 迁到硬拦截钩子的平台或 DevOps 工程师
  • 关注 Skill/插件供应链,要在 SessionStart 与 PreToolUse 配 quarantine、安装关卡的安全或治理工程师
  • 维护项目共享 .claude/settings.json,需合并匹配器、控并行钩子数量并做 JSON 校验的技术负责人
  • 使用 Agent Teams,要用 TaskCreated/TaskCompleted 或 Stop 钩子做任务命名与完成质量关卡的工程 lead