ECC 的 /hookify-list 命令实战:列出与审计所有已配置的 Hookify 拦截规则
发布时间:2026/9/10 10:11:09 作者:尧图编辑部 阅读量:1,286

ECC 的 /hookify-list 命令实战列出与审计所有已配置的 Hookify 拦截规则【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC在 ECCThe agent harness performance optimization system中hookify 是一套通过声明式规则文件拦截 Claude Code 等 Agent 不当行为的防护机制而/hookify-configure与其配套的/hookify命令负责创建规则、/hookify-list则负责回答一个关键运维问题当前项目里到底配置了哪些拦截规则、哪些处于启用状态、分别匹配什么模式。读完本文你将掌握/hookify-list的完整工作流程查找规则文件、解析 frontmatter、渲染审计表格、给出管理提示、hookify 规则文件的字段语义与事件类型以及如何配合其他命令完成规则的全生命周期管理。1. /hookify-list 的定位hookify 三件套中的审计视图在 ECC 的命令体系中hookify 相关命令共三个注册信息见 docs/COMMAND-REGISTRY.json命令职责注册描述/hookify [description]创建新规则Create hooks to prevent unwanted behaviors from conversation analysis or explicit instructions/hookify-list列出全部已配置规则List all configured hookify rules/hookify-configure交互式启停规则Enable or disable hookify rules interactively/hookify-list本身是一个只读命令它不修改任何文件只负责发现 解析 展示 提示。在 docs/COMMAND-REGISTRY.json 中该命令的type被标记为generalprimaryAgents为空数组意味着它不绑定特定 Agent可在任意会话中直接调用。2. /hookify-list 的四步工作流程以下内容完整继承自命令定义 commands/hookify-list.md并结合仓库其他文档做了参数层面的补充。Step 1查找所有规则文件命令的第一步是在项目根目录的.claude/下按 glob 模式发现规则文件.claude/hookify.*.local.md命名约定有三个要点见 skills/hookify-rules/SKILL.md 的 File Organization 章节位置项目根目录的.claude/目录命名hookify.{descriptive-name}.local.md其中descriptive-name是规则标识符版本控制约定.local.md后缀表明这是本地生效的规则建议把.claude/*.local.md加入.gitignore避免个人化拦截规则污染仓库共享配置。Step 2解析每个文件的 frontmatter对发现的每个规则文件/hookify-list需要读取其 YAML frontmatter 中的五个字段字段必填取值语义name是kebab-case 字符串规则唯一标识符建议动词开头warn-*、block-*、require-*enabled是true/false启停开关可停用而不删除event是bash/file/stop/prompt/all决定规则挂接到哪类 hook 事件action否warn/blockwarn默认仅提示block阻止操作继续pattern是*正则字符串匹配模式*复杂规则可改用 conditions 多条件结构action字段在 commands/hookify-list.md 中虽被读取但默认行为是warn触发时只显示正文消息不中断流程只有显式写成block才会真正拦截。Step 3渲染为审计表格解析完成后/hookify-list将结果渲染为如下固定列结构的表格列定义直接来自命令定义RuleEnabledEventPatternFile规则名是否启用事件类型匹配模式规则文件路径一个典型输出示例规则文件为假设内容仅用于展示表格形态RuleEnabledEventPatternFilewarn-rm-rftruebashrm\s-rf.claude/hookify.warn-rm-rf.local.mdblock-env-writefalsefile\.env$.claude/hookify.block-env-write.local.md这张表格的设计意图是一眼审计Enabled列快速定位被静默禁用的规则Event列判断规则的触发面File列给出可直接打开编辑的落盘路径避免审计时再反查文件名。Step 4输出计数并提示后续操作命令的最后一步是汇总规则总数并提醒用户规则的启用/禁用状态可以稍后通过/hookify-configure交互式修改。这一步把只读审计和写操作解耦——/hookify-list从不改动enabled:字段写权限统一收口到/hookify-configure其流程是同样先发现全部hookify.*.local.md文件、读取当前状态、交互询问要切换哪些规则、更新enabled:字段、最后确认变更见 commands/hookify-configure.md。3. 规则文件的完整格式/hookify-list 解析对象的解剖理解/hookify-list展示的每一列前提是理解被解析的文件本身。规则文件是YAML frontmatter 正文提示消息结构的 Markdown 文件完整格式见 commands/hookify-help.md 与 skills/hookify-rules/SKILL.md--- name: descriptive-name enabled: true event: bash|file|stop|prompt|all action: block|warn pattern: regex pattern to match --- 规则触发时显示的消息。 支持多行与 Markdown 格式。正文部分即规则命中后展示给 Agent / 用户的提示文案可包含警告、建议与 Markdown 排版。事件类型event 字段语义/hookify-list表格中的Event列取以下五个值之一各自对应 Claude Code 的不同 hook 触发点event触发时机pattern 匹配对象bashBash 工具调用时完整命令字符串fileWrite/Edit 文件工具调用时文件路径或多条件下的file_path/new_text等字段stop会话结束时.*恒匹配用于收尾检查与提醒prompt用户消息提交时用户输入内容all所有事件依事件而定进阶结构conditions 多条件除了单pattern规则文件还支持conditions数组表达多字段、多操作符的复合匹配所有条件同时满足才触发。字段可用范围按事件划分bash事件用commandfile事件用file_path、new_text、old_text、contentprompt事件用user_prompt。操作符包括regex_match、contains、equals、not_contains、starts_with、ends_with。--- name: warn-env-api-keys enabled: true event: file conditions: - field: file_path operator: regex_match pattern: \.env$ - field: new_text operator: contains pattern: API_KEY --- Youre adding an API key to a .env file. Ensure this file is in .gitignore!这类复杂规则在/hookify-list的表格中会退化展示event与文件路径pattern列无单值可显示这正是File列保留完整路径的价值审计者点开文件即可看到完整 conditions。模式编写与校验技巧skills/hookify-rules/SKILL.md 的 Pattern Writing Tips 章节给出了可直接套用的经验转义特殊字符.写\.(写\(\s空白、\d数字、\w单词字符一次或多次、*零次或多次、?可选、|或运算过宽的陷阱log会误伤 login、dialog应写console\.log\(过窄的陷阱rm -rf /tmp只能命中单一路径应写rm\s-rfYAML 转义注意不带引号的 pattern 中\s直接书写即可带引号的字符串需要\\s部署前先本地验证正则python3 -c import re; print(re.search(ryour_pattern, test text))。常见危险模式参考bash 事件rm\s-rf、dd\sif、mkfs、sudo\s、chmod\s777文件安全参考file 事件eval\(、innerHTML\s*、\.env$、\.pem$。4. 与创建/配置命令的协同规则全生命周期/hookify-list不是孤立命令它是 hookify 规则生命周期中的审计节点创建commands/hookify.md/hookify [行为描述]生成规则。不带参数时它会调用 conversation-analyzer Agent 分析当前会话挖掘值得预防的行为——包括显式纠正、对重复错误的挫败反应、被回退的改动、反复出现的同类问题随后向用户展示行为描述、拟议事件类型、拟议模式与拟议动作用户确认后落盘为.claude/hookify.{name}.local.md。审计本文主题commands/hookify-list.md只读列出全部规则、计数、提示管理入口。启停commands/hookify-configure.md交互式切换enabled:字段/hookify-list结尾的提示语remind the user that/hookify-configurecan change state later正是把审计结果导向此步骤。三者的职责边界清晰/hookify写新文件、/hookify-configure改已有文件、/hookify-list只读——这种设计让查看这一最高频操作零风险。5. 仓库中的佐证与扩展入口命令注册docs/COMMAND-REGISTRY.json 中hookify、hookify-list、hookify-configure、hookify-help四条命令均有登记路径分别指向commands/hookify.md、commands/hookify-list.md、commands/hookify-configure.md、commands/hookify-help.md可据此核对命令与定义文件的一一对应关系打包分发package.json 的打包清单中包含skills/hookify-rules/说明规则编写技能随插件一起分发安装后即可在会话中请求写一条 hookify 规则获得语法与模式指导插件生态定位plugins/README.md 将hookify列为推荐的 Development 类插件Create hooks conversationallythe-shortform-guide.md 也给出了同样的建议——用hookify插件以对话方式创建 hook替代手写 hook JSON并在其 hook 章节展示了 PostToolUse hook 的反馈示例帮助命令/hookify-helpcommands/hookify-help.md提供事件类型、文件格式、命令清单与模式技巧的完整速查是/hookify-list表格各列取值范围的权威出处。6. 适用前提与小结适用前提hookify 规则文件位于项目根目录的.claude/下且遵循hookify.*.local.md命名规则通过 Claude Code 的 hook 系统在运行时消费/hookify-list本身只做发现、解析与展示不触达 hook 执行链路。小结/hookify-list是 ECC hookify 体系中的只读审计命令其工作流为glob 发现hookify.*.local.md→ 解析name/enabled/event/action/pattern五个 frontmatter 字段 → 渲染五列审计表格Rule | Enabled | Event | Pattern | File→ 输出计数并提示用/hookify-configure变更状态。掌握它与/hookify、/hookify-configure的分工再结合 skills/hookify-rules/SKILL.md 中的规则格式、事件类型与模式编写技巧即可在 Agent 驱动的开发流程中建立一套可审计、可启停的行为拦截规则库。【免费下载链接】ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.项目地址: https://gitcode.com/GitHub_Trending/ev/ECC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考