Skills

Skills 是 Claude Code 中的专门化功能模块,就像给 Claude 安装"插件"一样。每个 skill 都是一个独立的指令集,用于执行特定的任务。

它的主要优点如下

  1. 可复用 - 编写一次,多次使用

  2. 标准化 - 确保团队按统一流程工作

  3. 自动化 - 自动执行复杂的多步骤任务

适用场景:

  • 代码审查 - 自动检查特定框架的最佳实践
  • 提交规范 - 标准化 git commit 流程
  • 文档生成 - 自动生成 API 文档、README 等

skills目录标准

# 正确的目录结构
~/.claude/skills/             # 个人级(跨项目)
    ├── my-skill/
    │   └── SKILL.md          # 文件名必须是 SKILL.md
    └── another-skill/
        └── SKILL.md

.claude/skills/               # 项目级示例
    ├── aws-cost-query/       # skill 目录名:小写+连字符
    │   └── SKILL.md          # 必须
    └── next-component/
        ├── SKILL.md          # 必须
        ├── examples.md       # 可选
        └── scripts/          # 可选
            └── helper.sh

Skill 目录命名规则:

✅ 正确:
- aws-cost-query
- next-component  
- code-review
- deploy-v2

❌ 错误:
- AWSCostQuery      # 不能用大写
- aws_cost_query    # 不能用下划线
- aws.cost.query    # 不能用点号

SKILL.md frontmatter 规范:

---
name: my-skill              # 必须:小写+连字符,最多64字符
description: 简短描述       # 必须:清晰说明功能
argument-hint: "[参数]"     # 可选:参数提示
runInSubAgent: false        # 可选:是否在子代理运行
---

优先级规则:

如果我们在 ~/.claude/skills/review/.claude/skills/review/ 都有 review skill,Claude 会使用 个人级~/.claude/skills/)的版本

使用建议:

场景 推荐位置 原因
个人常用工具 ~/.claude/skills/ 所有项目都能用
项目特定流程 .claude/skills/ 团队共享,版本管理
临时实验 .claude/skills/ 容易删除
团队标准 .claude/skills/ 提交到 Git

Skill和MCP的对比

  • Skills = 本地知识库 + 工作流模板(告诉 Claude “怎么做")
  • MCP = 外部服务连接器(给 Claude “数据和能力")
对比维度 Skills MCP
本质 Markdown 文件 外部服务协议
作用 提供知识和指令 连接实时数据/服务
复杂度 简单(写 Markdown) 复杂(配置协议、认证)
上下文消耗 低(按需加载) 中到高(全量加载)
离线可用 ✅ 是 ❌ 否
实时数据 ❌ 否 ✅ 是

Skills 和 MCP 不是互斥的,而是完美搭档。我们以一个查询 AWS 成本为例:

# Skill: 提供查询方法和最佳实践
---
name: aws-cost-guide
description: AWS 成本查询指南
---
## 成本查询最佳实践
- 使用 CUR2 表获取最详细数据
- 按 AppID 维度聚合
- 注意日期范围的选择
- 常见查询模板:[...]
// MCP: 提供实际的 Athena 连接
{
  "mcpServers": {
    "aws-athena": {
      "type": "http",
      "url": "https://athena-mcp.example.com"
    }
  }
}

结果: Claude 既知道如何查询(从 Skill),又能执行查询(通过 MCP)

Skill示例

让我们创建这样一个目录结构:

.claude/skills/               # 项目级示例
    ├── aws-cost-query/       # skill 目录名:小写+连字符
    │   └── SKILL.md          # 必须

SKILL.md里定义如下:

---
name: aws-cost-query
description: 快速查询 AWS 成本数据。支持按账户、AppID、EKS 等维度查询成本信息。
argument-hint: "[query-type] [date-range]"
runInSubAgent: false
---

# AWS 成本查询 Skill

这个 skill 帮助你快速查询项目中的 AWS 成本数据。

## 使用方法

调用方式:`/aws-cost-query [查询类型] [可选:日期范围]`

示例:
- `/aws-cost-query account` - 查询账户成本
- `/aws-cost-query appid december` - 查询 12 月 AppID 成本
- `/aws-cost-query eks` - 查询 EKS 分摊成本

## 任务流程

当收到查询请求时,按以下步骤执行:

### 1. 确定查询类型

根据参数 `$ARGUMENTS` 确定用户想查询什么:
- **account** - 账户级别成本
- **appid** - AppID 维度成本
- **eks** - EKS 分摊成本
- **customer** - 客户全量成本

### 2. 选择对应的脚本

项目根目录下有以下查询脚本:
- `query_account_costs.sh` - 查询账户成本
- `query_appid_costs.sh` - 查询 AppID 成本
- `query_eks_split_cost.sh` - 查询 EKS 成本
- `query_customer_all_december.sh` - 查询客户 12 月全量数据

### 3. 检查 AWS 配置

执行查询前,确认:
- AWS_PROFILE 是否正确设置(检查 `AWS_PROFILE_SETUP.md`- 是否有必要的权限访问 Athena

### 4. 执行查询

运行对应的 shell 脚本,例如:
```bash
bash query_account_costs.sh
```

### 5. 分析结果

查询完成后:
- 展示结果的关键指标
- 指出成本最高的项目
- 提供相关参考文档链接(如 `QUICKSIGHT_APPID_COST_GUIDE.md`## 参考文档

项目中的相关文档:
- `AWS_PROFILE_SETUP.md` - AWS 配置指南
- `QUICKSIGHT_APPID_COST_GUIDE.md` - AppID 成本分析指南
- `QUICK_START_APPID.md` - AppID 快速开始
- `EKS_SPLIT_COST_FINDINGS.md` - EKS 成本发现
- `AGGREGATED_CUR2_APPID_ANALYSIS.md` - CUR2 聚合分析

## 输出格式

以清晰的 markdown 表格展示结果,包括:
- 成本金额
- 时间范围
- 主要成本来源
- 优化建议(如有)

创建完成后,退出claude,然后进入。此时能看到这个skills已被加载:

image-20260203192034392

执行skills:

image-20260203192724478

写在最后

Claude Code是如何自动知道我们有这么多skill,并做选择的呢,让我们再执行一次context命令:

image-20260203205335560

它会将所有skills的descriptions保存在上下文:

image-20260203205424337