读:Matt Pocock 的 skills——需求拷问机与 AI 技能的自我进化
目录
你让 AI 写一段登录功能的代码。放在以前,AI 听完就开始噼里啪啦输出几百行代码,你读完发现逻辑不对,删除重来。现在装了 grill-me 技能后,AI 听完你的需求,一句话不写,反手就问你 20 个问题。
这就是 Matt Pocock 的 skills 项目做的事情。它提供了一套可安装的技能模板,每个技能强制 AI 在执行前先完成特定的思考流程。本文聚焦其中两个最有特色的设计:grill-me(需求拷问机)和 write-a-skill(元技能)。
grill-me:先问 20 个问题,再写一行代码
grill-me 的核心机制很简单:当你提出一个需求时,AI 不会直接开始写代码,而是先对你发起一连串的追问。
你说"帮我实现一个登录功能",它会问:
- 目标用户是普通网友还是公司内部员工?
- 用邮箱、手机号还是用户名登录?
- 输错三次密码怎么办,锁账号还是等五分钟再试?
- SQL 注入怎么防?
- 同时一万人登录扛得住吗?
这些问题覆盖了功能开发的各个维度:用户场景、边界条件、安全防护、性能要求。每一个问题背后都是一个常见的"以为说清楚了,其实没有"的坑。
为什么 grill-me 有效
AI 编程中最难的环节是需求对齐,写代码反而是简单的那部分。你说"处理一下文本文件",AI 以为你要写一个完整的文本分析工具。你心里想的其实是"把第一列提取出来排序"。双方都自信满满地理解错了,结果就是写完 400 行再删除重来。
这个场景的本质是:人类说需求时习惯省略大量"常识性"的背景信息。默认对方"应该懂"。但 AI 没有常识。它不会追问"你讲的太模糊了,能具体一点吗?",而是直接按自己的"最佳猜测"开始写,而且写得特别快、特别自信。你快它也快,最后两个人都白忙。
grill-me 打断了这个"快进到失败"的节奏。它让 AI 在执行前显式地做一个"需求验证"的步骤,把所有需要确认的假设摊在桌面上,一条一条问你。这个过程看起来慢了(要回答 20 个问题才动手),但避免了"写完再删"的循环,实际上是省时间。
这和 Conducty 的"追踪弹"原则 是一个道理:用最小的成本先在假设层面验证,确认方向对了再批量执行。
从行为层面改变 AI
Matt Pocock 的 skills 项目和 addyosmani 的 agent-skills 有一个本质区别:agent-skills 是模板,你复制一份到项目里用;Matt Pocock 的 skills 是可安装的交互式技能包。安装后 AI 的行为会实时改变。它多了一套"遇到需求先质疑"的行为模式,不止是一份参考文档。
你可以把 grill-me 理解成面向 AI 的"行为矫正器"。大多数 AI 编码工具默认的行为模式是"你说→我做",这个模式在需求模糊时会产生大量废代码。grill-me 把它改成了"你说→我问→你答→我做"。多加的这一步"我问",恰恰是区分生手工程师和资深工程师的关键动作。
grill-me 与方案探索技能的区别
grill-me 看起来和 Claude Code 生态中的方案探索类技能(比如 superpowers 中的 brainstorming)有点像——都是在写代码之前追问问题。但它们的层次不同。
brainstorming 解决的是"该不该做、做什么方案"——你有一个模糊的想法,它帮你拆解成几个可行的方向,评估取舍,产出一份设计文档再动手。它工作在方案层。grill-me 解决的是"方案已经定了,边界条件是什么"——你决定做登录了,它帮你补上忘了说的细节:用什么方式登录、出错怎么处理、安全边界在哪里。它工作在实现层。
两者可以串联使用。先跑 brainstorming 确定整体方案,然后到具体实现时,grill-me 自动补上需求细节。一个负责战略层,一个负责战术层。
如果你想更进一步,可以用 write-a-skill 把两个流程合并成一个自定义技能,从方案探索到边界定义在一个文件里走完。当然,更简单的做法是在 prompt 里直接加一句"在我确认之前不要写代码,先问清楚所有边界条件"——这已经能达到 grill-me 八九成的效果。
write-a-skill:技能的可编程化
如果说 grill-me 是一个具体的技能,那 write-a-skill 就是制造技能的技能,也就是元技能(meta-skill)。
它的工作方式很简单:你对 AI 说"帮我写一个'代码审查'的技能",AI 会按照标准流程来执行。它先问你审查标准是什么、关注哪些维度、输出什么格式,然后自动生成一个符合规范的新技能文件。安装后就能用 npx skills@latest add 加载到项目中。
这意味着 skills 项目不是一个封闭的工具集,而是一个可扩展的生态系统。你可以消费社区提供的技能,也可以自己生产技能。消费和生产之间的门槛被 write-a-skill 抹平了。
从消费到生产的转变
这个设计有一个更深层的含义:AI 技能的创建权和定制权回到了用户手里。
之前我们讨论过 三层技能框架,其中提到"个人技能"来自你踩过的坑、交过的学费,是最稀缺的东西。但稀缺归稀缺,很多人的经验从来没有被结构化成可复用的形式。原因不是懒,而是"把经验写成 AI 能理解的结构化指令"这件事本身有门槛。
write-a-skill 把这层门槛拆掉了。你不是在写一个格式复杂的配置文件,你是在和 AI 对话。AI 引导你把自己的工作流说出来,它帮你生成对应的技能。在这个过程中,你的角色从"写代码的人"变成了"描述工作流的人"。这是一个抽象层级的提升。
write-a-skill 与 skill-creator 的差异
如果你接触过 Anthropic 官方的 skill-creator,可能会问它和 write-a-skill 有什么区别。它们都生成技能,但定位完全不同。
skill-creator 是一个完整的技能创作框架。自带脚手架( init_skill.py 生成目录结构)、打包工具( package_skill.py 打包成 .skill 文件分发)、校验流程( quick_validate.py 自动检查格式)。生成的技能可以包含 Python 脚本、参考文档和模板文件,元数据常驻上下文,核心指令按需触发。适合正式开发、对外分发的技能。
write-a-skill 是一个轻量的对话式生成器。你说"帮我写一个代码审查的技能",AI 追问你审查标准是什么,然后生成一个 prompt 模板。没有目录结构、没有校验脚本、没有打包工具。适合快速给自己的项目写一个生效的规则。
可以用一句话概括:write-a-skill 和 skill-creator 的差异本质上是"敏捷创作 vs 工程框架"的对立。Matt Pocock 的 write-a-skill 定位就是轻量对话生成,适合快速写 prompt 模板;Anthropic 官方的 skill-creator 是完整工程框架,有脚手架 + 校验 + 打包的完整 pipeline。
几个值得注意的配套技能
除了 grill-me 和 write-a-skill,项目中还有几个思路值得提一下。
triage-issue 是一个 bug 定位技能。它不是让你描述 bug,而是先在项目代码里扫描异常模式、画出错误路径、定位到具体文件行号。然后基于 TDD 流程给出修复方案——先写一个能复现 bug 的测试,再改代码让测试通过。
git-guardrails 拦截危险的 git 操作。你输入 git reset --hard 时,AI 会拦住你:"本地的改动还没提交,你确定要丢掉吗?"它像一个唠叨的副驾驶,在你犯错之前拍一下你的手。
tdd 技能强制走"红-绿-重构"循环。先写测试(红灯),再写让测试通过的最简代码(绿灯),最后回头看结构能不能优化(重构)。每一步都小到不会出错,出了也能立刻定位。
这些技能的共同模式是:它们不教 AI 新的知识,而是改变 AI 的执行顺序。把"先做再说"变成"先想再做"。
总结
Matt Pocock 的 skills 项目展示了一个趋势:AI 编码工具的下一个进化方向是更好的交互协议,而不是更强的模型。grill-me 强制需求对齐,write-a-skill 让技能生产民主化。背后都是同一个思路——把资深工程师的工作习惯打包成可安装的互动流程,而不是扔给 AI 一本操作手册让它自己读。
安装只需要一行命令:
npx skills@latest add mattpocock/skills/grill-me
比起花时间调提示词,装一个 skill 可能是更便宜的改进方式。因为提示词解决的是"这一问怎么说",skill 解决的是"每次遇到这类问题怎么做"。