本教程带你从零开始创建一个完整的 Claude Code 自定义 Skill。你将深入理解 SKILL.md 规范、触发条件设计、脚本集成、eval 测试和发布流程。适合已具备 Claude Code 基本使用经验、希望将重复工作流封装为可复用自动化的中级开发者。学完后你将拥有一个可安装、可触发、可分享的自定义 Skill,并掌握 Skills 生态的核心开发模式。
| 条件 | 说明 |
|---|---|
| Claude Code | 已安装并完成认证(claude 命令可用) |
| 终端基础 | 熟悉 cd、mkdir、cat 等基本命令 |
| Markdown | 了解 YAML frontmatter 和 Markdown 语法 |
| 开发项目 | 有一个可用于测试的代码仓库 |
Skill 是 Claude Code 的模块化扩展机制——每个 Skill 是一个文件夹,核心是一个 SKILL.md 指令文件。当用户输入匹配的提示词或斜杠命令时,Claude 加载并执行该文件中定义的工作流。
与 CLAUDE.md 的关键区别:
CLAUDE.md ─── 全局加载,始终生效,定义通用规则和项目上下文
Skills/ ─── 按需加载,触发式激活,定义特定任务工作流
graph TB
subgraph "Skill 三层加载系统"
L1["第一层:Frontmatter<br/>元数据(名称、描述、触发条件)"]
L2["第二层:SKILL.md 正文<br/>工作流指令"]
L3["第三层:辅助资源<br/>scripts/ references/ assets/"]
end
L1 -->|"系统匹配时加载"| L2
L2 -->|"需要时按需加载"| L3
style L1 fill:#4A90D9,color:#fff
style L2 fill:#7B68EE,color:#fff
style L3 fill:#9370DB,color:#fff
这种渐进式加载(Progressive Disclosure)设计确保了即使你有数百个 Skill,系统也不会被拖慢——只有匹配的 Skill 才会被完整加载。
graph LR
subgraph "优先级从高到低"
E["企业级<br/>管理员统一管理"]
P["个人级<br/>~/.claude/skills/"]
R["项目级<br/>.claude/skills/"]
G["插件级<br/>plugin/skills/"]
end
E --> P --> R --> G
style E fill:#E74C3C,color:#fff
style P fill:#F39C12,color:#fff
style R fill:#2ECC71,color:#fff
style G fill:#3498DB,color:#fff
| 作用域 | 路径 | 可见范围 | 适用场景 |
|---|---|---|---|
| 企业级 | 管理员配置 | 全公司 | 安全规范、合规流程 |
| 个人级 | ~/.claude/skills/<name>/ |
你的所有项目 | 个人效率工具 |
| 项目级 | .claude/skills/<name>/ |
当前项目 | 团队共享工作流 |
| 插件级 | <plugin>/skills/<name>/ |
插件启用时 | 功能分发 |
我们先创建一个实用 Skill:代码变更日志生成器——自动分析 Git 提交历史,生成结构化的 CHANGELOG。
# 进入你的项目目录
cd your-project
# 创建 Skill 目录
mkdir -p .claude/skills/changelog-gen/scripts
mkdir -p .claude/skills/changelog-gen/references
最终目录结构:
.claude/skills/changelog-gen/
├── SKILL.md # 核心指令文件(必需)
├── scripts/
│ └── git-log-fmt.sh # Git 日志格式化脚本(可选)
└── references/
└── template.md # 输出模板参考(可选)
这是 Skill 的核心。创建 .claude/skills/changelog-gen/SKILL.md:
---
name: changelog-gen
description: >
分析 Git 提交历史并生成结构化 CHANGELOG。
当用户说"生成更新日志"、"changelog"、"版本变更记录"时触发。
支持按版本号、日期范围、作者过滤提交。
trigger:
- "生成更新日志"
- "changelog"
- "变更记录"
- "版本更新"
- "release notes"
allowed-tools:
- Read
- Write
- Bash(git log *)
- Bash(git tag *)
- Bash(git diff *)
- Glob
- Grep
version: 1.0.0
author: your-name
tags: [git, changelog, release, documentation]
---
关键点:
description是 Skill 最重要的一行。Claude 通过它判断是否自动激活你的 Skill。遵循公式:做什么 + 技术栈/领域 + 何时触发。
YAML frontmatter 之后,编写 Markdown 正文指令:
# 代码变更日志生成器
## 工作流程
### 第一步:收集提交信息
1. 运行 `git log --oneline --no-merges` 获取提交概览
2. 运行 `git tag --sort=-v:refname` 获取最近的版本标签
3. 确定变更范围:
- 如果用户指定了版本号,使用 `git log v{prev}..v{curr}`
- 如果用户指定了日期,使用 `git log --since="{date}"`
- 默认使用自上一个 tag 以来的所有提交
### 第二步:分类整理
将提交按以下类别自动分组:
- 🚀 **新功能** (feat): 包含 "feat"、"add"、"新增"、"支持" 的提交
- 🐛 **Bug 修复** (fix): 包含 "fix"、"bug"、"修复"、"解决" 的提交
- ♻️ **重构** (refactor): 包含 "refactor"、"重构"、"优化" 的提交
- 📝 **文档** (docs): 包含 "docs"、"文档"、"README" 的提交
- 🔧 **配置** (chore): 包含 "chore"、"config"、"配置" 的提交
- ✅ **测试** (test): 包含 "test"、"测试" 的提交
### 第三步:生成 CHANGELOG
输出格式严格遵循以下模板:
```markdown
# Changelog
## [版本号] - YYYY-MM-DD
### 🚀 新功能
- **scope**: 简短描述 (#PR号)
### 🐛 Bug 修复
- **scope**: 简短描述 (#PR号)
### 其他变更
- 描述
将生成的 CHANGELOG 写入项目根目录的 CHANGELOG.md 文件。
如果文件已存在,将新内容插入到文件顶部(保留历史记录)。
### 2.3 创建辅助脚本(可选但推荐)
创建 `.claude/skills/changelog-gen/scripts/git-log-fmt.sh`:
```bash
#!/usr/bin/env bash
# 格式化 Git 日志为 JSON,方便 Claude 解析
set -euo pipefail
SINCE="${1:-}"
FORMAT='{ "hash": "%h", "subject": "%s", "author": "%an", "date": "%ad" }'
if [ -n "$SINCE" ]; then
git log --since="$SINCE" --no-merges --format="$FORMAT" --date=short
else
git log -50 --no-merges --format="$FORMAT" --date=short
fi
赋予执行权限:
chmod +x .claude/skills/changelog-gen/scripts/git-log-fmt.sh
创建 .claude/skills/changelog-gen/references/template.md:
# 变更日志模板参考
## 标准格式
- 版本号遵循语义化版本 (SemVer)
- 日期格式:YYYY-MM-DD
- 每个变更条目以动词开头
- PR 号码放在括号内
## 示例输出
## [2.3.0] - 2026-06-09
### 🚀 新功能
- **api**: 新增批量导出接口 (#142)
- **ui**: 支持暗色模式切换 (#138)
### 🐛 Bug 修复
- **auth**: 修复 Token 过期后未自动刷新的问题 (#145)
在项目目录中启动 Claude Code,输入斜杠命令:
/changelog-gen
预期行为: Claude 应该立即加载 Skill 指令,执行 git 命令收集信息,并生成结构化的 CHANGELOG。
不用斜杠命令,直接用自然语言:
帮我生成这个项目的更新日志
分析最近的 Git 提交,写一份 changelog
预期行为: Claude 通过 description 和 trigger 字段匹配,自动激活 Skill。
创建 .claude/skills/changelog-gen/evals.json:
{
"skill_name": "changelog-gen",
"evals": [
{
"id": 1,
"prompt": "生成这个项目的更新日志",
"expected_output": "生成了包含版本号、日期和分类变更条目的 CHANGELOG.md 文件",
"assertions": [
{"name": "file-created", "text": "CHANGELOG.md 文件被创建或更新"},
{"name": "has-categories", "text": "输出包含至少一个分类标题(新功能/Bug修复等)"},
{"name": "has-date", "text": "包含日期信息,格式为 YYYY-MM-DD"}
]
},
{
"id": 2,
"prompt": "从 v2.0.0 到现在的变更记录",
"expected_output": "仅包含 v2.0.0 之后提交的变更日志",
"assertions": [
{"name": "version-range", "text": "正确使用版本范围过滤提交"},
{"name": "no-old-commits", "text": "不包含 v2.0.0 之前的提交"}
]
},
{
"id": 3,
"prompt": "最近一周的 changelog",
"expected_output": "按日期范围过滤并生成变更日志",
"assertions": [
{"name": "date-filter", "text": "使用 --since 参数过滤日期"},
{"name": "recent-only", "text": "只包含最近7天的提交"}
]
}
]
}
通过 /skill-creator 的 eval 功能运行测试:
/skill-creator eval changelog-gen
---
# ===== 必需字段 =====
name: my-skill # 唯一标识符,kebab-case 格式
description: > # 功能描述 + 触发场景(最关键的字段)
一句话说明做什么。另一句说明何时触发。
# ===== 触发控制 =====
trigger: # 显式触发关键词(补充 description)
- "关键词1"
- "关键词2"
disable-model-invocation: false # true = 只允许 /命令 手动触发
user-invocable: true # false = 从 / 菜单中隐藏
# ===== 执行环境 =====
context: default # default 或 fork(隔离子代理)
model: sonnet # 覆盖模型:sonnet/opus/haiku
effort: high # 努力级别:low/medium/high/max
agent: Explore # context:fork 时的子代理类型
# ===== 权限控制 =====
allowed-tools: # 工具白名单
- Read
- Write
- Bash(npm *)
- Bash(git *)
# ===== 元数据 =====
version: 1.0.0
author: your-name
tags: [tag1, tag2]
disabled: false # 暂停而不删除
---
flowchart TD
A[开始创建 Skill] --> B{需要自动触发?}
B -->|是| C[写好 description + trigger]
B -->|否| D[设置 disable-model-invocation: true]
C --> E{涉及敏感操作?}
D --> E
E -->|是| F[设置 context: fork<br/>限制 allowed-tools]
E -->|否| G[使用默认 context]
F --> H{需要特定模型能力?}
G --> H
H -->|是| I[设置 model + effort]
H -->|否| J[使用默认设置]
I --> K[完成 Frontmatter]
J --> K
style A fill:#4A90D9,color:#fff
style K fill:#2ECC71,color:#fff
单一职责,只做一件事。最简单的 Skill 类型。
# 示例:代码行数统计
---
name: line-count
description: 统计项目代码行数,按语言分类。输入"统计代码行数"时触发。
trigger: ["代码行数", "line count", "代码统计"]
---
适用场景: 快捷工具类操作。
多步骤顺序执行,前一步输出是后一步输入。
# 示例:API 文档生成
---
name: api-doc-gen
description: >
从代码自动生成 API 文档。扫描路由定义 → 提取参数和返回值 →
生成 Markdown/OpenAPI 文档。当用户说"生成API文档"时触发。
trigger: ["API文档", "接口文档", "api docs", "openapi"]
---
适用场景: 多阶段数据转换。
根据输入条件分发到不同的处理逻辑。
# 示例:多框架组件生成器
---
name: component-gen
description: >
根据项目技术栈生成前端组件。自动检测 React/Vue/Svelte/Angular,
使用对应的最佳实践和模板。当用户说"创建组件"时触发。
trigger: ["创建组件", "generate component", "新建组件"]
---
适用场景: 需要适配多种技术栈的通用工具。
并行处理多个目标,汇总结果。
# 示例:批量文件翻译
---
name: batch-translate
description: >
批量翻译项目中的 Markdown 文件。支持并行处理多个文件,
保持原始格式和代码块不变。当用户说"批量翻译"时触发。
trigger: ["批量翻译", "translate files", "翻译文档"]
allowed-tools:
- Read
- Write
- Glob
context: fork
---
适用场景: 需要并行处理的批量任务。
在关键操作前进行安全检查。
# 示例:安全部署守卫
---
name: deploy-guard
description: >
部署前安全检查。运行测试 → 检查敏感信息泄露 → 验证依赖安全性 →
确认版本号更新。任何检查失败则阻止部署。当用户说"部署"时触发。
trigger: ["部署", "deploy", "发布上线"]
disable-model-invocation: true
---
适用场景: 安全敏感的阻断式流程。
将一种格式/协议转换为另一种。
# 示例:数据库 Schema 转换器
---
name: schema-adapter
description: >
在不同 ORM 的 Schema 格式间转换。支持 Prisma ↔ TypeORM ↔
Sequelize ↔ Drizzle 互转。当用户说"转换 Schema"时触发。
trigger: ["转换schema", "schema迁移", "ORM转换"]
---
适用场景: 格式转换、平台迁移。
description 是 Skill 的"SEO"。优化原则:
# 好的 description 公式
"[做什么] + [技术栈/领域] + [何时触发]"
# ❌ 差的写法
description: "代码生成工具"
# ✅ 好的写法
description: >
从 OpenAPI/Swagger 规范自动生成 Express.js 路由处理器和 TypeScript 类型定义。
当用户提供 API 规范文件并要求生成后端代码时触发。
经验法则: 保持 50-150 个字符;包含 2-3 个具体触发场景;避免模糊描述。
# 精确控制 Bash 命令范围
allowed-tools:
- Read # 所有文件读取
- Bash(git log *) # 只允许 git log
- Bash(npm test *) # 只允许 npm test
- Bash(npx eslint *) # 只允许 eslint
- Grep # 所有搜索
- Glob # 所有文件匹配
安全提示: 对于可能产生副作用的 Skill(修改文件、执行命令),始终设置最窄的 allowed-tools 范围。
当 Skill 可能消耗大量上下文窗口时:
context: fork # 在独立子代理中执行
model: sonnet # 使用更快/便宜的模型
effort: medium # 适中的努力级别
适用情况: - 需要处理大量文件的批量操作 - 生成过程可能产生大量中间输出 - 不希望污染主对话上下文
skill-name/
├── SKILL.md # 始终加载(< 500 行)
├── scripts/ # Claude 按需调用
│ ├── validate.sh # 输入验证
│ └── format.py # 输出格式化
└── references/ # 仅在需要时读取
├── api-spec.md # 参考文档
└── examples.md # 示例集合
在 SKILL.md 正文中引用资源的方式:
## 参考资料
- 如需了解 API 规范细节,读取 `references/api-spec.md`
- 格式化输出时,先执行 `scripts/format.py`
最简单的分享方式——将 .claude/skills/ 提交到 Git 仓库:
git add .claude/skills/changelog-gen/
git commit -m "feat: add changelog generator skill"
团队成员 clone 项目后自动获得该 Skill。
将 Skill 复制到个人目录,所有项目可用:
cp -r .claude/skills/changelog-gen/ ~/.claude/skills/
使用内置的 skill-creator 进行优化:
/skill-creator optimize changelog-gen
该命令会: 1. 分析触发准确率 2. 优化 description 措辞 3. 建议工具权限调整 4. 运行 eval 测试套件
将 Skill 发布到 GitHub 仓库供社区使用:
# 创建独立的 Skill 仓库
mkdir claude-skill-changelog-gen
cd claude-skill-changelog-gen
# 复制 Skill 文件
cp -r ../your-project/.claude/skills/changelog-gen/* .
# 添加 README 和 package 信息
# 推送到 GitHub
git init && git add . && git commit -m "init"
git remote add origin https://github.com/yourname/claude-skill-changelog-gen.git
git push -u origin main
用户安装:
# 克隆到个人 Skills 目录
git clone https://github.com/yourname/claude-skill-changelog-gen.git \
~/.claude/skills/changelog-gen
flowchart TB
subgraph "Skills 开发全流程"
A["1. 需求分析<br/>确定 Skill 要解决什么问题"]
B["2. 目录创建<br/>mkdir -p .claude/skills/name"]
C["3. 编写 Frontmatter<br/>name + description + trigger"]
D["4. 编写指令正文<br/>步骤化工作流"]
E["5. 添加辅助资源<br/>scripts/ references/"]
F["6. 手动测试<br/>/skill-name"]
G["7. Eval 自动测试<br/>多场景验证"]
H["8. 优化迭代<br/>description + 触发精度"]
I["9. 发布分享<br/>Git / 社区"]
end
A --> B --> C --> D --> E --> F
F -->|"有问题"| D
F -->|"通过"| G
G -->|"失败"| H
H --> D
G -->|"全部通过"| I
style A fill:#3498DB,color:#fff
style I fill:#2ECC71,color:#fff
style H fill:#E67E22,color:#fff
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Skill 不被自动触发 | description 不够精确 | 优化描述,添加 trigger 关键词 |
| 触发了错误的 Skill | 多个 Skill description 重叠 | 细化描述,使用更具体的领域词汇 |
| Skill 执行报权限错误 | allowed-tools 未包含需要的工具 | 添加工具到白名单 |
| 输出结果不符合预期 | 指令不够具体 | 添加更多示例和格式说明 |
| context 窗口溢出 | SKILL.md 过长或参考文件太多 | 缩减正文,使用 references/ 分层加载 |
/ 菜单看不到 Skill |
user-invocable 设为 false | 改为 true 或移除该字段 |
| fork 模式下工具不可用 | 子代理未继承工具权限 | 在 allowed-tools 中明确列出 |
以下是一个可直接使用的完整 Skill,综合运用了本文所有知识点:
.claude/skills/pr-review/SKILL.md:
---
name: pr-review
description: >
对当前分支的代码变更进行全面审查,覆盖安全漏洞、性能问题、
代码规范和最佳实践。当用户说"审查代码"、"review PR"、
"检查代码质量"时自动触发。
trigger:
- "审查代码"
- "review"
- "代码检查"
- "PR审查"
allowed-tools:
- Read
- Grep
- Glob
- Bash(git diff *)
- Bash(git log *)
context: fork
effort: high
version: 1.0.0
tags: [code-review, security, quality]
---
# PR 代码审查
## 工作流程
### 第一步:获取变更范围
1. 运行 `git diff --name-only main...HEAD` 获取变更文件列表
2. 过滤掉无关文件(lock 文件、自动生成文件)
3. 对每个文件运行 `git diff main...HEAD -- <file>` 获取具体变更
### 第二步:逐文件审查
对每个变更文件按以下维度分析:
**安全性(Critical):**
- SQL 注入、XSS、CSRF 风险
- 硬编码密钥、Token、密码
- 不安全的反序列化
- 未验证的用户输入
**性能(High):**
- N+1 查询问题
- 不必要的全表扫描
- 内存泄漏风险
- 缺少缓存的热路径
**代码质量(Medium):**
- 命名不规范
- 重复代码
- 过深的嵌套
- 缺少错误处理
**最佳实践(Low):**
- 框架惯用法偏离
- 缺少类型注解
- 文档缺失
### 第三步:生成审查报告
输出格式:
```markdown
# 🔍 代码审查报告
## 概要
- 变更文件:X 个
- 发现问题:Critical X / High X / Medium X / Low X
- 总体评价:✅ 可合并 / ⚠️ 需修改 / ❌ 需重做
## Critical 问题
### [SEC-001] SQL 注入风险
- **文件**:`src/api/users.ts:45`
- **代码**:`query("SELECT * FROM users WHERE id = " + id)`
- **建议**:使用参数化查询
## 亮点 🌟
- [值得肯定的代码实践]
## 改进建议
- [非阻断性建议]
安装测试:
```bash
mkdir -p .claude/skills/pr-review
# 将上面的内容保存为 .claude/skills/pr-review/SKILL.md
在 Claude Code 中触发:
/review
或自然语言:
帮我审查一下当前分支的代码变更
| 维度 | 评估 |
|---|---|
| 适合训练营类型 | AI 工程师实战营、开发者效率提升营、DevOps 自动化营 |
| 预计教学时长 | 4-6 小时(含实操练习) |
| 难度等级 | ⭐⭐⭐ 中级(需要 Claude Code 使用基础) |
| 实操占比 | 70% 动手 + 30% 理论 |
| 考核方式 | 学员独立创建一个可用的自定义 Skill 并通过 eval 测试 |
| 前置课程 | Claude Code 入门篇(安装配置与基本使用) |
| 后续课程 | MCP 服务器开发(Skill + MCP 组合进阶) |
团队其他成员 `git pull` 后立即可用。
### 9.2 跨项目复用
将 Skill 放在用户全局目录:
```bash
# 全局 Skills 目录
mkdir -p ~/.claude/skills/my-skill/
cp -r .claude/skills/changelog-generator ~/.claude/skills/
所有项目都能使用该 Skill。
方式一:GitHub 仓库
# 创建专用仓库
mkdir claude-code-skills
cd claude-code-skills
git init
# 每个 Skill 一个目录
cp -r ~/project/.claude/skills/changelog-generator ./
cp -r ~/project/.claude/skills/api-doc-generator ./
# 添加 README
echo "# My Claude Code Skills\n\nInstall with ..." > README.md
git add . && git commit -m "Initial skills collection"
git remote add origin https://github.com/username/claude-code-skills
git push -u origin main
方式二:SkillsMP 市场
2026 年 Claude Code 社区出现了 SkillsMP(Skills Marketplace),支持一键安装:
# 安装他人发布的 Skill
claude skill install @username/changelog-generator
# 发布自己的 Skill
claude skill publish ./changelog-generator
在项目根目录维护一个 skills.json 记录依赖的 Skills:
{
"skills": [
{
"name": "changelog-generator",
"source": "git+https://github.com/username/claude-skills#changelog-generator",
"version": "1.0.0"
},
{
"name": "api-doc-generator",
"source": "local",
"path": ".claude/skills/api-doc-generator"
}
]
}
如果 Skill 没有被触发,按以下步骤排查:
flowchart TD
A[Skill 未触发] --> B{检查 SKILL.md 位置}
B -->|位置错误| C[移到 .claude/skills/name/SKILL.md]
B -->|位置正确| D{检查 frontmatter}
D -->|格式错误| E[修复 YAML 语法]
D -->|格式正确| F{检查 trigger}
F -->|不匹配| G[添加更多触发词]
F -->|匹配| H{检查 Claude 版本}
H -->|版本过低| I[升级到 1.0+]
H -->|版本正常| J[检查是否有多个 Skill 冲突]
| 优化方向 | 具体方法 | 效果 |
|---|---|---|
| 减少上下文 | SKILL.md 控制在 500 行以内 | 降低 Token 消耗 |
| 精准触发 | trigger 条件控制在 3-5 个 | 减少误触发 |
| 脚本输出 | 脚本返回结构化 JSON | Claude 解析更准确 |
| 分层指令 | 简单任务在前,复杂逻辑在后 | 按需深入 |
| 懒加载 | 大段模板放在 resources/ 下 | 只在需要时读取 |
# 在 SKILL.md 中记录版本
---
name: changelog-generator
version: "1.2.0"
changelog:
- "1.2.0: 支持自定义输出格式"
- "1.1.0: 添加 Conventional Commits 分类"
- "1.0.0: 初始版本"
---
# 使用 Git tag 管理 Skill 版本
git tag -a "skill/changelog-generator/v1.2.0" -m "Changelog generator v1.2.0"
Skills 和 MCP(Model Context Protocol)不是互斥的,而是互补的:
graph TB
subgraph "Claude Code 扩展体系"
A[用户输入] --> B{路由判断}
B -->|简单工作流| C[Skills 处理]
B -->|外部工具调用| D[MCP Server 处理]
B -->|复杂场景| E[Skills + MCP 协作]
C --> F[纯指令执行]
D --> G[调用外部 API/工具]
E --> H[Skill 定义流程]
H --> I[MCP 提供工具]
I --> J[整合输出]
end
style C fill:#4CAF50,color:#fff
style D fill:#2196F3,color:#fff
style E fill:#FF9800,color:#fff
| 维度 | Skills | MCP |
|---|---|---|
| 本质 | 结构化的提示词 | 外部工具服务器 |
| 开发成本 | 写 Markdown | 写代码(Python/TS) |
| 能力边界 | Claude 自身能力 | 无限扩展(API/数据库/文件) |
| 调试难度 | 低 | 中到高 |
| 共享难度 | 极低(复制文件) | 中(需要部署服务器) |
最佳实践: 先用 Skills 解决问题,当 Skills 的纯指令能力不够时,再引入 MCP。
Q1:一个项目可以有多个 Skill 吗?
可以。.claude/skills/ 下每个子文件夹是一个独立的 Skill。Claude 根据触发条件自动选择匹配的 Skill。
Q2:Skill 之间可以互相调用吗?
目前不支持 Skill 间的直接调用。但可以在 SKILL.md 的 Instructions 中引导 Claude 执行另一个 Skill 的触发命令,实现间接串联。
Q3:Skills 的 frontmatter 支持哪些字段?
核心字段为 name、description、trigger。社区扩展了 version、author、tags 等字段,部分市场工具会识别。
Q4:Skill 执行时会影响 Claude 的上下文窗口吗?
会。SKILL.md 的内容会占用上下文窗口。建议控制单个 Skill 在 2000 Token 以内,复杂内容放在 resources/ 下按需读取。
Q5:如何让 Skill 只在特定项目中生效?
放在项目的 .claude/skills/ 下即可,只在当前项目生效。放在 ~/.claude/skills/ 下则全局生效。
| 维度 | 评估 |
|---|---|
| 适合训练营类型 | AI 工具实战训练营、开发者效率提升营 |
| 教学时长 | 2-3 小时(含动手练习) |
| 难度定位 | 中级(需 Claude Code 基础使用经验) |
| 实操比例 | 70% 动手 + 30% 讲解 |
| 分组建议 | 2-3 人一组,每组完成 1 个自定义 Skill |
| 考核方式 | 现场演示 Skill 的触发与执行效果 |
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
