Our review
A comprehensive guide explaining the Claude Code Skill system, including its architecture, file structure, configuration, and best practices for creating and using Skills to extend AI agent capabilities.
Strengths
- Describes progressive disclosure mechanism to conserve context window.
- Covers both user-invoked and model-invoked activation.
- Includes practical directory structure and YAML frontmatter specification.
Limitations
- Not a concrete Skill implementation but a meta-guide; users still need to design their own Skills.
- May become outdated as Claude Code evolves.
When you need to understand how to create, organize, and leverage Skills within Claude Code for complex multi-step tasks.
When you already have a specific Skill to use or when you need a quick answer to a simple question.
Security analysis
SafeThis SKILL.md is a tutorial article about Claude Code's skill system; it contains no executable instructions, no tool declarations, and no security-sensitive operations.
No concerns found
Examples
Create a new Skill for Claude Code following the standard directory structure. Include a SKILL.md with YAML frontmatter, an examples folder, and a references folder. Name the skill 'code-review' with description 'Performs detailed code review with checklist and security scan'.Explain how the Claude Code Skill system works, including the progressive disclosure mechanism, context forking, and the difference between user-invoked and model-invoked Skills.Show me how to configure the YAML frontmatter for a Skill that should run in a forked context with Explore agent, only allow Read and Grep tools, and be user-invocable but not model-invoked.Claude Code Skill 技能系统详解
Claude Code 的 Skill(技能)系统是其最强大的扩展机制之一。Skill 本质上是一组结构化的提示词和指令,能够让 Claude 在特定场景下展现出"超能力"。本文将深入介绍 Skill 的工作原理、使用场景、最佳实践,以及社区中最具影响力的几个 Skill。
1. Skill 原理
1.1 什么是 Skill
Skill 是 Claude Code 的自定义扩展,通过创建一个包含 SKILL.md 文件的文件夹来定义。Claude 会将其添加到自己的工具箱中,在合适的时机自动调用或由用户手动触发。
核心概念:
- Model-invoked(模型自主调用):与需要用户显式输入
/command的命令不同,Skill 可以由 Claude 根据任务描述自主决定是否激活 - 渐进式披露(Progressive Disclosure):只在需要时加载详细指令,避免上下文浪费
- 上下文隔离:通过
context: fork可以在独立的子代理中运行,保持主对话清晰
1.2 工作流程
用户请求 → Claude 分析任务 → 匹配 Skill Description → 加载 SKILL.md → 按指令执行
- Claude 接收用户请求
- 检索所有可用 Skill 的
description字段 - 判断是否有匹配的 Skill
- 如匹配,将 Skill 的完整 Prompt 加载到上下文
- 按照 SKILL.md 中的规范执行任务
1.3 存放位置
| 位置 | 路径 | 作用范围 |
|:---|:---|:---|
| 个人级 | ~/.claude/skills/<skill-name>/SKILL.md | 所有项目 |
| 项目级 | .claude/skills/<skill-name>/SKILL.md | 当前项目 |
| 插件提供 | <plugin>/skills/<skill-name>/SKILL.md | 插件启用处 |
| 企业级 | 托管设置 | 全组织用户 |
Claude Code 会自动发现嵌套的 .claude/skills/ 目录,支持 monorepo 场景。
1.4 目录结构
my-skill/
├── SKILL.md # 核心指令文件(必须)
├── template.md # 模板文件
├── examples/
│ └── sample.md # 示例输出
├── references/
│ └── api-spec.md # 参考文档(按需加载)
└── scripts/
└── validate.sh # 可执行脚本
1.5 SKILL.md 格式
每个 Skill 需要一个包含 YAML Frontmatter 和 Markdown 正文的 SKILL.md 文件:
---
name: explain-code # 唯一标识符,小写+连字符
description: | # 关键!Claude 根据此决定是否调用
Explains code with visual diagrams and analogies.
Use when explaining how code works.
argument-hint: [file-path] # 参数提示
allowed-tools: Read, Grep # 允许使用的工具
disable-model-invocation: false # true 则仅手动调用
user-invocable: true # false 则对用户隐藏
context: fork # fork 表示在子代理中运行
agent: Explore # 子代理类型
---
# Explain Code Skill
## Instructions
When explaining code, always include:
1. **Start with an analogy**: Compare to everyday life
2. **Draw a diagram**: Use ASCII art to show flow
3. **Walk through the code**: Step-by-step explanation
4. **Highlight gotchas**: Common mistakes to avoid
Frontmatter 字段说明:
| 字段 | 必须 | 说明 |
|:---|:---|:---|
| name | 否 | Skill 名称,默认为目录名 |
| description | 推荐 | 描述用途和触发条件,Claude 据此决定是否自动加载 |
| argument-hint | 否 | 自动补全提示,如 [issue-number] |
| allowed-tools | 否 | 限制可用工具,如 Read, Grep, Bash(git:*) |
| disable-model-invocation | 否 | true 禁止自动调用,仅允许手动 /name |
| user-invocable | 否 | false 对用户隐藏,仅供 Claude 内部调用 |
| context | 否 | fork 在隔离子代理中运行 |
| agent | 否 | 子代理类型:Explore、Plan、general-purpose |
2. 为什么需要 Skill
2.1 解决 AI Agent 的核心问题
AI Agent 在处理复杂任务时面临几个关键挑战:
| 问题 | 表现 | Skill 解决方案 | |:---|:---|:---| | 上下文遗忘 | 工作在上下文重置后消失 | 通过文件持久化状态 | | 目标漂移 | 多次工具调用后偏离原始目标 | 通过 hook 不断重读计划 | | 隐藏失败 | 错误未被追踪,导致重复尝试 | 在计划文件中记录失败 | | 步骤跳过 | 急于完成而忽略关键步骤 | 强制执行工作流程 | | 上下文膨胀 | 所有信息塞入有限窗口 | 渐进式披露,按需加载 |
2.2 Skill 的独特价值
1. 结构化的工作流程
Skill 将最佳实践固化为可复用的指令集。例如,一个 TDD Skill 可以强制 Claude 先写测试再写代码,而不是让它自由发挥。
2. 专业领域知识注入
通过 Skill 可以将团队特定的编码规范、API 设计模式、安全检查清单等领域知识注入 Claude,使其输出更符合实际需求。
3. 上下文高效利用
Skill 的 description 始终在上下文中,但完整指令只在触发时加载。支持大型参考文档按需读取,避免浪费宝贵的上下文空间。
4. 可复用与可共享
项目级 Skill 可提交到 Git,团队成员自动获得一致的开发体验。企业级 Skill 可统一部署给全组织。
3. 何时使用 Skill
3.1 适用场景
| 场景 | 示例 | 推荐原因 | |:---|:---|:---| | 多步骤复杂任务 | 代码审查、重构、调试 | 需要系统化流程 | | 需要专业知识 | API 设计、安全审计 | 注入领域专业知识 | | 团队规范执行 | 代码风格、提交规范 | 确保一致性 | | 重复性工作流 | PR 创建、部署、测试 | 减少重复配置 | | 长时间自主工作 | 50+ 工具调用的任务 | 防止目标漂移 |
3.2 不适用场景
| 场景 | 原因 | |:---|:---| | 简单问答 | 无需额外指令 | | 单文件小修改 | 开销不值得 | | 快速查询 | 直接执行更高效 | | 一次性任务 | 不值得创建 Skill |
3.3 调用方式
手动调用:
/skill-name [arguments]
自动触发:直接用自然语言描述任务,Claude 会根据 description 自动匹配:
帮我审查这个 PR 的代码质量
查看可用 Skill:
What skills are available?
4. 最佳实践
4.1 Description 编写
Description 是 Skill 最关键的部分,决定了触发时机。
编写原则:
- 从 Claude 的角度描述何时应该使用
- 包含具体的触发词和使用场景
- 明确说明能力边界
好的示例:
description: |
Generate Vue 3 components following team conventions.
Use when: creating new Vue components, refactoring existing components,
or when user mentions "Vue", "component", or "SFC".
差的示例:
description: Vue component helper # 太简短,触发不准确
4.2 指令结构化
推荐结构:
# Skill Name
## Overview
简要说明这个 Skill 做什么
## Prerequisites
执行前的检查项
## Instructions
1. 第一步...
2. 第二步...
## Examples
具体的输入输出示例
## Error Handling
常见错误的处理方式
## Limitations
明确说明不能做什么
4.3 上下文管理
核心原则:Claude 已经很聪明,只添加它不知道的信息。
| 做法 | 原因 |
|:---|:---|
| SKILL.md 保持 < 500 行 | 避免上下文浪费 |
| 详细文档放 references/ | 按需加载 |
| 使用简洁示例代替冗长解释 | 示例更有效 |
| 避免重复信息 | 信息只存一处 |
引用外部文件:
## Additional Resources
- For complete API details, see [reference.md](reference.md)
- For usage examples, see [examples.md](examples.md)
4.4 工具权限控制
遵循最小权限原则:
# 只读 Skill
allowed-tools: Read, Grep, Glob
# 代码修改 Skill
allowed-tools: Read, Edit, Write
# Git 操作 Skill
allowed-tools: Read, Bash(git:*)
4.5 测试与迭代
| 测试类型 | 方法 | |:---|:---| | 触发测试 | 用各种表述测试是否能正确激活 | | 执行测试 | 验证输出是否符合预期 | | 边界测试 | 测试超出范围的请求是否被正确拒绝 |
调试技巧:
- 如果不触发:扩展 description,添加更多触发词
- 如果触发太频繁:收窄 description,更具体
- 如果结果不一致:增加指令细节,添加验证步骤
5. 著名 Skill 介绍
5.1 Superpowers
来源:github.com/obra/superpowers
Superpowers 是一个组合式技能框架,实现了结构化的软件开发方法论。它解决了 Claude 跳过步骤的问题,提供了一整套测试、调试、规划的工作流。
核心理念:
| 原则 | 说明 | |:---|:---| | Test-Driven Development | 测试先于代码 | | Systematic over ad-hoc | 流程驱动而非直觉 | | Complexity reduction | 简单性是首要设计目标 | | Evidence over claims | 验证后才算成功 |
核心工作流:
-
Brainstorming(头脑风暴)
- 苏格拉底式设计精炼
- 分段验证设计方案
- 命令:
/superpowers:brainstorm
-
Planning(规划)
- 创建 2-5 分钟粒度的任务
- 包含完整规格说明
- 命令:
/superpowers:write-plan
-
Execution(执行)
- 子代理驱动开发
- 两阶段代码审查
- 命令:
/superpowers:execute-plan
-
Testing(测试)
- RED-GREEN-REFACTOR 循环
- 强制测试先行
- 不写测试则自动删除代码
-
Code Review(代码审查)
- 基于严重程度的问题报告
- 关键阻塞项标记
安装:
/plugin install superpowers@superpowers-marketplace
特点:
- 可以自主工作数小时而不偏离计划
- 自动触发 Skill,无需手动配置
- 强制 TDD,不写测试则删除代码
- 支持通过 worktree 并行开发
- 包含 15+ 技能覆盖测试、调试、协作
5.2 Planning with Files
来源:github.com/OthmanAdi/planning-with-files
这是一个实现 Manus 风格持久化 Markdown 规划的 Skill。Manus 是被 Meta 以 $2B 收购的 AI Agent 公司,其核心工作流模式就是通过文件进行规划。
核心理念:
将文件系统当作永久磁盘存储,将上下文窗口当作易失性 RAM。重要的东西都要写入文件。
三文件模式:
| 文件 | 用途 |
|:---|:---|
| task_plan.md | 阶段、检查点、进度追踪 |
| findings.md | 研究结果和发现 |
| progress.md | 会话日志和测试结果 |
工作原理:
PreToolUse Hook → 重读计划 → 执行操作 → PostToolUse Hook → 更新进度
↓
Stop Hook → 验证任务完成
- PreToolUse hook:重大决策前重读计划
- PostToolUse hook:文件操作后提醒更新进度
- Stop hook:关闭前验证任务完成
- Session recovery:上下文满后
/clear,自动恢复未同步工作
核心原则:
| 原则 | 实现 | |:---|:---| | 文件系统即记忆 | 存入文件,而非上下文 | | 注意力操控 | 决策前重读计划 | | 错误持久化 | 在计划文件中记录失败 | | 目标追踪 | 复选框显示进度 | | 完成验证 | Stop hook 检查所有阶段 |
安装:
claude plugins install OthmanAdi/planning-with-files
cp -r ~/.claude/plugins/cache/planning-with-files/planning-with-files/*/skills/planning-with-files ~/.claude/skills/
适用场景:
- 多步骤任务
- 研究性工作
- 项目构建
- 需要 50+ 工具调用的任务
5.3 NotebookLM Skill
来源:github.com/PleasePrompto/notebooklm-skill
这个 Skill 让 Claude Code 能够直接与 Google NotebookLM 交互,查询你上传的文档并获得有来源引用的回答。
解决的问题:
| 问题 | NotebookLM Skill 方案 | |:---|:---| | Token 消耗大 | 查询 NotebookLM 而非加载文档 | | 检索不准确 | 利用 Gemini 的预处理 | | 幻觉问题 | 答案仅来自上传文档 | | 手动切换应用 | 自动化浏览器交互 |
核心特性:
- 来源驱动回答:答案仅来自上传文档,大幅减少幻觉
- 浏览器自动化:使用 Patchright 自动交互
- 持久认证:一次 Google 登录,跨会话有效
- 本地库管理:保存笔记本链接和元数据
- 自包含:隔离的 Python 环境,无需全局安装
工作流程:
1. Claude 加载 SKILL.md 指令
2. 执行 Python 脚本进行认证或查询
3. 打开浏览器导航到 NotebookLM
4. 发送问题并捕获响应
5. 将答案返回给 Claude Code
安装:
mkdir -p ~/.claude/skills
cd ~/.claude/skills
git clone https://github.com/PleasePrompto/notebooklm-skill notebooklm
使用方式:
# 首次设置认证
"Set up NotebookLM authentication"
# 添加笔记本
"Query and add this notebook: [notebook-link]"
# 查询
"What does my React docs say about hooks?"
对比其他方案:
| vs 直接喂文档给 Claude | vs 本地 RAG | |:---|:---| | Token 成本极低 | 5 分钟 vs 数小时设置 | | 专业合成能力 | 更优质的答案 | | 多文档关联 | 无基础设施开销 | | 自动引用标注 | 无需维护向量库 |
限制:
- 仅支持本地 Claude Code(Web UI 沙盒限制)
- 无会话持久化(每个问题独立)
- 文档需手动上传到 NotebookLM
5.4 其他著名 Skill
官方 Skill(Anthropic)
| Skill | 说明 |
|:---|:---|
| frontend-design | 生成高质量 UI/UX 代码 |
| skill-creator | 辅助创建新 Skill |
| docx / pptx / xlsx | Office 文档操作 |
| pdf | PDF 文本提取和表单处理 |
| algorithmic-art | 使用 p5.js 创建生成艺术 |
| mcp-builder | 创建 MCP 服务器 |
合作伙伴 Skill
| 来源 | Skill | |:---|:---| | Vercel | React 最佳实践、部署指南 | | Trail of Bits | 安全审计、漏洞检测、智能合约分析 | | Sentry | 代码审查、PR 创建、Bug 识别 | | Cloudflare | Workers、Pages、存储参考 | | Hugging Face | 模型评估、数据集处理、训练 |
社区 Skill
| 类别 | Skill | |:---|:---| | 生产力 | Notion 集成、PPT 生成 | | 开发 | Terraform、AWS、PostgreSQL、Playwright | | 上下文工程 | 记忆系统、多代理模式、评估框架 | | 自动化 | n8n 工作流、Git 操作 |
Skill 资源汇总:
6. 创建自己的 Skill
6.1 快速开始
# 创建目录
mkdir -p ~/.claude/skills/my-skill
# 创建 SKILL.md
cat > ~/.claude/skills/my-skill/SKILL.md << 'EOF'
---
name: my-skill
description: |
Description of what this skill does.
Use when: specific trigger conditions.
---
# My Skill
## Instructions
1. First step...
2. Second step...
## Examples
Input: ...
Output: ...
EOF
# 重启 Claude Code 或刷新配置
6.2 进阶技巧
动态上下文注入:
---
name: pr-summary
description: Summarize pull request changes
context: fork
agent: Explore
allowed-tools: Bash(gh:*)
---
## Context
- PR diff: !`gh pr diff`
- PR comments: !`gh pr view --comments`
## Task
Summarize this pull request...
启用深度思考:
---
name: deep-analysis
---
Ultrathink: Carefully analyze this code structure...
使用参数:
---
name: fix-issue
argument-hint: [issue-number]
---
Fix GitHub issue $ARGUMENTS following our standards.
7. 总结
Claude Code Skill 是将 AI Agent 从"聪明助手"转变为"结构化协作者"的关键机制。通过 Skill:
- 固化最佳实践:将经验沉淀为可复用的工作流
- 注入专业知识:让 Claude 成为领域专家
- 保持目标聚焦:防止在复杂任务中迷失
- 高效利用上下文:渐进式披露,按需加载
- 团队知识共享:统一开发规范和流程
选择合适的 Skill(如 Superpowers、Planning with Files)或创建自定义 Skill,能够显著提升 Claude Code 在复杂项目中的表现。
参考
Next.js App Router Expert
Development
A skill that turns Claude into a Next.js App Router expert.
README Generator
Development
Creates professional and comprehensive README.md files for your projects.
API Documentation Writer
Development
Generates comprehensive API documentation in OpenAPI/Swagger format.