Matt Pocock 将自己在 Claude Code 中打磨了数月的 AI 协作工作流,打包成可复用、可组合的 SKILL.md 技能包,开启了"AI 技能包管理"的工程化时代。
想象一下:你新招了一个能力超强的实习生 Claude。每次让他写代码,你都得花 20 分钟交代一遍:"先写测试、再实现、再重构。不要直接改代码,先问我。Git push 之前必须确认。"
一个月后你崩溃了——每次对话都要重新教一遍。
Matt Pocock 也遇到过这个问题。他的解决方案不是"记住我说的话",而是把这些指令打包成一个个可复用的"技能包",像乐高积木一样按需装载。于是在 2026 年 2 月 3 日,他把自己的 .claude/skills/ 目录开源了——mattpocock/skills 诞生。
结果:不到 3 个月,这个仓库飙到 58k+ Stars,成为 AI 编程领域的现象级项目。
mattpocock/skills 之所以能引爆社区,是因为它精准地回答了三个问题:
这是整个系统的基石。Claude Code 的上下文窗口就像一间小公寓——你不能把所有东西都堆进去。
设计妙处:借鉴了操作系统虚拟内存的"按需分页"思想——只加载当前需要的部分。20 个技能如果全量加载需 100k tokens,分层后仅 ~2k tokens(20 × 100)。
---
name: tdd
description: "Red-Green-Refactor TDD 循环"
version: "1.0.0"
user-invocable: true
allowed-tools: [Read, Write, Bash, Grep]
tags: [testing, tdd, development]
---
# TDD 技能
## Role Definition
你是 TDD 驱动开发专家...
## Workflow
1. **Red** — 先写一个会失败的测试
2. **Green** — 写最少代码让测试通过
3. **Refactor** — 优化代码,保持绿色
| 字段 | 约束 | 用途 |
|---|---|---|
name | kebab-case,≤64字符 | 唯一标识(也是 slash command 名) |
description | ≤1024字符 | L1 加载项,技能发现用 |
version | semver | 版本管理 |
user-invocable | boolean | 是否可通过 /name 调用 |
allowed-tools | 数组 | 运行时授予的工具权限 |
tags | 数组 | 搜索分类 |
.claude/skills/<skill-name>/
├── SKILL.md # 必需 —— 技能核心
├── REFERENCE.md # 可选 —— API 文档
├── EXAMPLES.md # 可选 —— few-shot 示例
├── TROUBLESHOOTING.md # 可选 —— 常见问题
├── scripts/ # 可选 —— 可执行脚本
├── references/ # 可选 —— 长文档
├── templates/ # 可选 —— 输出模板
└── resources/ # 可选 —— 数据文件
仓库包含约 22 个 SKILL.md 文件,覆盖 4 个大类:
| 技能 | 功能 | 设计亮点 |
|---|---|---|
| grill-me | 编码前的需求追问 | 18+ 问题穷举盲点 |
| grill-with-docs | 需求追问+文档生成 | 在 grill 基础上产出文档 |
| tdd | 红绿重构 TDD 循环 | 强制不可跳过 Red 阶段 |
| diagnose | Bug 科学排查循环 | 假说-验证 debug 方法论 |
| triage | GitHub Issue 分类 | 状态机驱动的标签管理 |
| to-prd | 对话→PRD 生成 | 模糊需求结构化 |
| to-issues | PRD→GitHub Issues | 垂直切片拆解 |
| improve-codebase-architecture | 架构改进建议 | 渐进式改进 |
| zoom-out | 代码库高空视角 | 整体架构概览 |
| prototype | 快速原型 | 标记为"可丢弃" |
| 技能 | 功能 | 设计亮点 |
|---|---|---|
| caveman | 压缩沟通模式 | 减少 ~75% token 消耗 |
| handoff | Agent 间交接文档 | 结构化的上下文移交 |
| write-a-skill | 元技能——写新技能 | 自举设计,系统可自我扩展 |
| 技能 | 功能 |
|---|---|
| setup-matt-pocock-skills | 一键初始化全局配置 |
| git-guardrails-claude-code | 拦截危险 git 命令 |
| setup-pre-commit | Husky + lint-staged 配置 |
| scaffold-exercises | 练习目录脚手架生成 |
| migrate-to-shoehorn | 测试断言迁移工具 |
setup-matt-pocock-skills 在首次运行时自动检测项目环境:git remote → 检测 issue tracker;已有标签 → 合并而非替换;项目类型 → 选择合适的模板。结果写入 docs/agents/ 目录下的项目配置文件。
类比:就像 Spring 的 IoC 容器——技能是"通用逻辑",项目配置是"注入的依赖"。
让 AI 扮演一个"烦人的同事",不断对你的设计方案提出质疑。不写一行代码,只提问:
"你考虑过边界情况吗?这个接口的调用方是谁?错误处理策略是什么?如果用户输入为空怎么办?这个方案的性能瓶颈在哪里?..."
为什么有效:人类在表达时容易陷入"知识的诅咒"——以为别人知道的和自己一样多。Grill Me 通过强制外化思维过程,暴露盲区。
to-issues 将 PRD 拆解为用户故事的粒度,而非技术层粒度。
错误方式(水平分层):
正确方式(垂直切片):
安全代理,拦截操作:git push、git reset --hard、git clean -fd。哲学:AI 执行速度快但"犯错更快",Guardrails 是"慢下来,确保正确"的机制。
大多数人对这个仓库的第一反应是:"哦,一堆 Claude 提示词模板。"
大错特错。
只要仔细分析,你会发现这个仓库实际上在做三件比"提示词"深刻得多的事情:
传统的 AI 交互是 REPL(Read-Eval-Print Loop) 模式——你问一句,AI 答一句,所有状态在对话中流转。而 SKILL.md 的本质是将认知状态持久化到文件系统:
REPL 模式: 人类大脑 ←→ AI 上下文
Skill 模式: 人类大脑 ←→ [文件系统] ←→ AI 上下文
↑__ 可检查、可版本控制、可复用 __↑
当 to-prd 将对话内容生成为 PRD 文件时,它不再是对话中的一段文字——它是一个可审查、可修改、可版本控制的制品。这是 AI 交互从"瞬时对话"到"工程工件"的质变。
write-a-skill 是整座大厦的基石。它是一个写技能的技能。这意味着这套系统不需要外部维护者——AI 自己就能扩展自己的能力边界。如果你遇到一个需要新技能的场景,你不需要等 Matt Pocock 发 PR。你只需要运行 /write-a-skill,AI 就会引导你创建新的 SKILL.md,然后它立刻就能用。
这实际上是 Agent 领域的自举(Bootstrapping)——与编译器中"用 C 写 C 编译器"异曲同工。
2026 年 4-5 月,mattpocock/skills 引爆后,社区迅速跟进了多个衍生项目:
| 项目 | 定位 |
|---|---|
| vercel-labs/skills | npx skills CLI 工具,成为 Skill 的"npm" |
| ComposioHQ/awesome-codex-skills | Codex 生态的技能集合 |
| vinvcn/mattpocock-skills-zh-CN | 简体中文本地化版 |
| vskill | 安全扫描增强版包管理器 |
最耐人寻味的是,有人已经开始在 npm 上发布 SKILL.md 包,将"认知指令"作为可分发的产品。这是一个全新的软件品类——认知包(Cognitive Packages)。
# 安装全部技能
npx skills@latest add mattpocock/skills
# 安装单个技能(推荐新手这样)
npx skills@latest add mattpocock/skills --skill grill-me
npx skills@latest add mattpocock/skills --skill tdd
npx skills@latest add mattpocock/skills --skill git-guardrails-claude-code
# 在 Claude Code 中运行
/setup-matt-pocock-skills
社区公认的"最小可用组合":
---
name: my-custom-review
description: "自定义代码审查技能"
version: "1.0.0"
user-invocable: true
allowed-tools: [Read, Grep, Bash]
---
# 我的代码审查技能
## Role
你是一个专门审查 [XX 类型] 代码的专家。
## Checklist
1. 检查 [关注点 A]
2. 检查 [关注点 B]
3. 检查 [关注点 C]
## Output Format
以 Markdown 表格输出审查结果。
| 🔴 反模式 | ✅ 正确做法 |
|---|---|
| 一个 SKILL.md 里塞满所有逻辑 | 保持 SKILL.md 精简,细节放 references/ |
| 技能之间重复定义相同规则 | 通过配置分离(docs/agents/)共享 |
| 忘记设置 allowed-tools | 明确声明技能需要哪些工具权限 |
| 描述太长(超 1024 字符) | 描述越短,L1 发现越精准 |
| 一次性写 10 个技能全装上 | 从 3 个核心技能开始,按需增加 |
~/.claude/skills/)和项目级(./.claude/skills/),确保安装位置正确。运行 npx skills list 查看已安装的技能。name 和 description 字段。普通 .md 文件不会被 Claude Code 识别为技能。npx skills CLI 支持 55+ 个 Agent 平台,包括 Cursor、GitHub Copilot、Windsurf 等。但不同平台对 SKILL.md 的解析程度不同,建议在目标平台上测试。scripts/ 目录引入脚本,通过 references/ 引用长文档。但 L2 激活只会加载 SKILL.md 本体。npx skills@latest update。注意:有已知 bug(vercel-labs/skills#371),某些环境下 npx skills update 会静默失败,建议使用 npx skills@latest add <repo> --skill <name> -g -y 重新安装。/name 调用?setup-matt-pocock-skills 体现了什么设计模式?它解决了什么核心问题?write-a-skill 是一个"元技能"?它有什么深远意义?/find-skills 搜索更多技能