Skills: 创建第一个 Skill

最后更新:2026-08-31

纸上得来终觉浅,绝知此事要躬行。这一课带你从零创建一个真正可用的 Skill。


1. 需求分析

我们要创建一个 代码审查 Skill,需求如下:

需求项 说明
目标 自动审查代码,输出结构化审查报告
审查维度 安全性、性能、可读性、最佳实践
输出格式 按严重程度分级的审查清单
触发方式 关键词 "review" 或手动调用
工具需求 读取文件、搜索代码

2. 创建 Skill 文件

(1) 创建文件

BASH
# Claude Code
touch .claude/skills/code-review.md

# OpenCode
touch skills/code-review.md

(2) 编写 Frontmatter

YAML
---
name: code-review
description: "自动代码审查技能,检查安全性、性能、可读性和最佳实践"
triggers:
  - keyword: "review|审查代码|代码审查"
tools:
  - Read
  - Grep
  - Glob
---

(3) 编写提示词主体

MARKDOWN
# 代码审查技能

## 角色
你是高级代码审查专家,拥有 10 年以上全栈开发经验。

## 审查流程
1. 使用 Read 工具读取目标文件
2. 使用 Grep 搜索相关上下文(如类型定义、接口)
3. 按以下四个维度审查

## 审查维度

### 安全性
- SQL 注入、XSS、CSRF 等常见漏洞
- 敏感信息硬编码
- 不安全的依赖使用

### 性能
- N+1 查询、不必要的循环
- 内存泄漏风险
- 缺少缓存/索引

### 可读性
- 命名是否清晰
- 函数是否过长(>50 行警告)
- 注释是否充分

### 最佳实践
- 是否遵循项目约定
- 错误处理是否完善
- 是否有冗余代码

## 输出格式

对每个问题输出:
- 📍 位置:文件名:行号
- 🔴/🟡/🟢 严重程度
- 📝 问题描述
- ✅ 修改建议(含代码示例)

3. 测试 Skill

(1) 手动触发

在对话中输入触发关键词:

TEXT 📖 仅展示
你: review src/auth/login.py
AI: (自动加载 code-review skill,执行审查流程)

(2) 观察行为

验证 Skill 是否正确加载:

TEXT 📖 仅展示
✅ 是否自动读取了目标文件?
✅ 是否按四个维度审查?
✅ 是否输出了分级的审查报告?
✅ 是否给出了具体的修改建议?

(3) 调整优化

如果输出不理想,调整提示词:

MARKDOWN
# 优化:增加示例输出

## 示例输出

📍 位置:src/auth/login.py:42
🔴 严重:SQL 注入风险
📝 使用字符串拼接构建 SQL 查询
✅ 建议:
```python
# Before
query = f"SELECT * FROM users WHERE name = '{username}'"

# After
query = "SELECT * FROM users WHERE name = ?"
cursor.execute(query, (username,))

---

## 4. 迭代完善

### (1) 增加上下文感知

```markdown
## 上下文规则

- 如果项目有 .eslintrc,遵循其规则审查
- 如果项目有 pyproject.toml,检查是否遵循配置
- 审查前先用 Glob 查看项目技术栈

(2) 增加条件分支

MARKDOWN
## 条件审查

- Python 项目:额外检查 type hints、docstring
- TypeScript 项目:额外检查 any 类型、类型安全
- Go 项目:额外检查 error handling、goroutine 泄漏

(3) 增加团队规范

MARKDOWN
## 团队规范

- 函数不超过 30 行(团队约定比 50 行更严格)
- 必须有单元测试覆盖
- API 端点必须有 Swagger 文档

Alice 完成迭代后,团队的代码审查效率提升了 3 倍。Bob 说:"关键是提示词要具体——'审查代码'太模糊,'按四维度分级输出'才是可执行的指令。"


❓ 常见问题

Q Skill 没被自动加载怎么办?
A 检查文件名和目录是否正确,frontmatter 的 triggers 是否匹配你输入的关键词,以及平台是否支持自动加载。
Q 提示词多长合适?
A 有效即可,不限长度。实用 Skill 通常 50-200 行。关键是具体和可操作,而非冗长和模糊。
Q 能在一个 Skill 里处理多种语言吗?
A 可以,用条件分支。但建议按语言拆分为独立 Skill,更易维护。

📖 小节


📝 作业

  1. 基础题(难度⭐):按照本课步骤,创建一个 code-review Skill 并测试运行。
  2. 进阶题(难度⭐⭐):为 code-review Skill 增加条件分支,支持至少 2 种编程语言的特定审查规则。
  3. 挑战题(难度⭐⭐⭐):创建一个完整的"API 文档生成"Skill,包含需求分析、提示词设计、测试验证全流程。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏