Skills: 触发器与自动激活
最后更新:2026-08-31
好的 Skill 应该像空气——你需要时它就在,不需要时它不碍事。触发器就是那个"需要时"的开关。
1. 触发器类型
(1) 关键词触发
最常用的触发方式,匹配用户输入中的关键词:
YAML
triggers:
- keyword: "review|审查代码"
- keyword: "debug|调试|排错"
| 匹配规则 | 说明 | 示例 |
|---|---|---|
| 精确匹配 | 完全等于关键词 | "deploy" |
| 模糊匹配 | 包含关键词即可 | "review" 匹配 "请 review 一下" |
| 正则匹配 | 正则表达式 | "fix.*bug" |
| 多关键词 | 任一匹配即触发 | "refactor|重构" |
(2) 文件类型触发
根据操作文件的扩展名或路径自动激活:
YAML
triggers:
- file_pattern: "**/*.py"
- file_pattern: "src/components/**/*.tsx"
(3) 上下文条件触发
根据项目环境或对话状态激活:
YAML
triggers:
- context: "git_diff_available"
- context: "test_failed"
- context: "has_package_json"
2. 触发优先级
当多个 Skill 同时匹配时,按优先级选择:
TEXT
📖 仅展示
优先级从高到低:
1. 手动指定调用(用户明确要求)
2. 关键词精确匹配
3. 上下文条件匹配
4. 文件类型模糊匹配
5. 默认兜底 Skill
(1) 优先级配置
YAML
triggers:
- keyword: "紧急修复"
priority: 100
- keyword: "修复"
priority: 50
(2) 冲突解决
当两个 Skill 竞争时:
TEXT
📖 仅展示
用户输入: "review 这个 Python 文件的 bug"
匹配结果:
├── code-review Skill (keyword: "review") → 优先级 80
├── python-review Skill (keyword: "review" + file: *.py) → 优先级 90 ✅
└── debug Skill (keyword: "bug") → 优先级 70
结果: 选择 python-review,因为它匹配更精确
3. 组合触发器
(1) AND 组合
所有条件同时满足才触发:
YAML
triggers:
- and:
- keyword: "部署"
- context: "main_branch"
(2) OR 组合
任一条件满足即触发:
YAML
triggers:
- or:
- keyword: "测试|test"
- file_pattern: "**/*test*.py"
(3) NOT 排除
满足条件时不触发:
YAML
triggers:
- keyword: "重构"
- not:
- context: "production_branch"
4. 触发器实战
▶ 示例:智能调度系统
Alice 为团队设计了一套自动触发系统:
YAML
# .claude/skills/auto-test.md
---
name: auto-test
triggers:
- and:
- file_pattern: "src/**/*.py"
- context: "file_modified"
- not:
- file_pattern: "src/**/migrations/**"
---
修改 Python 源文件后自动运行测试......
Bob 评价:"这套系统让团队不需要记得调用哪个 Skill——只要正常工作,该来的支援自动就来了。"
(1) 常见触发场景
| 场景 | 触发方式 | 示例 Skill |
|---|---|---|
| 打开某类文件 | 文件类型 | Python 代码审查 |
| 提交代码前 | 上下文条件 | Pre-commit 检查 |
| 测试失败 | 上下文条件 | 自动调试 |
| 输入特定指令 | 关键词 | 部署、发布 |
| PR 创建 | 上下文条件 | 代码审查 |
❓ 常见问题
Q 关键词太多会不会互相冲突?
A 会。建议每个 Skill 用 1-2 个核心关键词,避免大范围重叠。冲突时靠优先级和精确度解决。
Q 上下文条件支持哪些?
A 各平台不同,常见有:git_diff_available、test_failed、branch_name、file_modified、has_config_file 等。
Q 能不能禁用某个 Skill 的自动触发?
A 可以,在配置中设置
auto_trigger: false,该 Skill 只能手动调用。📖 小节
- 三类触发器:关键词、文件类型、上下文条件
- 优先级规则:手动指定 > 精确匹配 > 模糊匹配 > 兜底
- 组合触发器:AND(同时满足)、OR(任一满足)、NOT(排除)
- 设计原则:让 Skill 在需要时自动出现,不需要时不打扰
📝 作业
- 基础题(难度⭐):为之前创建的 code-review Skill 添加两种不同类型的触发器。
- 进阶题(难度⭐⭐):设计一个组合触发器,当修改 Python 测试文件时自动运行测试,但排除迁移文件。
- 挑战题(难度⭐⭐⭐):设计一个团队级触发器调度系统,处理 5+ 个 Skill 之间的优先级和冲突。