Skills 实战案例
Skills Practical Examples
本章展示几个实用的 Skills 案例,帮助你理解如何在实际工作中运用技能系统。
案例一:智能提交 /commit
内置的 /commit 技能是最常用的技能之一,它自动分析代码变更并生成规范的提交信息。
使用方式
> /commit工作流程
- 自动运行
git status和git diff查看变更 - 分析变更内容,判断变更类型(feature/fix/refactor/docs 等)
- 生成符合 Conventional Commits 规范的提交信息
- 暂存相关文件并创建提交
生成的提交信息示例
feat: add user authentication with OAuth2 support
- Add OAuth2 provider configuration
- Implement login/logout flow
- Add session management middleware
- Create user profile page
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>自定义提交规范
可以通过项目级 CLAUDE.md 自定义提交信息格式:
markdown
## Git 提交规范
- 使用中文提交信息
- 格式:<类型>(<范围>): <描述>
- 类型:feat, fix, refactor, docs, test, chore
- 提交信息不超过 72 字符案例二:代码审查 /review
/review 技能对当前代码变更进行全面审查。
使用方式
> /review # 审查当前未提交的变更
> /review HEAD~3 # 审查最近 3 次提交审查输出示例
markdown
## 代码审查报告
### 🔴 严重问题 (1)
1. `src/auth.ts:45` — SQL 注入风险
未使用参数化查询,直接拼接用户输入
### 🟡 警告 (3)
1. `src/utils.ts:12` — 未处理的 Promise rejection
2. `src/api.ts:88` — 硬编码的超时时间,建议改为配置项
3. `src/db.ts:34` — 缺少数据库连接错误处理
### 🟢 建议 (2)
1. `src/types.ts:5` — 建议使用更精确的类型替代 `any`
2. `src/components/Header.tsx:20` — 可提取为独立组件案例三:自定义图片生成技能
创建一个调用外部 API 生成图片的技能。
技能结构
.claude/skills/gen-image/
├── SKILL.md
└── scripts/
└── generate.shSKILL.md
markdown
---
name: gen-image
description: 使用 AI 生成图片并保存到项目中
invocable_by: user
user_command: /gen-image
---
# AI 图片生成
当用户请求生成图片时:
1. 理解用户的图片描述
2. 将描述翻译为英文(如果是中文)
3. 调用 scripts/generate.sh 脚本生成图片
4. 将图片保存到用户指定的路径(默认 ./assets/)
5. 返回图片路径和预览
## 使用方式
/gen-image 一只戴眼镜的橘猫在敲键盘
/gen-image --size 1024x1024 --output ./public/hero.png 科技感的城市天际线脚本 (scripts/generate.sh)
bash
#!/bin/bash
PROMPT="$1"
OUTPUT="${2:-./assets/generated.png}"
SIZE="${3:-1024x1024}"
curl -s "https://api.example.com/generate" \
-H "Authorization: Bearer $AI_IMAGE_API_KEY" \
-d "{\"prompt\": \"$PROMPT\", \"size\": \"$SIZE\"}" \
-o "$OUTPUT"
echo "Image saved to: $OUTPUT"案例四:项目初始化技能
快速搭建标准化的项目结构。
SKILL.md
markdown
---
name: init-fullstack
description: 初始化全栈 TypeScript 项目
invocable_by: user
user_command: /init-fullstack
---
# 全栈项目初始化
创建一个标准的全栈 TypeScript 项目,包含:
## 项目结构
\`\`\`
project/
├── apps/
│ ├── web/ # Next.js 前端
│ └── api/ # Express API
├── packages/
│ ├── shared/ # 共享类型和工具
│ └── ui/ # UI 组件库
├── package.json # Workspace 根配置
├── tsconfig.json # TypeScript 基础配置
└── turbo.json # Turborepo 配置
\`\`\`
## 技术栈
- 前端:Next.js 14 + React 18 + Tailwind CSS
- 后端:Express + Prisma + PostgreSQL
- 工具:TypeScript 5, Turborepo, ESLint, Prettier
- 测试:Vitest + Playwright
## 步骤
1. 创建目录结构
2. 初始化 package.json(workspace 配置)
3. 创建各子项目的配置文件
4. 安装依赖
5. 配置 TypeScript、ESLint、Prettier
6. 创建示例页面和 API
7. 验证项目可正常启动案例五:文档翻译技能
批量翻译 Markdown 文档。
SKILL.md
markdown
---
name: translate-docs
description: 将 Markdown 文档翻译为目标语言
invocable_by: user
user_command: /translate
---
# 文档翻译
将 Markdown 文档翻译为目标语言,保留格式和代码块。
## 规则
1. 保留所有 Markdown 格式(标题、列表、表格、代码块)
2. 代码块内容不翻译
3. 技术术语保留英文,括号标注中文
4. Front matter 保留原样
5. 链接文本翻译,URL 不变
6. 翻译后保存到对应的语言目录
## 使用方式
\`\`\`
/translate docs/guide.md --to zh-CN
/translate docs/*.md --to ja --output docs/ja/
\`\`\`使用效果
> /translate README.md --to zh-CN
✅ 翻译完成
- 源文件:README.md (English)
- 输出文件:README.zh-CN.md (简体中文)
- 段落数:24
- 保留代码块:8技能组合使用
多个技能可以组合使用,形成完整的工作流:
# 1. 初始化项目
> /init-fullstack my-app
# 2. 生成组件
> /gen-component UserProfile
# 3. 审查代码
> /review
# 4. 提交代码
> /commit
# 5. 翻译文档
> /translate README.md --to zh-CN技能开发建议
- 从简单的 SKILL.md 开始,逐步添加模板和脚本
- 一个技能专注于一个明确的任务
- 提供清晰的使用示例
- 考虑边界情况和错误处理