Hookify 规则编写器
为 Claude Code 编写可匹配、可控制的 Hookify 规则
技能仅指导创建本地 Markdown 规则,没有声明外部服务、凭据或数据上传,且说明了匹配字段,支持一定的数据流透明度;但规则可阻止工具操作或停止会话,未要求用户确认,也未提供回滚、审计或误拦截恢复流程,永久禁用方式还是删除文件,因此扣分。
格式、字段、事件和工作流说明基本一致,且包含常见陷阱;但 action 字段只在说明中出现,示例未展示,未提供已提交的针对解析、匹配和异常输入的测试,规则实际生效行为及错误反馈也未被验证,因此静态评分受限并扣分。
触发短语、目标用户任务、事件类型和字段范围较明确,适用于编写 hookify 规则;但没有清楚说明不适用场景、版本兼容边界、完整输入约束或中文触发语义,且复杂规则和实际运行环境的适配证据有限,因此扣分。
文档按概览、格式、事件、模式、组织和工作流分层,提供示例、命名约定和部分限制说明;但仅有 0.1.0 版本,没有 changelog、维护责任人、更新路径、依赖/安装说明或故障排查 FAQ,外部 examples 路径也未在给定材料中验证,因此扣分。
内容能够覆盖创建、修改和禁用规则的核心任务,并给出可直接改写的 frontmatter、模式和消息示例;但没有实际可复现输出或执行证据,action/解析语义存在不确定性,用户仍需自行测试和处理误匹配,因此按静态上限给分并扣分。
SKILL.md 本身可审阅,包含具体格式和示例,但没有针对该技能关键路径的测试套件、CI 覆盖或第三方执行证据;仓库工作流材料未证明此技能被验证,因此仅给有限可追溯性分数。
- 创建 block 规则前应明确征得用户同意,并保留可恢复的禁用或回滚路径。
- 应在目标 Claude Code/hookify 版本中验证 action、事件字段和 Python 正则行为,尤其是复杂 conditions。
- 不要依赖在线正则测试器处理敏感命令、路径或代码;优先使用本地测试并检查误匹配。
它能做什么 & 适用场景
该技能指导用户创建和维护 Hookify 规则。规则是带 YAML frontmatter 的 Markdown 文件,存放在项目的 `.claude/` 目录中,用于匹配 Bash 命令、文件编辑、停止事件或用户提示。它涵盖简单正则规则、多条件规则、警告与阻止动作,以及规则测试和禁用方法。它适合需要在 Claude Code 中增加安全提醒、编码规范检查或完成前检查的用户。
指导用户选择事件类型,编写 Python 正则表达式或多条件匹配规则,并创建 .claude/hookify.{name}.local.md 文件。它说明如何设置规则名称、启用状态、事件、匹配字段、操作和触发后的 Markdown 消息。它还提供使用 python3 测试正则表达式、动态调整规则以及通过 enabled: false 禁用规则的方法。
- 开发者希望在执行 `rm -rf`、`sudo` 或危险权限命令时显示警告或阻止操作。
- 团队希望在编辑 TypeScript 文件时提醒 `console.log` 或潜在的安全风险。
- 维护者希望在修改 `.env`、凭据或证书文件时触发提醒。
- 项目负责人希望在代理停止前显示测试、构建和文档检查清单。
- 需要配置 Hookify 的 Claude Code 用户希望为用户提示内容添加部署前检查。
优缺点一览
- 覆盖 Bash、文件编辑、停止和提示等多种事件。
- 同时说明简单正则和多条件规则格式。
- 提供规则命名、测试、调整和禁用的完整工作流。
- 可配置 `warn` 或 `block` 动作,并支持 Markdown 提示消息。
- 内容明确围绕 Claude Code 的 Hookify 文件和事件机制,迁移到其他平台需要适配。
- 源材料未提供独立测试套件或跨平台验证证据。
- 它提供规则编写指导,不包含独立的规则执行程序。
- 安装信息没有给出该具体技能对应的插件名称。
如何安装
该技能位于仓库的 plugins/hookify/skills/writing-rules/SKILL.md。README 说明整个插件集合可通过 Claude Code 安装,命令格式为 /plugin install {plugin-name}@claude-plugins-official;源材料没有给出该技能对应的具体 {plugin-name},因此无法提供更精确的安装命令。
如何使用
向 Claude Code 提出“create a hookify rule”“write a hook rule”“configure hookify”或“add a hookify rule”,即可请求该技能的指导。随后在项目根目录创建 .claude/hookify.{descriptive-name}.local.md,加入 YAML frontmatter 和触发消息;规则会在下一次工具使用时读取。可用事件包括 bash、file、stop、prompt 和 all。