Hooks designer
agent-skills
npx -y skills add bingooyong/agent-skills --skill hooks-designerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Design agent hooks: identify hook-worthy moments, define trigger timing, actions, failure handling, and rollback. Use when (1) deciding if a workflow step should be a hook vs inline logic, (2) designing pre/post tool hooks, (3) defining failure strategies and fallback behavior, (4) auditing existing hooks for correctness. Distinguishes hook-worthy capabilities from non-hook capabilities.
SKILL.md
5.7 KB, as published. Nobody here has run it
Hooks 设计 Skill
识别哪些环节适合增加 hooks,设计触发时机、执行动作、失败处理、回退策略。区分应该做成 hooks 的能力和不应该 hook 化的能力。
何时使用
- 想在 agent 工作流的特定环节自动执行某些操作
- 需要设计自动化检查、通知、转换等"旁路"逻辑
- 审计现有 hooks 是否合理、是否有遗漏
- 团队讨论"这个能力应该做成 hook 还是别的方式"
不适用:核心业务逻辑设计、用户界面设计、与 agent 工作流无关的自动化。
Hooks 适用性判断
应该做成 hook 的场景
| 特征 | 示例 |
|---|---|
| 在固定时机触发 | 每次提交前、每次文件修改后、每次测试运行后 |
| 动作可独立于主流程 | lint 检查不影响代码生成逻辑 |
| 需要一致地应用于所有场景 | 所有 PR 都需要格式化 |
| 失败时有明确的处理策略 | lint 失败 → 阻止提交 |
| 跨项目可复用 | 同一个 hook 可用于多个项目 |
不应该做成 hook 的场景
| 特征 | 示例 | 应该怎么做 |
|---|---|---|
| 只在特定上下文触发 | 只在某个项目的某次任务中需要 | 内联逻辑 |
| 依赖复杂的运行时状态 | 需要知道用户当前的心理模型 | 对话中手动执行 |
| 动作本身是核心流程 | 代码生成、文件编辑 | 主流程的一部分 |
| 无法定义明确的失败策略 | "感觉不对就停下来" | 人工判断 |
| 触发频率过高导致干扰 | 每次字符输入都触发 | 调整触发时机 |
输入
| 输入 | 说明 | 必需 |
|---|---|---|
| 工作流描述 | agent 的典型工作流程 | 是 |
| 痛点或需求 | 希望自动化的环节 | 是 |
| 现有 hooks | 已有的 hook 配置(若存在) | 否 |
| 技术约束 | 使用的 agent 平台、可用的 hook 类型 | 否 |
输出
- Hook 设计方案:每个 hook 的完整定义
- 触发时机与条件
- 执行动作与参数
- 失败处理策略
- 回退方案
- 适用性分析:为什么这个能力适合/不适合做成 hook
- 配置文件内容(可直接使用的 JSON/YAML)
执行步骤
1. 梳理工作流
- 列出 agent 的典型工作流步骤
- 标注每个步骤的输入、输出、可能的失败点
- 识别用户提到的痛点和期望自动化的环节
2. 识别 hook 候选点
对工作流中的每个环节,判断是否需要 hook:
1. 这个环节是否有固定的触发时机? → 是:继续;否:不适合 hook
2. 触发时的动作是否明确可定义? → 是:继续;否:不适合 hook
3. 动作是否独立于主流程? → 是:继续;否:考虑内联
4. 失败时是否有明确处理策略? → 是:继续;否:需补充策略
5. 这个 hook 是否跨项目可复用? → 是:通用 hook;否:项目级 hook
3. 设计每个 hook
对每个确认的 hook,定义:
hook-name: string # 小写短横线命名
trigger:
event: string # 触发事件(如 pre-commit, post-edit)
condition: string # 触发条件(可选,如 "仅对 .ts 文件")
action:
command: string # 执行的命令或动作
timeout: number # 超时时间(秒)
params: object # 参数(可选)
failure:
strategy: block | warn | skip # 失败策略
message: string # 失败时的提示消息
retry: number # 重试次数(可选)
rollback:
enabled: boolean # 是否有回退操作
action: string # 回退动作(可选)
metadata:
scope: global | project # 作用范围
priority: number # 执行优先级
description: string # 一句话说明
4. 失败策略设计
| 策略 | 适用场景 | 行为 |
|---|---|---|
| block | 必须通过的检查(lint、安全扫描) | 阻止后续操作,显示错误 |
| warn | 建议但不强制(性能建议、风格提醒) | 显示警告,允许继续 |
| skip | 尽力而为的操作(通知、日志记录) | 失败时跳过,不影响主流程 |
5. 输出配置
生成可直接使用的配置内容:
{
"hooks": {
"pre-commit": [
{
"command": "pnpm lint",
"timeout": 30,
"failure": "block",
"message": "Lint 检查未通过,请修复后再提交"
}
],
"post-edit": [
{
"matcher": "*.ts",
"command": "pnpm typecheck",
"timeout": 60,
"failure": "warn",
"message": "类型检查发现问题"
}
]
}
}
边界与非目标
- 不做具体的 shell 脚本编写(只设计 hook 的配置和策略)
- 不做替代 agent 的核心工作流设计
- 不做CI/CD pipeline 设计(这是不同的关注点,虽然概念相似)
- 不做hooks 的运行时实现
- 专注于设计,实现交给具体的 agent 平台
验收标准
- 每个 hook 都有明确的触发时机、动作和失败策略
- 适用性判断有理有据,不是所有东西都设计成 hook
- 失败策略与 hook 的重要性匹配(关键检查用 block,建议性用 warn)
- 配置内容可直接复制到目标平台使用
- 设计方案中区分了通用 hook 和项目级 hook