Skill 技能系统完全指南(八):进阶技巧——条件触发、多语言支持与 Agent/Workflow 配合
title: Skill 技能系统完全指南(八)进阶技巧——条件触发、多语言支持与 Agent/Workflow 配合
date: 2026-07-10
category: AI 开发工具
tags: [Claude Code, Skill, 进阶, 条件触发, 多语言, Agent, Workflow]
Skill 技能系统完全指南(八):进阶技巧——条件触发、多语言支持与 Agent/Workflow 配合
系列终篇。当你已经熟练编写和共享 Skill 后,这些进阶技巧能让你的 Skill 更加智能、更加强大。条件触发、多语言适配、与 Agent/Workflow 的深度协作——让你的 Skill 从"能用"升级到"好用"。
前言
这是 Skill 技能系统系列的最后一篇。在前面的 7 篇中,我们:
- 认识了 Skill 系统(第 1 篇)
- 学会了自定义 Skill 开发(第 2 篇)
- 掌握了 Skill 编排与组合(第 3 篇)
- 编写了 3 个实战 Skill:DevOps 部署、代码质量、文档生成(第 4-6 篇)
- 学习了团队共享与版本管理(第 7 篇)
本篇作为收官,带来 4 个进阶技巧,帮你把 Skill 系统推到极致。
一、条件触发:让 Skill 更聪明
1.1 什么是条件触发?
普通的 Skill 只要匹配到关键词就会触发。但有时候我们希望 Skill 在特定条件下才触发,在其他条件下静默。
1.2 场景:只在提交前触发 Lint 检查
---
name: pre-commit-lint
description: 提交前自动执行 Lint 检查,仅在有未暂存文件时触发
trigger: 提交前检查, pre-commit, 提交 lint
condition: 检测到 git diff 或 git status 有变更
---
# 提交前 Lint 检查 Skill
## 触发条件
仅在以下情况激活:
- 当前有未暂存的代码变更(git status 有 modified/added 文件)
- 用户提到"提交"、"commit"、"pre-commit"等关键词
如果没有代码变更,不激活此 Skill,直接提示"没有检测到代码变更"。
## 执行流程
### 步骤 1: 检查是否有变更
```bash
git status --porcelain
如果输出为空,跳过后续步骤。
步骤 2: 确定变更的文件类型
# 前端文件
git diff --name-only --cached | grep -E '\.(vue|ts|js)$'
# 后端文件
git diff --name-only --cached | grep -E '\.(java)$'
步骤 3: 针对性执行 Lint
- 如果有
.vue/.ts/.js文件 → 执行前端 Lint - 如果有
.java文件 → 执行后端 Checkstyle - 如果都没有 → 提示"没有可检查的代码文件"
步骤 4: 报告结果
📋 Pre-commit 检查报告
━━━━━━━━━━━━━━━━━━━━━
变更文件:
- src/views/UserList.vue
- src/api/user.ts
- src/types/user.ts
前端 Lint:✅ 0 error, 1 warning
warning: UserList.vue:45 - 建议使用 v-slot 代替 slot 语法
后端 Checkstyle:✅ 无变更
━━━━━━━━━━━━━━━━━━━━━
可以安全提交。
1.3 条件表达式
在 Skill 中可以使用伪代码描述条件:
## 条件逻辑
IF 当前分支 == main AND 操作 == 部署
→ 要求二次确认
IF 有 .env 文件变更
→ 检查是否包含敏感信息(密码、密钥)
IF 测试失败次数 > 3
→ 标记为 flaky test,建议暂时禁用
二、多语言支持
2.1 多语言 Skill
同一个 Skill 可以支持多种语言输出,根据用户的输入语言自动切换。
---
name: i18n-assistant
description: 多语言翻译和国际化助手,支持中英文互译
trigger: 翻译, translate, i18n, 国际化, 多语言
---
# 多语言翻译 Skill
## 角色定义
你是一个专业的多语言翻译助手,精通中英文技术术语翻译。
## 支持的语言对
| 源语言 | 目标语言 | 场景 |
|--------|---------|------|
| 中文 | 英文 | 国际化文案、API 文档 |
| 英文 | 中文 | 技术文档翻译、错误提示 |
| 中文 | 日文 | 日本站点适配 |
| 中文 | 韩文 | 韩站点适配 |
## 翻译规则
### 技术术语翻译表
| 中文 | English | 日本語 | 한국어 |
|------|---------|--------|--------|
| 用户 | User | ユーザー | 사용자 |
| 登录 | Login | ログイン | 로그인 |
| 注册 | Register | 登録 | 등록 |
| 密码 | Password | パスワード | 비밀번호 |
| 错误 | Error | エラー | 오류 |
| 成功 | Success | 成功 | 성공 |
### 命名规范
- 键名使用 snake_case:`user_login_success`
- 值使用自然语言:`ログインに成功しました`
- 变量占位符使用 ICU 格式:`{userName}、{totalCount}`
## 输出格式
生成 `src/locales/{lang}.ts` 文件:
```typescript
// src/locales/en.ts
export default {
common: {
search: 'Search',
reset: 'Reset',
confirm: 'Confirm',
},
user: {
loginSuccess: 'Login successful',
loginFailed: 'Login failed',
logout: 'Logout',
},
}
自动检测
扫描项目中所有 .vue 文件,提取硬编码的中文字符串,
生成需要翻译的清单:
📋 待翻译文本清单
━━━━━━━━━━━━━━━━━━━━━
| 文件 | 行号 | 中文文本 | 建议键名 |
|------|------|---------|---------|
| UserList.vue | 23 | 用户管理 | user.management |
| UserList.vue | 56 | 搜索 | common.search |
| Login.vue | 12 | 请输入密码 | user.passwordPlaceholder |
共发现 15 处硬编码文本,建议全部抽离为国际化键。
### 2.2 多语言 Skill 提示词
Skill 本身的提示词也可以写成多版本:
```markdown
## 多语言提示词
根据用户的输入语言,自动选择对应的提示词版本:
- 用户说中文 → 使用中文提示词执行
- 用户说英文 → 使用英文提示词执行
- 用户混用 → 优先使用用户首次出现的语言
但代码注释和输出始终使用英文(技术通用语言)。
三、与 Agent 的深度配合
3.1 Skill 调用 Agent
Skill 在执行过程中可以动态派出 Agent 完成子任务:
---
name: fullstack-feature
description: 全栈功能开发:同时派前端 Agent 和后端 Agent 并行开发
trigger: 全栈开发, fullstack, 前后端同时开发
---
# 全栈功能开发 Skill
## 角色定义
你是一个全栈开发编排器。当你收到功能需求时,
自动拆分为前端和后端子任务,派出对应的 Agent 并行开发。
## 执行流程
### 步骤 1: 需求分析
理解用户的需求,拆分为前端任务和后端任务。
### 步骤 2: 并行开发
同时派出:
- Frontend Agent:负责 Vue 组件、API 调用、路由配置
- Backend Agent:负责 Controller、Service、Mapper、SQL
### 步骤 3: 接口对齐
确保前后端使用的字段名、数据类型、URL 路径完全一致。
### 步骤 4: 联调验证
启动前后端服务,验证功能是否正常。
## 示例
用户输入:
帮我做一个设备列表页面,包含搜索、表格、分页、详情弹窗
Skill 自动拆解:
Backend Agent 任务:
- GET /api/devices — 分页查询设备列表
- GET /api/devices/:id — 查询设备详情
- 返回字段:id, name, model, status, createTime
Frontend Agent 任务:
- src/views/Device/List.vue — 设备列表页面
- src/api/device.ts — API 调用函数
- src/types/device.ts — 类型定义
两个 Agent 并行开发,完成后自动联调。
3.2 Skill 定义 Agent
Skill 中可以定义专用的 Agent 角色:
## 专用 Agent 定义
### Security Agent
职责:专门审查安全相关问题
触发:当 Skill 检测到安全风险时,派出 Security Agent 深入审查
### Performance Agent
职责:专门分析性能问题
触发:当 Skill 检测到慢查询或大量 DOM 操作时,派出 Performance Agent
### UX Agent
职责:专门评估用户体验
触发:当 Skill 检测到页面交互逻辑时,派出 UX Agent 评估可用性
四、与 Workflow 的深度配合
4.1 Skill 作为 Workflow 的步骤
Workflow 脚本中可以调用 Skill 定义的逻辑:
// Workflow: 完整发布流程
export const meta = {
name: 'full-release',
description: '完整发布流程:审查 → 测试 → 构建 → 部署',
phases: [
{ title: '代码审查', agentType: 'code-reviewer' },
{ title: '测试', agentType: 'tester' },
{ title: '构建', agentType: 'builder' },
{ title: '部署', agentType: 'devops' },
],
};
// 每个 phase 实际上对应一个 Skill
// Workflow 只是编排器,Skill 是执行者
4.2 Workflow 触发 Skill
## Workflow 与 Skill 的关系
Workflow = 导演(决定做什么、按什么顺序做)
Skill = 演员(负责具体执行)
一个 Workflow 可以触发多个 Skill:
发布 Workflow
├── Step 1: 触发 code-review Skill
├── Step 2: 触发 test-coverage Skill
├── Step 3: 触发 devops-deploy Skill
└── Step 4: 触发 changelog-gen Skill
反过来,一个 Skill 也可以触发一个 Workflow:
devops-deploy Skill
├── 如果检测到是生产环境
│ └── 触发 production-release Workflow(更严格的流程)
└── 如果检测到是测试环境
└── 直接执行 deploy 流程
4.3 条件化 Workflow
## 条件化执行
根据 Skill 的执行结果,决定是否继续 Workflow:
IF code-review Skill 返回评分 < 60
→ 中止 Workflow,不执行后续步骤
IF test-coverage Skill 返回覆盖率 < 70%
→ 警告但不中止,继续执行
IF devops-deploy Skill 检测到数据库有未执行的 migration
→ 先触发 db-migration Skill,再执行部署
五、Skill 性能优化
5.1 减少不必要的文件读取
## 优化原则
- 只在需要时读取文件,不要一次性读取整个项目
- 使用 Grep 精确定位目标文件,再 Read
- 大文件(>1000 行)只读取相关片段
示例:
❌ 差的做法:
Read 整个项目的所有 .java 文件
✅ 好的做法:
Grep "@Controller" 找到 Controller 文件
再 Read 这些特定文件
5.2 缓存机制
## 缓存策略
对于不常变化的信息(如项目结构、依赖关系),
可以缓存到 .claude/tmp/skill-cache.json:
```json
{
"lastScanned": "2026-07-10T10:00:00Z",
"projectStructure": {
"controllers": ["UserCtrl.java", "DeviceCtrl.java"],
"services": ["UserService.java", "DeviceService.java"]
}
}
下次执行时先检查缓存是否过期(>1 小时则重新扫描)。
### 5.3 增量检查
```markdown
## 增量检查
只检查本次变更涉及的代码,而不是全量扫描:
```bash
# 只检查 git diff 中的文件
git diff --name-only origin/main...HEAD | xargs eslint
这样可以大幅减少检查时间和 Token 消耗。
## 六、Skill 调试与诊断
### 6.1 调试模式
```markdown
## 调试开关
在 Skill 中加入调试模式:
```yaml
debug: false # 设为 true 时输出详细的执行日志
调试模式下,每个步骤的输出都会记录到 .claude/tmp/skill-debug.log:
[10:30:01] 加载 Skill: code-review-pro
[10:30:02] 读取文件: src/main/java/.../UserService.java
[10:30:03] 发现 L45: 潜在 NPE — 用户可能为 null
[10:30:04] 发现 L78: 方法过长 — 86 行,建议拆分
[10:30:05] 评分计算: 正确性(38/40) + 安全(22/25) + 性能(16/20) + 维护(8/15) = 84/100
[10:30:05] 输出报告完成
### 6.2 常见问题排查
| 症状 | 可能原因 | 解决方案 |
|------|---------|---------|
| Skill 不触发 | description 缺少关键词 | 补充 trigger 关键词 |
| 触发但执行错误 | 提示词有歧义 | 细化步骤描述 |
| 执行超时 | 文件读取过多 | 改用 Grep 精准定位 |
| 输出不完整 | Token 超限 | 精简输出格式 |
| 误报率高 | 规则太宽松 | 收紧判断条件 |
## 七、Skill 进阶组合拳
### 7.1 完整的一天开发流程
早上开工:
/init → init Skill:确认项目状态
/code-review-pro → 审查昨天的代码
开发新功能:
/fullstack-feature → 全栈开发 Skill:前后端并行
/db-change-check → 数据库变更检查
下班前:
/changelog-gen → 生成今日 Changelog
/quality-gate → 综合质量检查
/deploy-to-staging → 部署到测试环境
周五:
/api-doc-gen → 更新本周变更的 API 文档
/doc-sync → 检查文档同步状态
### 7.2 团队协作的一天
开发者 A:
/code-review-pro → 审查自己的代码
/deploy-to-staging → 部署到测试环境
开发者 B:
/comprehensive-review → 综合审查 A 的改动
/test-coverage → 检查覆盖率是否达标
Tech Lead:
/changelog-gen → 生成发布说明
/api-doc-gen → 更新 API 文档
/release-orchestrator → 编排发布流程
### 7.3 持续集成的 Skill 链
每次 push → 自动触发:
code-review-pro → lint-checker → test-coverage → security-audit
全部通过 → 自动触发:
devops-deploy (staging) → smoke-test → changelog-gen
staging 验证通过 → 手动确认后触发:
devops-deploy (production) → health-check → notify-team
## 八、系列总结
### 8.1 Skill 系统的核心价值
回顾整个系列,Skill 系统的核心价值可以浓缩为一句话:
> **把重复的经验变成可执行的规则,让 Claude 成为你团队的"数字专家"。**
具体来说:
| 价值 | 说明 |
|------|------|
| **标准化** | 所有人用同一套审查标准、部署流程 |
| **提效** | 一键完成多步操作,减少手动失误 |
| **传承** | 老员工的经验固化到 Skill 中,新人直接继承 |
| **可扩展** | 随时添加新 Skill,能力持续增长 |
| **可共享** | 团队内复用,个人到开源社区复用 |
### 8.2 学习路径建议
| 阶段 | 内容 | 预计时间 |
|------|------|---------|
| **入门** | 第 1 篇:认识 Skill 系统 | 30 分钟 |
| **上手** | 第 2 篇:编写第一个自定义 Skill | 1-2 小时 |
| **进阶** | 第 3-6 篇:编排 + 实战 Skill | 半天 |
| **精通** | 第 7-8 篇:共享 + 进阶技巧 | 持续迭代 |
### 8.3 下一步学习方向
Skill 系统只是 Claude Code 能力扩展的一部分。如果你想继续深入学习:
- **Agent 系统**:自定义 Agent 角色,与 Skill 配合使用
- **Workflow 脚本**:用 JavaScript 编写更复杂的工作流
- **Memory 记忆系统**:让 Claude 跨会话记住你的偏好
- **Hook 自动化**:在特定事件发生时自动触发操作
- **Skill 编排的高级技巧**:嵌套编排、动态调度、条件分支
## 九、写在最后
这个 8 篇的 Skill 系列从"什么是 Skill"开始,到"如何编写、编排、共享、进阶"结束。
如果你已经跟着学完了全部内容,你现在应该能够:
- ✅ 理解 Skill 系统的工作原理
- ✅ 编写贴合项目需求的自定义 Skill
- ✅ 将多个 Skill 编排成自动化流程
- ✅ 覆盖部署、质量、文档等核心场景
- ✅ 建立团队 Skill 库,实现知识传承
- ✅ 使用进阶技巧让 Skill 更智能
**最后记住一句话**:
> Skill 的价值不在于写了多少,而在于用了多少次。一个每天用 10 次的简单 Skill,比一个月用一次的复杂 Skill 更有价值。
从你最痛的那个重复性任务开始,写你的第一个 Skill 吧。
---
*系列目录:*
1. ~~初识 Skill 系统——什么是 Skill?为什么需要 Skill?~~
2. ~~自定义 Skill 开发——从 0 到 1 编写自己的 Skill~~
3. ~~Skill 编排与组合——多个 Skill 串联工作,打造自动化流程~~
4. ~~实战 Skill:DevOps 部署——编写 Docker/Nginx/CI-CD 相关的部署 Skill~~
5. ~~实战 Skill:代码质量——编写 Code Review / Lint / 测试覆盖率 Skill~~
6. ~~实战 Skill:文档生成——编写 API 文档 / 技术手册 / Changelog 生成 Skill~~
7. ~~Skill 分享与复用——团队共享 Skill 库、开源 Skill 生态、版本管理~~
8. ~~Skill 进阶技巧——条件触发、多语言支持、与 Agent/Workflow 的配合~~ ← 本篇(系列终篇)
更多推荐



所有评论(0)