文章标题、开场与阅读钩子优化
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 的指引,安装名为 @user_fccf428b/writing-hookify-rules 的技能。
技能介绍
它要解决的问题
Agent 在自动执行任务时会频繁调用 Bash、Edit、Write 等工具。一旦提示词没有覆盖边界情况,它就可能执行 rm -rf 这类危险命令、把 console.log 留在提交的代码里、直接编辑 .env 敏感文件,或者在缺少测试的情况下宣告任务完成。Hookify 的思路不是给 Agent 增加一套新能力,而是加一层"行为护栏":用纯文本的规则文件描述什么算异常,命中时在工具调用现场给出警告甚至直接阻断。
规则是如何工作的
每条规则是一个带 YAML frontmatter 的 Markdown 文件,存放在 .claude/hookify.{名称}.local.md,Agent 在下一次工具调用时动态读取,改规则不需要重启。frontmatter 的关键字段:
name:kebab-case 标识符,动词开头,如warn-dangerous-rm、block-console-logenabled:布尔开关,设为false即可停用而无需删文件event:触发时机,支持bash、file、stop、prompt或allaction:warn(提示但放行,默认)或block(阻断调用或中止会话)pattern:Python 正则,匹配命令文本或文件改动内容
复杂规则可改用条件列表:field + operator + pattern,操作符包括 regex_match、contains、equals、starts_with 等,所有条件都满足才会触发。frontmatter 之后的正文会原样展示给 Agent,好的提示应说明检测到了什么、为什么有问题、建议怎么改。
适用边界与注意点
这套机制本质是正则匹配而非语义理解,规则写得过宽会频繁误报,写得过细则形同虚设,建议先用 regex101(Python 模式)验证再入库。注意 YAML 双引号字符串里的 \s 要写成双反斜杠,推荐直接用不引号的形式。warn 只是提醒,真正想拦截必须显式写 block。另外别忘了把 .claude/*.local.md 加入 .gitignore,避免本地规则被提交进仓库。
使用场景
- 团队要求 Agent 提交代码前必须先写测试,用 stop 事件检查完成清单,缺测试就提醒补上再结束任务
- 代码仓库禁止提交 console.log,用 file 事件匹配调试代码,在写入前给出提示或阻断保存
- 防止 Agent 误删目录,用 bash 事件拦截 rm -rf 类命令,命中时中止执行并说明风险
- 多人协作项目里禁止改动 .env 等敏感文件,用 file 事件匹配文件路径并警告改用配置模板
适合人员
- 负责多个自动化 Agent 的开发者,需要在无人值守时拦住危险命令和不合规写入
- 在共享仓库上协作的团队,希望用文本规则约束 Agent 的代码修改边界
- 编写 Agent 提示词的工程师,想把安全和质量检查从提示词迁移到可动态调整的规则文件