Claude Code Skill 完全指南:从入门到实战
什么是 Skill?
Skill 是 Claude Code 中的扩展机制,本质上是自定义的 / 斜杠命令。你可以把常用的、复杂的操作流程写成一个 Skill 文件,之后只需一个命令就能让 Claude 自动执行整套流程。
简单来说:Skill = 可复用的 AI 操作手册。
Skill 的核心价值
- 复用性:一次编写,反复使用,避免每次都说重复的话
- 标准化:团队共享同一个 Skill,确保操作流程一致
- 降低门槛:复杂操作封装后,新人也能一键执行
- 自动化:结合定时任务(/loop),实现无人值守的自动化
Skill 的工作原理
Claude Code 启动时会扫描 .claude/commands/ 目录下的所有 .md 文件,每个文件就是一个 Skill。当你输入 /<skill名称> 时,Claude 会读取对应的 Markdown 文件,将其中定义的指令作为任务来执行。
目录结构
项目根目录/
└── .claude/
└── commands/
├── deploy.md # /deploy 命令
├── code-review.md # /code-review 命令
└── csdn-publish.md # /csdn-publish 命令
创建你的第一个 Skill
第 1 步:创建 Skill 文件
在 .claude/commands/ 目录下创建一个 Markdown 文件,文件名就是 Skill 名称。
例如,创建一个 hello.md 文件:
markdown
# 打招呼
向用户打招呼,并显示当前项目信息。
## 执行步骤
1. 用友好的语气向用户问好
2. 列出当前项目目录结构
3. 询问用户今天需要什么帮助
输入
/hello,Claude 就会执行以上步骤。
第 2 步:Skill 文件的标准结构
一个完整的 Skill 文件包含以下几个部分:
markdown
# Skill 标题(必需)
简要描述这个 Skill 的功能。
## 参数(可选)
- $ARGUMENTS --- 传递给 Skill 的参数
## 执行步骤(必需)
1. 步骤一:明确告诉 Claude 做什么
2. 步骤二:每一步要具体、可执行
3. 步骤三:考虑异常情况的处理
## 注意事项(可选)
- 前置条件说明
- 安全提醒
- 已知限制
第 3 步:传递参数
Skill 支持通过 $ARGUMENTS 接收参数:
markdown
# 翻译助手
将指定的文本翻译成英文。
## 参数
- $ARGUMENTS --- 待翻译的中文文本
## 执行步骤
1. 接收 $ARGUMENTS 参数作为输入文本
2. 将文本翻译成英文
3. 同时输出原文和译文
使用方式:/translate 你好世界,这是一个测试
实战:写一个 CSDN 发布 Skill
下面以一个真实案例,逐步讲解如何写一个自动发布文章到 CSDN 的 Skill。
需求分析
我们希望能够:
- 写好 Markdown 文章后,一条命令发布到 CSDN
- 自动提取文章标题
- 处理 Cookie 认证(Cookie 过期时给用户引导)
- 发布成功后返回文章链接
完整 Skill 代码
markdown
# CSDN 文章发布
将指定的 Markdown 文件发布到 CSDN 博客平台。
## 参数
- $ARGUMENTS --- Markdown 文件路径(必需)
## 执行步骤
1. **读取文件**:读取 `$ARGUMENTS` 指定的 Markdown 文件内容,
提取标题(第一个 `# ` 开头的行)。
2. **获取 Cookie**:
- 检查环境变量 `CSDN_COOKIE` 是否已设置。
- 如果没有,询问用户提供 CSDN Cookie。引导用户:
a. 用 Chrome 登录 https://mp.csdn.net
b. 按 F12 打开开发者工具
c. 切换到 Network 标签,刷新页面
d. 点击任意请求 → Request Headers → 复制完整 `Cookie` 值
- 也可以从 `D:/claudoCode/.csdn_cookie` 文件读取(如果存在)。
3. **发布文章**:运行以下命令发布:
python D:/claudoCode/publish_csdn.py "<文件路径>" ""
4. **结果确认**:
- 如果发布成功,输出文章链接。
- 如果发布失败(如 Cookie 过期),提示用户重新获取 Cookie。
## 注意事项
- Cookie 中必须包含 `SESSION`、`UserName`、`UserInfo`、
`UserToken` 字段,否则会认证失败。
- Cookie 有效期有限,过期后需要重新获取。
- 不要将 Cookie 提交到 Git 仓库。
配套 Python 脚本
Skill 通常需要配合实际的脚本来完成具体操作。以下是 publish_csdn.py 的核心逻辑框架:
python
import sys
import requests
def publish_to_csdn(md_file_path, cookie):
# 1. 读取 Markdown 文件
with open(md_file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 2. 提取标题
title = None
for line in content.split('\n'):
if line.startswith('# '):
title = line[2:].strip()
break
if not title:
print("错误:找不到文章标题")
sys.exit(1)
# 3. 调用 CSDN API 发布
headers = {
'Cookie': cookie,
'Content-Type': 'application/json'
}
payload = {
'title': title,
'content': content,
'markdowncontent': content,
'tags': '',
'categories': '',
'type': 'original',
'status': 'publish'
}
resp = requests.post(
'https://mp.csdn.net/api/article/saveArticle',
json=payload,
headers=headers
)
data = resp.json()
if data.get('code') == 200:
article_id = data['data']['id']
print(f"发布成功!文章链接:"
f"https://blog.csdn.net/你的用户名/article/details/{article_id}")
else:
print(f"发布失败:{data.get('msg', '未知错误')}")
sys.exit(1)
if __name__ == '__main__':
publish_to_csdn(sys.argv[1], sys.argv[2])
使用方式
写好文章后,一键发布:
/csdn-publish D:/my-blog/new-article.md
Skill 编写的最佳实践
1. 指令要具体,不要模糊
markdown
# ❌ 不好的写法
1. 处理文件
2. 发布
# ✅ 好的写法
1. **读取文件**:读取 Markdown 文件内容,提取标题
2. **获取认证**:检查环境变量 CSDN_COOKIE,没有则引导用户获取
3. **发布文章**:运行 publish_csdn.py 脚本,传入文件路径和 Cookie
4. **结果确认**:成功则输出链接,失败则提示重新获取 Cookie
2. 考虑异常情况
每次只写"正常情况下怎么做"是不够的,要告诉 Claude 异常时该怎么办:
markdown
- 如果 Cookie 过期 → 引导用户重新获取
- 如果文件不存在 → 提示用户检查路径
- 如果网络不通 → 提示用户检查网络
3. 善用环境变量和配置文件
敏感信息(Token、Cookie、密钥)不要硬编码在 Skill 里,通过环境变量或配置文件管理:
markdown
- 检查环境变量 `CSDN_COOKIE` 是否已设置
- 如果没有,从 `~/.csdn_cookie` 文件读取
4. 一个 Skill 只做一件事
markdown
# ❌ 不好的设计
/csdn-publish-and-share # 发布+分享+统计,太臃肿
# ✅ 好的设计
/csdn-publish # 只负责发布
/csdn-stats # 只负责查看统计
高级技巧
系统级 Skill
把 Skill 放到 ~/.claude/commands/(用户目录),可以在所有项目中使用:
bash
# 所有项目都能使用的 Skill
~/.claude/commands/
└── deploy-aliyun.md # /deploy-aliyun 全局可用
结合 /loop 实现定时任务
配合 /loop 命令,让 Skill 定时执行:
/loop 30m /check-deploy-status
可以调用的工具
在 Skill 的执行步骤中,Claude 可以:
- 读写文件:读取配置、生成报告
- 执行命令:运行脚本、调用 API、git 操作
- 搜索代码:查找文件、搜索关键词
- 网页操作:抓取网页、调用外部 API
总结
| 要点 | 说明 |
|---|---|
| Skill 是什么 | 自定义的 / 命令,封装 Claude 的操作流程 |
| 存放位置 | 项目级:.claude/commands/,全局级:~/.claude/commands/ |
| 文件格式 | Markdown,文件名 = 命令名 |
| 核心要素 | 标题、参数(可选)、执行步骤(必需)、注意事项(可选) |
| 参数传递 | $ARGUMENTS 接收命令行参数 |
| 最佳实践 | 指令具体、考虑异常、敏感信息不入库、单一职责 |
掌握了 Skill,你就拥有了无限扩展 Claude Code 的能力。把重复的劳动交给 Claude,把时间留给自己!