Claude Code Skill 完全指南:从入门到实战

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。

需求分析

我们希望能够:

  1. 写好 Markdown 文章后,一条命令发布到 CSDN
  2. 自动提取文章标题
  3. 处理 Cookie 认证(Cookie 过期时给用户引导)
  4. 发布成功后返回文章链接

完整 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,把时间留给自己!