06-Claude code Skills 复用
摘要:Skills是Claude Code中的标准化规范文件,用于统一代码输出风格和工作流程。以Markdown格式存储在全局或项目级目录中,包含代码规范、示例和模板。通过自动匹配或显式调用,Claude会根据Skills生成符合标准的代码/文档。最佳实践包括保持Skills简洁具体、定期更新维护,并支持组合使用。典型应用场景包括API开发、测试生成和文档编写,能显著提高团队协作效率。
·
06-Skills 复用
创建和复用 Skills 来标准化 Claude Code 的输出,让 AI 按照团队的规范工作。
一、Skills 基础概念
1.1 什么是 Skills
Skills 是存储在特定目录下的 Markdown 文件,用于教 Claude Code 如何完成特定任务,标准化代码输出。
作用:
- 统一代码风格
- 标准化工作流程
- 复用最佳实践
- 减少重复沟通
1.2 Skills 工作原理
用户请求
↓
Claude 识别意图
↓
匹配相关 Skill
↓
根据 Skill 规范生成输出
↓
符合标准的代码/文档
二、Skills 目录结构
2.1 存储位置
全局 Skills(所有项目可用)
└── ~/.claude/skills/
├── python-code-style/
│ └── SKILL.md
└── fastapi-dev/
└── SKILL.md
项目级 Skills(仅当前项目可用)
└── ./.claude/skills/
└── project-specific/
└── SKILL.md
2.2 文件结构
skill-name/
├── SKILL.md # 必填,主说明文档
├── reference.md # 可选,详细参考
├── examples.md # 可选,使用示例
└── templates/ # 可选,代码模板
└── template.py
三、创建 Skills
3.1 基础 Skill 示例
创建 ~/.claude/skills/python-standard/SKILL.md:
---
name: python-standard
description: 生成符合 PEP8 和现代 Python 标准的代码,当用户要求编写 Python 代码时使用
---
# Python 代码标准
## 基本规范
- Python 3.9+ 语法
- 使用 4 空格缩进
- 最大行长度 100 字符
- 使用双引号字符串
## 类型注解
- 所有函数必须添加类型注解
- 使用 `from __future__ import annotations`
- 复杂类型使用 typing 模块
## 文档字符串
- 使用 Google Style Docstrings
- 包含 Args、Returns、Raises
- 示例代码放在 Examples 段落
## 错误处理
- 使用具体的异常类型
- 不要裸 except
- 记录异常日志
## 代码示例
```python
from __future__ import annotations
from typing import Optional
def process_data(data: list[dict]) -> dict[str, int]:
"""
处理数据并返回统计结果
Args:
data: 待处理的数据列表
Returns:
统计结果字典
Raises:
ValueError: 数据格式错误时
Examples:
>>> data = [{"name": "a", "value": 1}]
>>> result = process_data(data)
"""
if not data:
raise ValueError("数据不能为空")
return {"count": len(data)}
### 3.2 FastAPI Skill 示例
创建 `~/.claude/skills/fastapi-api/SKILL.md`:
```markdown
---
name: fastapi-api
description: 生成 FastAPI API 代码,当用户开发 Web API 时使用
---
# FastAPI 开发规范
## 项目结构
app/
├── init.py
├── main.py # FastAPI 实例
├── models/ # Pydantic 模型
├── routers/ # API 路由
└── services/ # 业务逻辑
## 路由规范
- 使用 APIRouter
- 前缀使用复数名词
- 函数名使用动词+名词
## Pydantic 模型
- 请求模型后缀 Request
- 响应模型后缀 Response
- 使用 Field 添加约束
## 示例代码
```python
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel, Field
router = APIRouter(prefix="/users", tags=["users"])
class UserCreateRequest(BaseModel):
username: str = Field(..., min_length=3, max_length=50)
email: str = Field(..., pattern=r"^[\w\.-]+@[\w\.-]+\.\w+$")
class UserResponse(BaseModel):
id: int
username: str
email: str
@router.post("/", response_model=UserResponse)
async def create_user(request: UserCreateRequest) -> UserResponse:
"""创建新用户"""
# 实现代码
pass
---
## 四、在 Claude Code 中使用 Skills
### 4.1 自动匹配
Claude Code 会自动检测并使用匹配的 Skills:
```bash
# 创建 Python 函数
> 创建一个处理数据的函数
Claude 自动应用 python-standard Skill
4.2 显式指定
# 明确指定使用某个 Skill
> 使用 fastapi-api Skill,创建一个用户注册接口
Claude 会优先应用 fastapi-api Skill 的规范
4.3 查看可用 Skills
# 询问当前可用的 Skills
> 当前有哪些可用的 Skills?
Claude 会列出检测到的 Skills:
- python-standard (全局)
- fastapi-api (全局)
- data-analysis (项目级)
五、实战 Skills 应用
场景1:API 开发
# 安装 FastAPI Skill 后
> 创建一个用户管理 API,包含 CRUD 操作
Claude 生成:
- 符合 FastAPI 规范的代码
- 正确的项目结构
- Pydantic 模型
- 完整的路由实现
场景2:测试生成
# 创建测试生成 Skill 后
> 为 src/services/user.py 生成测试
Claude 生成:
- 符合 pytest 规范的测试
- 正确的 fixture 使用
- Mock 外部依赖
- 覆盖各种场景
场景3:文档生成
# 创建文档 Skill 后
> 为项目生成 API 文档
Claude 生成:
- 符合 OpenAPI 规范的文档
- 包含所有端点说明
- 请求/响应示例
- 错误码说明
六、Skills 最佳实践
6.1 编写原则
| 原则 | 说明 | 示例 |
|---|---|---|
| 具体 | 明确说明使用场景 | “当用户要求编写 Python 代码时使用” |
| 简洁 | 只写 AI 不知道的信息 | 不写 Python 基础语法 |
| 可复用 | 通用性强的规范 | 团队代码规范 |
| 可验证 | 有明确的标准 | “使用 PEP8 规范” |
6.2 维护更新
# 定期更新 Skills
> 更新 fastapi-api Skill,添加 WebSocket 支持
> 更新 python-standard Skill,添加 Python 3.12 特性
6.3 版本管理
skills/
├── python-standard/
│ ├── SKILL.md # 当前版本
│ ├── SKILL-v1.md # 历史版本
│ └── CHANGELOG.md # 变更记录
七、Skills 高级用法
7.1 调用 Skills
Skills 可以通过斜杠命令调用:
# 直接调用特定 Skill
> /skill-name
# 带参数调用
> /skill-name arg1 arg2
7.2 Skills 组合使用
多个 Skills 可以组合使用:
# 同时应用多个规范
> 使用 python-standard 和 fastapi-api Skill,创建一个数据处理 API
7.3 项目级 Skills 最佳实践
# 项目级 Skills 存放位置
./.claude/skills/
├── project-style/ # 项目代码风格
├── business-logic/ # 业务逻辑规范
└── testing/ # 测试规范
八、常见问题
Q1: Skill 没有生效
检查:
- 目录位置是否正确
- SKILL.md 文件名是否正确(大写)
- YAML frontmatter 格式是否正确
- description 是否清晰
解决:
# 重新加载 Skills
> /reload
# 或重启 Claude Code
Q2: 多个 Skills 冲突
解决:
- 使用更具体的 description 限制范围
- 合并相似的 Skills
- 明确指定要使用的 Skill
Q3: 如何测试 Skill
方法:
# 创建测试请求
> 创建一个简单的函数测试 Skill 是否生效
# 检查输出是否符合规范
九、下一步学习
完成本指南后,建议学习:
- 07-代码分析与重构.md - 结合 Skills 进行代码重构
- 09-实战:PythonWebAPI开发.md - Skills 实战应用
更多推荐



所有评论(0)