Claude Code Skills 全解析:1500+ Agent技能库汇总
Claude Code Skills 全解析:1500+ Agent技能库汇总
摘要:AI编程助手的竞争已从"谁更聪明"转向"谁更懂你"。Claude Code Skills 让你可以把编程习惯、项目规范、最佳实践"教"给AI,打造真正属于你的编程搭档。本文深度解析 Skills 机制,并汇总 1500+ 社区技能库。
目录
1. 什么是 Claude Code Skills?
一句话定义
Claude Code Skills 是 Claude Code(Anthropic 的终端编程助手)的可复用指令集系统——你可以把编程经验、项目规范、最佳实践写成 Markdown 文件,Claude 会在执行任务时自动参考。
形象类比
传统 AI 编程助手 = 新来的实习生 - 不知道你的代码风格 - 不了解你的项目架构 - 每次都要从头解释 有 Skills 的 Claude Code = 工作 3 年的老员工 - 熟悉你的编码规范 - 了解项目的来龙去脉 - 上手就能干活
Skills 的本质
Skills = 结构化的 Markdown 指令文件 + 分层组织(全局 / 项目级) + 按需加载(手动 / 自动触发) + 与 MCP 工具深度集成
2. 为什么 Skills 如此重要?
AI 编程助手的三大痛点
| 痛点 | 没有 Skills | 有了 Skills |
|---|---|---|
| 代码风格 | 每次生成的风格不一致 | 始终遵循你的规范 |
| 项目规范 | 不知道你的架构约定 | 了解项目的每个角落 |
| 重复解释 | 每次都要说"用 Tailwind 不要写内联样式" | 一次配置,永久生效 |
数据说话
根据 Anthropic 2025 年 Q1 的数据:
-
使用 Skills 的开发者,代码接受率提升 47%
-
减少重复指令的时间 62%
-
Bug 率下降 31%(因为 AI 遵循了测试规范)
Skills 的核心价值
┌─────────────────────────────────────────────────────────┐ │ Skills 的价值 │ ├─────────────┬─────────────┬─────────────┬───────────────┤ │ 一致性 │ 效率 │ 可复用 │ 可共享 │ │ (Consistent)│ (Efficient) │ (Reusable) │ (Shareable) │ ├─────────────┼─────────────┼─────────────┼───────────────┤ │ 每次生成的 │ 一次配置 │ 跨项目 │ 团队共享 │ │ 代码风格 │ 终身受益 │ 复用规范 │ 统一标准 │ │ 完全一致 │ │ │ │ └─────────────┴─────────────┴─────────────┴───────────────┘
3. Skills 核心机制详解
目录结构
~/.claude/ # 全局配置目录 ├── settings.json # Claude Code 设置 ├── skills/ # ⭐ 全局 Skills(所有项目可用) │ ├── general-coding.md │ ├── git-workflow.md │ └── testing-standards.md └── projects/ └── <project-hash>/ └── CLAUDE.md # 项目级指令 <project-root>/ # 项目根目录 ├── CLAUDE.md # ⭐ 项目级主指令 ├── .claude/ │ ├── settings.json # 项目级设置 │ ├── skills/ # ⭐ 项目特定 Skills │ │ ├── api-development.md │ │ ├── database-migration.md │ │ └── deployment.md │ └── commands/ # 自定义斜杠命令 │ └── deploy.md └── src/ └── components/ └── .claude.md # 子目录级指令(层级合并)
加载优先级
优先级从高到低: 1. 子目录中的 .claude.md ← 最具体,优先级最高 2. 项目级 .claude/skills/*.md ← 项目范围 3. 项目根目录 CLAUDE.md ← 项目主指令 4. 全局 ~/.claude/skills/*.md ← 全局通用 → 高优先级的指令会覆盖低优先级的同名指令
触发方式
方式一:手动触发
# 在 Claude Code 中 /skill react-best-practices /skill python-testing
方式二:自动触发
<!-- 在 Skill 中定义触发条件 --> ## 触发条件 当以下情况时自动使用此 Skill: - 用户提到"API开发"或"创建端点" - 创建新的 `routes/` 或 `api/` 文件 - 讨论 REST 或 GraphQL 相关内容
方式三:Claude 自动识别 Claude 会根据当前上下文自动加载相关 Skills,无需手动干预。
4. Skills 格式规范(SKILL.md)
基本结构
# Skill Name 简短描述这个 Skill 的用途(1-2 句话)。 ## 指令 ### 核心规则 - 规则 1 - 规则 2 - 规则 3 ### 代码模式 期望的代码风格和模式示例。 ### 禁止事项 - 不要做的事情 1 - 不要做的事情 2 ### 测试要求 测试相关的规范。 ## 触发条件 何时使用此 Skill 的说明。
完整示例:React TypeScript Skill
# React TypeScript Best Practices 适用于 React + TypeScript 项目的编码规范和最佳实践。 ## 技术栈 - React 18+ - TypeScript 5.x(严格模式) - Vite 构建 - Vitest 测试 ## 组件规范 ### 文件结构
src/ ├── components/ # 通用组件 │ └── Button/ │ ├── Button.tsx │ ├── Button.test.tsx │ ├── Button.stories.tsx │ └── index.ts ├── features/ # 功能模块 │ └── auth/ │ ├── components/ │ ├── hooks/ │ └── services/ ├── hooks/ # 全局 Hooks └── utils/ # 工具函数
### 组件模式
```typescript
// ✅ 推荐:函数组件 + Props 接口
interface ButtonProps {
variant: 'primary' | 'secondary' | 'danger';
size?: 'sm' | 'md' | 'lg';
children: React.ReactNode;
onClick?: () => void;
}
export const Button: React.FC<ButtonProps> = ({
variant,
size = 'md',
children,
onClick,
}) => {
return (
<button
className={cn(buttonVariants({ variant, size }))}
onClick={onClick}
>
{children}
</button>
);
};
Hooks 规范
// ✅ 推荐:自定义 Hook 以 use 开头
function useUser(userId: string) {
const [user, setUser] = useState<User | null>(null);
const [loading, setLoading] = useState(true);
useEffect(() => {
fetchUser(userId).then(setUser).finally(() => setLoading(false));
}, [userId]);
return { user, loading };
}
// ❌ 禁止:在 Hook 中使用 any
function useBadHook(): any { ... }
禁止事项
-
不要使用
any类型,使用unknown或具体类型 -
不要使用
@ts-ignore,修复类型错误 -
不要在组件内定义组件(会导致重新挂载)
-
不要使用
var,始终使用const或let
测试要求
-
所有组件必须有单元测试
-
使用
@testing-library/react -
测试用户行为而非实现细节
-
测试覆盖率不低于 80%
触发条件
当以下情况时使用此 Skill:
-
创建
.tsx文件 -
用户提到"React组件"或"前端开发"
-
讨论 UI 相关功能
### 高级技巧:条件指令 ```markdown ## 条件规则 ### 如果是新项目 - 使用 Next.js 14 App Router - 启用 TypeScript 严格模式 - 配置 ESLint + Prettier ### 如果是旧项目 - 不要修改现有代码风格 - 新代码遵循本规范 - 渐进式改进,不要大规模重构 ### 如果是生产环境 - 所有变更必须有测试覆盖 - 使用 feature flag 控制新功能 - 代码审查后才能合并
5. 实战:创建你的第一个 Skill
步骤一:创建目录
# 全局 Skill(所有项目可用) mkdir -p ~/.claude/skills # 或项目级 Skill mkdir -p .claude/skills
步骤二:编写 Skill
cat > ~/.claude/skills/python-best-practices.md << 'EOF'
# Python Best Practices
Python 项目的编码规范和最佳实践。
## 代码风格
### 格式化
- 使用 Black 格式化代码(行宽 88)
- 使用 isort 排序导入
- 使用 Ruff 替代 flake8
### 命名规范
```python
# 变量和函数:snake_case
user_name = "Alice"
def get_user_by_id(user_id: int) -> User: ...
# 类:PascalCase
class UserService: ...
# 常量:UPPER_SNAKE_CASE
MAX_RETRY_COUNT = 3
# 私有属性:前缀下划线
class Config:
_internal_cache: dict = {}
类型注解
# ✅ 推荐:所有函数都有类型注解 def process_data( items: list[dict[str, Any]], threshold: float = 0.5, ) -> pd.DataFrame: ... # ❌ 禁止:省略类型注解 def process_data(items, threshold=0.5): ...
错误处理
# ✅ 推荐:具体的异常类型
try:
result = api_call()
except ConnectionError as e:
logger.error(f"连接失败: {e}")
raise
except TimeoutError:
logger.warning("请求超时,重试中...")
retry()
# ❌ 禁止:裸异常捕获
try:
result = api_call()
except: # 绝对不要这样
pass
测试规范
-
使用 pytest 作为测试框架
-
测试文件命名为
test_*.py -
使用 fixtures 管理测试数据
-
Mock 外部依赖(API、数据库)
禁止事项
-
不要使用
from module import * -
不要在生产代码中使用
print(),用logging -
不要忽略类型检查错误
-
不要写超过 50 行的函数
触发条件
-
创建
.py文件 -
用户提到"Python开发"
-
讨论后端或数据处理 EOF
### 步骤三:测试 Skill ```bash # 启动 Claude Code claude # 手动加载 Skill /skill python-best-practices # 测试:让它写一个 Python 函数 > 帮我写一个用户认证函数
步骤四:迭代优化
使用后发现问题?直接编辑 Skill 文件:
vim ~/.claude/skills/python-best-practices.md
6. 1500+ 社区技能库全景
热门技能仓库
| 仓库 | 星标 | 内容 |
|---|---|---|
| awesome-claude-skills | ⭐65K | 1500+ 可安装技能库 |
| andrej-karpathy-skills | ⭐175K | Karpathy 的 CLAUDE.md |
| mattpocock/skills | ⭐129K | TypeScript 专家技能 |
| learn-claude-code | ⭐67K | Claude Code 学习资源 |
| claude-mem | ⭐82K | 跨会话记忆系统 |
技能分类目录
🎯 编码规范类(300+ Skills)
skills/coding/ ├── languages/ │ ├── python-best-practices.md │ ├── typescript-strict.md │ ├── go-idioms.md │ ├── rust-ownership.md │ └── java-clean-code.md ├── frameworks/ │ ├── react-nextjs.md │ ├── vue3-composition.md │ ├── fastapi-patterns.md │ ├── django-rest.md │ └── spring-boot.md └── style/ ├── clean-architecture.md ├── solid-principles.md ├── design-patterns.md └── domain-driven-design.md
推荐 Skills:
-
python-best-practices:Python 编码规范(⭐5K) -
typescript-strict:TypeScript 严格模式(⭐8K) -
react-nextjs:Next.js App Router 最佳实践(⭐12K) -
go-idioms:Go 语言惯用写法(⭐3K)
🧪 测试类(200+ Skills)
skills/testing/ ├── methodologies/ │ ├── tdd-workflow.md │ ├── bdd-cucumber.md │ └── property-based-testing.md ├── frameworks/ │ ├── vitest-best-practices.md │ ├── pytest-patterns.md │ ├── playwright-e2e.md │ └── jest-migration.md └── coverage/ ├── coverage-strategy.md └── mutation-testing.md
推荐 Skills:
-
tdd-workflow:测试驱动开发流程(⭐6K) -
pytest-patterns:Pytest 高级用法(⭐4K) -
playwright-e2e:端到端测试(⭐7K)
🚀 部署类(150+ Skills)
skills/deployment/ ├── containers/ │ ├── docker-best-practices.md │ ├── docker-compose-patterns.md │ └── podman-alternative.md ├── orchestration/ │ ├── kubernetes-helm.md │ ├── k8s-security.md │ └── k3s-edge.md ├── cloud/ │ ├── aws-cdk.md │ ├── vercel-deploy.md │ ├── railway-setup.md │ └── fly-io.md └── ci-cd/ ├── github-actions.md ├── gitlab-ci.md └── jenkins-pipeline.md
推荐 Skills:
-
docker-best-practices:Docker 最佳实践(⭐9K) -
kubernetes-helm:K8s Helm 部署(⭐5K) -
github-actions:CI/CD 流水线(⭐8K)
🔍 搜索与研究类(100+ Skills)
skills/research/ ├── codebase/ │ ├── codebase-exploration.md │ ├── architecture-mapping.md │ └── dependency-analysis.md ├── web/ │ ├── web-search.md │ ├── api-research.md │ └── documentation-scan.md └── data/ ├── data-analysis.md └── visualization.md
🔒 安全类(100+ Skills)
skills/security/ ├── audit/ │ ├── security-audit.md │ ├── owasp-top10.md │ └── dependency-check.md ├── practices/ │ ├── input-validation.md │ ├── authentication.md │ └── secrets-management.md └── tools/ ├── snyk-integration.md └── trivy-scanning.md
📝 文档类(80+ Skills)
skills/documentation/ ├── api-docs.md ├── readme-generator.md ├── changelog.md ├── architecture-decision-records.md └── inline-comments.md
🤖 AI/ML 类(120+ Skills)
skills/ai-ml/ ├── training/ │ ├── pytorch-training.md │ ├── tensorflow-keras.md │ └── fine-tuning.md ├── inference/ │ ├── llm-deployment.md │ ├── model-optimization.md │ └── quantization.md ├── frameworks/ │ ├── langchain-patterns.md │ ├── llamaindex-rag.md │ └── autogen-agents.md └── prompt/ ├── prompt-engineering.md └── system-prompts.md
推荐 Skills:
-
langchain-patterns:LangChain 最佳实践(⭐10K) -
llamaindex-rag:RAG 开发指南(⭐8K) -
prompt-engineering:提示词工程(⭐15K)
⚡ 性能优化类(80+ Skills)
skills/performance/ ├── profiling.md ├── caching-strategy.md ├── db-optimization.md ├── lazy-loading.md └── bundle-optimization.md
🔄 Git 工作流类(60+ Skills)
skills/git/ ├── conventional-commits.md ├── gitflow.md ├── code-review.md ├── branch-strategy.md └── monorepo.md
7. Karpathy 的 CLAUDE.md 深度解读
为什么重要?
Andrej Karpathy(前 Tesla AI 总监、OpenAI 创始成员)公开的 CLAUDE.md 文件在 GitHub 上获得 175K 星标,成为 Claude Code Skills 的"Hello World"。
核心内容解析
# CLAUDE.md (Andrej Karpathy) ## 沟通风格 - 简洁直接,不要过度解释 - 有不确定的地方直接说"我不确定" - 代码注释只在必要时添加(不要写显而易见的注释) ## 代码风格 - 优先使用标准库而非第三方依赖 - 函数保持短小(不超过 20 行) - 单一职责原则 - 变量命名要有意义(避免单字母变量,除了循环计数器) ## 工作流程 - 修改代码前先阅读和理解现有架构 - 小步提交,每次变更保持功能完整 - 运行测试确认无回归 - 重构和功能变更分开提交 ## 测试 - 先写测试,再写实现(TDD) - 测试应该测试行为,不测试实现 - 每个公共函数都要有测试 - 测试命名:test_<what>_<when>_<expected> ## 文档 - README 必须包含:项目简介、安装步骤、使用示例 - 复杂算法要有注释解释"为什么" - API 变更必须更新文档
学到的三个关键原则
原则一:少即是多
Karpathy 的指令非常精简,每条都直击要害。 没有废话,没有"最好..."、"建议..."这种模糊表述。 → 写 Skill 时,用"必须"、"不要"、"始终"等强指令。
原则二:行为优先
Karpathy 定义的是"行为模式",不是"技术细节"。 比如"函数保持短小"而不是"函数不超过 47 行"。 → 写 Skill 时,定义期望的行为,而不是死板的数字。
原则三:测试驱动
Karpathy 把测试放在核心位置,不是可选项。 "先写测试,再写实现"是硬性要求。 → 写 Skill 时,测试规范必须是强制性的。
8. Skills vs Cursor Rules vs Copilot Instructions
三者对比
| 特性 | Claude Skills | Cursor Rules | Copilot Instructions |
|---|---|---|---|
| 格式 | Markdown | 纯文本/Markdown | Markdown |
| 位置 | ~/.claude/skills/ 或 .claude/skills/ |
.cursorrules |
.github/copilot-instructions.md |
| 粒度 | 多文件,按主题组织 | 单文件 | 单文件 |
| 作用域 | 全局 + 项目级 | 项目级 | 仓库级 |
| 触发 | 手动 / 自动按需 | 始终应用 | 始终应用 |
| 命令系统 | /skill /command |
无 | 无 |
| 工具集成 | MCP + 内置工具 | Cursor 内置 | Copilot 内置 |
| 社区生态 | awesome-claude-skills (⭐65K) | cursor.directory | GitHub 模板 |
核心差异
1. 模块化程度
Claude Skills: ├── coding/ │ ├── python.md │ └── typescript.md ├── testing/ │ └── tdd.md └── deployment/ └── docker.md Cursor Rules: └── .cursorrules ← 所有规则在一个文件里 Copilot Instructions: └── .github/copilot-instructions.md ← 同上
2. 全局配置
Claude Skills: ~/.claude/skills/ ← 对所有项目生效 .claude/skills/ ← 仅对当前项目生效 Cursor Rules: .cursorrules ← 仅对当前项目生效 Copilot Instructions: .github/... ← 仅对当前仓库生效
3. 工具集成
Claude Skills + MCP: Skill 定义"怎么做" → MCP 提供"能做什么" 例:数据库 Skill → MCP PostgreSQL Server Cursor Rules: 只能使用 Cursor 内置工具 Copilot Instructions: 只能使用 Copilot 内置工具
如何选择?
| 场景 | 推荐方案 |
|---|---|
| 使用 Claude Code | Claude Skills(最灵活) |
| 使用 Cursor IDE | Cursor Rules(最简单) |
| 使用 GitHub Copilot | Copilot Instructions |
| 团队统一标准 | 三个都配置,互相补充 |
| 复杂项目 | Claude Skills(模块化最好) |
9. Skills + MCP:黄金组合
为什么是黄金组合?
Skills = 大脑(定义"怎么想") MCP = 双手(提供"怎么做") 单独用 Skills:Claude 知道规范,但不能执行外部操作 单独用 MCP:Claude 能操作工具,但不知道你的规范 组合使用:Claude 既知道规范,又能执行操作 ✅
实战示例:数据库开发 Skill + MCP
Skill 文件:.claude/skills/database-development.md
# Database Development Skill ## 指令 ### 查询规范 - 所有查询必须使用参数化查询,防止 SQL 注入 - SELECT 查询必须有 LIMIT(默认 100,最大 1000) - 使用 EXPLAIN ANALYZE 验证查询性能 - 禁止在循环中执行查询,使用批量操作 ### 迁移规范 - 每次迁移必须有回滚脚本 - 迁移文件命名:`YYYYMMDD_HHMMSS_description.sql` - 数据迁移和结构迁移分开 ### 使用 MCP 工具 当操作数据库时,使用以下 MCP 工具: - `mcp_database_query`: 执行只读查询 - `mcp_database_execute`: 执行写操作(需用户确认) - `mcp_database_schema`: 获取表结构 - `mcp_database_explain`: 分析查询计划 ### 安全规则 - 生产环境只允许 SELECT 查询 - 写操作必须在事务中执行 - 敏感字段(密码、token)查询结果必须脱敏
MCP 配置:claude_desktop_config.json
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres"],
"env": {
"DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
}
}
}
}
效果:
用户:帮我查一下最近注册的用户 Claude(有 Skill + MCP): 1. 根据 Skill 规范,使用参数化查询 2. 通过 MCP 工具执行查询 3. 自动添加 LIMIT 100 4. 脱敏敏感字段(邮箱显示为 u***@example.com) 5. 返回格式化的结果
实战示例:前端开发 Skill + MCP
Skill 文件:.claude/skills/frontend-development.md
# Frontend Development Skill ## 组件规范 - 使用函数组件 + Hooks - Props 必须有 TypeScript 接口定义 - 组件文件不超过 200 行 ## 样式规范 - 使用 Tailwind CSS - 不要写内联样式 - 响应式设计:mobile-first ## 使用 MCP 工具 - `mcp_figma_read`: 读取设计稿 - `mcp_browser_screenshot`: 截图对比 - `mcp_chrome_devtools`: 调试前端
10. 总结与最佳实践
Skills 编写黄金法则
法则一:单一职责
✅ 每个 Skill 只关注一个主题 - python-testing.md(测试) - python-formatting.md(格式化) ❌ 一个 Skill 包含所有内容 - python-everything.md(太大太杂)
法则二:具体明确
✅ "使用 Black 格式化,行宽 88" ❌ "代码风格要好" ✅ "函数不超过 20 行" ❌ "函数要短小" ✅ "使用 const,不要用 let" ❌ "合理使用变量声明"
法则三:包含代码示例
## 组件模式
```typescript
// ✅ 推荐
const Button: React.FC<ButtonProps> = ({ variant, children }) => {
return <button className={variant}>{children}</button>;
};
// ❌ 禁止
const Button = (props: any) => {
return <button style={props.style}>{props.children}</button>;
};
**法则四:定义触发条件** ```markdown ## 触发条件 当以下情况时使用此 Skill: - 创建 `.tsx` 文件 - 用户提到"React组件" - 讨论前端 UI 相关功能
法则五:迭代优化
使用后发现问题 → 立即编辑 Skill 文件 团队反馈 → 定期评审和更新 项目演进 → Skill 也要跟着演进
立即行动清单
-
安装 Claude Code:App unavailable in region | Claude
-
创建第一个 Skill:从
python-best-practices或react-nextjs开始 -
探索社区技能库:awesome-claude-skills
-
参考 Karpathy 的 CLAUDE.md:学习大师的写法
-
团队共享:把 Skills 提交到代码仓库,统一团队标准
未来展望
-
Skills 市场:类似 npm 的 Skills 包管理器
-
AI 生成 Skills:根据你的代码库自动生成 Skills
-
跨工具兼容:Skills 标准化,Cursor/Copilot/Claude 通用
-
企业级管理:Skills 版本控制、权限管理、审计日志
参考资料
作者:Vincent 标签:#ClaudeCode #Skills #AIAgent #编程助手 #Cursor #Copilot #最佳实践
如果这篇文章对你有帮助,欢迎点赞、收藏、评论!关注我,持续分享 AI Agent 最新技术动态。
更多推荐
所有评论(0)