news 2026/9/10 10:11:00

ECC 的 /hookify-list 命令实战:列出与审计所有已配置的 Hookify 拦截规则

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ECC 的 /hookify-list 命令实战:列出与审计所有已配置的 Hookify 拦截规则

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

在 ECC(The 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 中的五个字段:

字段必填取值语义
namekebab-case 字符串规则唯一标识符,建议动词开头(warn-*block-*require-*
enabledtrue/false启停开关,可"停用而不删除"
eventbash/file/stop/prompt/all决定规则挂接到哪类 hook 事件
actionwarn/blockwarn(默认)仅提示;block阻止操作继续
pattern是*正则字符串匹配模式(*复杂规则可改用 conditions 多条件结构)

action字段在 commands/hookify-list.md 中虽被读取,但默认行为是warn:触发时只显示正文消息,不中断流程;只有显式写成block才会真正拦截。

Step 3:渲染为审计表格

解析完成后,/hookify-list将结果渲染为如下固定列结构的表格(列定义直接来自命令定义):

RuleEnabledEventPatternFile
规则名是否启用事件类型匹配模式规则文件路径

一个典型输出示例(规则文件为假设内容,仅用于展示表格形态):

RuleEnabledEventPatternFile
warn-rm-rftruebashrm\s+-rf.claude/hookify.warn-rm-rf.local.md
block-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_pathnew_textold_textcontentprompt事件用user_prompt。操作符包括regex_matchcontainsequalsnot_containsstarts_withends_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 --- You're 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+-rf
  • YAML 转义注意:不带引号的 pattern 中\s直接书写即可;带引号的字符串需要\\s
  • 部署前先本地验证正则:python3 -c "import re; print(re.search(r'your_pattern', 'test text'))"

常见危险模式参考(bash 事件):rm\s+-rfdd\s+if=mkfssudo\s+chmod\s+777;文件安全参考(file 事件):eval\(innerHTML\s*=\.env$\.pem$

4. 与创建/配置命令的协同:规则全生命周期

/hookify-list不是孤立命令,它是 hookify 规则生命周期中的"审计节点":

  1. 创建(commands/hookify.md):/hookify [行为描述]生成规则。不带参数时,它会调用 conversation-analyzer Agent 分析当前会话,挖掘"值得预防的行为"——包括显式纠正、对重复错误的挫败反应、被回退的改动、反复出现的同类问题;随后向用户展示行为描述、拟议事件类型、拟议模式与拟议动作,用户确认后落盘为.claude/hookify.{name}.local.md
  2. 审计(本文主题,commands/hookify-list.md):只读列出全部规则、计数、提示管理入口。
  3. 启停(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 中hookifyhookify-listhookify-configurehookify-help四条命令均有登记,路径分别指向commands/hookify.mdcommands/hookify-list.mdcommands/hookify-configure.mdcommands/hookify-help.md,可据此核对命令与定义文件的一一对应关系;
  • 打包分发:package.json 的打包清单中包含skills/hookify-rules/,说明规则编写技能随插件一起分发,安装后即可在会话中请求"写一条 hookify 规则"获得语法与模式指导;
  • 插件生态定位:plugins/README.md 将hookify列为推荐的 Development 类插件("Create hooks conversationally");the-shortform-guide.md 也给出了同样的建议——用hookify插件以对话方式创建 hook,替代手写 hook JSON,并在其 hook 章节展示了 PostToolUse hook 的反馈示例;
  • 帮助命令/hookify-help(commands/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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/10 10:10:49

CANN/ge算子属性设置接口

aclgrphSetOpAttr 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFl…

作者头像 李华
网站建设 2026/9/10 10:08:15

CANN/ge类型转换API文档

CreateFrom 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、TensorFlow 前端…

作者头像 李华
网站建设 2026/9/10 10:07:38

Wand-Enhancer 完整指南:5 步免费解锁 Wand 专业版的本地补丁

Wand-Enhancer 完整指南:5 步免费解锁 Wand 专业版的本地补丁 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer Wand 客户端一更新&#…

作者头像 李华
网站建设 2026/9/10 10:07:19

GE图引擎:aclGetTensorDescName API

aclGetTensorDescName 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Tens…

作者头像 李华
网站建设 2026/9/10 10:03:21

计算机单片机毕设实战-基于 STM32 的蓝牙 APP 智能坐姿监测座椅系统设计 基于 STM32 的超声波坐姿检测与座椅调节系统实现(018407)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

作者头像 李华