在 AI 辅助编程的领域,Claude Code (Anthropic 推出的命令行 Agent 工具) 正迅速成为开发者的心头好。除了强大的代码理解能力外,它最“杀手级”的功能莫过于 Skills(技能)

如果你觉得每次都要重复输入长串的 Prompt 来让 Claude 遵循特定的代码规范,或者希望它能自动执行一系列复杂的本地脚本,那么 Skill 就是为你量身定制的功能。

本文将带你深入了解 Skill 的作用、原理,并手把手教你如何打造自己的专属技能。


?️ 什么是 Claude Code 的 "Skill"?

简单来说,Skill 是你外挂给 Claude 的“短期记忆”与“工具箱”的结合体。

在 Claude Code (CLI) 中,Skill 本质上是一个包含特定指令文件(SKILL.md)和相关资源(如脚本、模板)的文件夹。

它的核心作用:

  1. 固化工作流 (Standardization): 将复杂的 Prompt 变成可重复调用的“技能”。例如:“按照公司 V2 架构生成 API 文档”。

  2. 扩展能力 (Extensibility): 允许 Claude 调用本地脚本(Python, Bash 等)来完成它本身做不到的事情(如操作数据库、生成特定格式的二进制文件)。

  3. 上下文管理 (Context Optimization): 采用“渐进式披露” (Progressive Disclosure) 原则。Claude 不会一次性加载所有技能的详细内容,而是先看“简介”,觉得需要用了才加载详细指令,从而节省 Token 并保持上下文清晰。


? Skill 的结构与原理

一个标准的 Skill 只是一个放在特定目录下的文件夹。

典型的文件结构如下:

Plaintext

my-skill/                  <-- 技能文件夹
├── SKILL.md               <-- 核心:包含元数据(Metadata)和详细指令
├── scripts/               <-- 可选:存放 Python/Bash 脚本
│   └── optimize_img.py
└── assets/                <-- 可选:存放模板或参考文件
    └── template.json

核心文件:SKILL.md

这是 Claude 的“说明书”。它必须包含 Frontmatter (元数据头),告诉 Claude 这个技能叫什么、什么时候用。

Markdown
---
name: image-optimizer              # 技能名称(唯一 ID)
description: 当用户想要压缩或优化项目中的 PNG/JPG 图片时使用此技能。  # 触发条件
---

# Image Optimizer Guide

当用户要求优化图片时,请遵循以下步骤:
1. 确认用户想要优化的目标文件夹。
2. 使用 `scripts/optimize_img.py` 脚本进行处理。
3. 报告优化了多少张图片以及节省的空间。

⚡️ 实战教程:如何设置你的第一个 Skill

假设我们要创建一个 "Git Commit 规范助手",让 Claude 每次提交代码时,都严格遵循 Angular Commit Message 规范(如 feat:, fix: 等)。

第一步:找到技能目录

Claude Code CLI 会自动扫描以下两个位置:

  • 全局技能 (Global): ~/.claude/skills/ (对所有项目生效)

  • 项目技能 (Project): 项目根目录下的 .claude/skills/ (仅对当前项目生效)

建议初学者先从全局目录开始。

第二步:创建文件夹

打开终端,执行:

Bash
mkdir -p ~/.claude/skills/conventional-commit

第三步:编写 SKILL.md

在文件夹中创建 SKILL.md 文件,并填入以下内容:

Markdown
---
name: conventional-commit
description: 当用户要求提交代码 (git commit) 或生成提交信息时,必须使用此技能。它确保所有提交都符合 Conventional Commits 规范。
---

# Conventional Commits Guide

你是 Git 提交专家。当用户要求提交代码时,请**严格**遵循以下规则,不要询问用户偏好,直接执行。

## 1. 提交格式
格式必须为:`(): `

### Type 列表:
- `feat`: 新功能
- `fix`: 修复 Bug
- `docs`: 文档变更
- `style`: 代码格式调整(不影响逻辑)
- `refactor`: 重构(无 Bug 修复,无新功能)
- `test`: 测试用例
- `chore`: 构建过程或辅助工具变动

## 2. 执行步骤
1. 分析 `git status` 和 `git diff` 了解变更内容。
2. 生成符合上述格式的提交信息。
3. **展示生成的提交信息给用户看**,并简要解释为什么选择这个 type。
4. 只有在用户确认后,才执行 `git commit -m "..."`。

## 3. 禁止事项
- 禁止使用模糊的提交信息,如 "update code" 或 "fixed bug"。
- 描述部分必须用英文(除非用户特别指定中文)。

第四步:测试生效

  1. 重启或新开一个 Claude Code 终端会话。

  2. 随便修改一个文件。

  3. 输入指令:commit these changes

  4. 观察: Claude 会在思考过程中显示 "Activating skill: conventional-commit",然后按照你的 Markdown 规则生成规范的提交信息。


? 进阶技巧:带脚本的 Skill

Skill 的强大之处在于它可以包含可执行代码

例如,你可以做一个 "Database Seeder" (数据库填充器) 技能:

  1. scripts/ 下放一个 Python 脚本 seed_users.py

  2. SKILL.md 中写道:"当用户需要测试数据时,运行 python {skill_dir}/scripts/seed_users.py"

  3. Claude 会自动识别路径并执行脚本,无需你手动敲命令。

设置小贴士 (Best Practices)

  • Description 是关键: Claude 是根据 description 字段来决定是否加载这个技能的。描述要包含“触发词”(Trigger words),例如“当用户提到 X 时...”。

  • 不要 Hardcode 密钥: 永远不要在 Skill 文件里写 API Key。应该让脚本从环境变量中读取。

  • 保持原子性: 一个 Skill 最好只做一类事(Unix 哲学)。不要把“写代码”和“部署服务器”混在一个 Skill 里。


结语

通过配置 Skills,你实际上是在“编程”你的 AI 助手。你不再是每次都对着 AI 喊话的指挥官,而是设计了一套精密 SOP(标准作业程序)的架构师。

现在的 Claude Code 不仅仅是一个聊天框,它是一个可以通过文件系统进行无限扩展的智能终端。

下一步行动: 现在就去检查你的 ~/.claude/ 目录,尝试创建一个简单的 readme-generator 技能,让 Claude 学会按照你们团队特定的风格生成文档!

这个视频非常相关,因为它详细演示了如何在 2026 年(即当前最新版本环境)创建 Claude Code 的 Agent Skills,涵盖了从文件夹结构创建到编写 SKILL.md 以及测试的完整流程。