mattpocock 技能
面向真正工程师的技能
我每天用来做真正工程工作的 agent 技能——不是 vibe coding。
开发真正的应用程序很难。GSD、BMAD 和 Spec-Kit 等方法试图通过接管流程来提供帮助。但这样做时,它们剥夺了你的控制权,并使流程中的 bug 难以解决。
这些技能被设计得小巧、易于调整且可组合。它们适用于任何模型。它们基于数十年的工程经验。
随意折腾它们。把它们变成你自己的。尽情享用。
如果你想跟上这些技能的变化,以及我创建的任何新技能,可以加入我的 newsletter,与约 60,000 名其他开发者一起:注册订阅 Newsletter
安装(30 秒设置)
插件会自行更新。skills.sh 会将可编辑文件复制到你的项目中,你需要手动更新它们。
每个 agent 只选一种方式,因为同时安装两种会让每个技能出现两次。
1. 获取技能
Claude Code
claude plugin install mattpocock-skills@claude-plugins-official
默认自行更新。
Codex
codex plugin marketplace add mattpocock/skills
codex plugin add mattpocock-skills@mattpocock
启动时自行更新。
GitHub Copilot(CLI 和 VS Code)
copilot plugin marketplace add mattpocock/skills
copilot plugin install mattpocock-skills@mattpocock
然后,一次性添加到 ~/.copilot/settings.json:
{
"extraKnownMarketplaces": {
"mattpocock": {
"source": {
"source": "github",
"repo": "mattpocock/skills"
},
"autoUpdate": true
}
}
}
在 VS Code 中,运行 Chat: Install Plugin From Source 并输入 https://github.com/mattpocock/skills。它每天更新。
Gemini CLI(手动更新)
gemini skills install https://github.com/mattpocock/skills.git --path skills/engineering
gemini skills install https://github.com/mattpocock/skills.git --path skills/productivity
重新运行这两条命令即可更新。
任何其他 agent,或可编辑文件(手动更新)
npx skills@latest add mattpocock/skills -a # cursor, opencode, devin, windsurf, amp, pi;省略 -a 以进行选择
当安装程序询问要获取哪些技能时,请包含 setup-matt-pocock-skills。要更新,请运行 npx skills@latest update,然后重新运行 add 以获取新技能。
2. 运行 /setup-matt-pocock-skills
在你的 agent 中,每个仓库运行一次。它会:
- 询问你想使用哪个 issue tracker(GitHub、GitLab、本地文件,或你描述的任何其他工具)
- 询问你在分诊工单时应用哪些标签(
/triage使用标签) - 询问你希望将我们创建的任何文档保存在哪里
3. 搞定——你准备好了。
为什么存在这些技能
我构建这些技能,是为了修复我在 Claude Code、Codex 和其他 coding agent 中看到的常见失败模式。
#1:Agent 没有做我想让它做的事
“没有人确切知道自己想要什么”
David Thomas & Andrew Hunt,《程序员修炼之道》
问题。软件开发中最常见的失败模式是错位。你以为开发者知道你想要什么。然后你看到他们构建的东西——你意识到它完全没有理解你。
在 AI 时代也是一样。你和 agent 之间存在沟通鸿沟。
解决方法是进行一次拷问会话——让 agent 就你正在构建的东西向你提出详细问题。
修复方法是使用:
/grill-me- 用于非代码用途/grill-with-docs- 与/grill-me相同,但增加了更多好东西(见下文)
这些是我最受欢迎的技能。它们帮助你在开始之前与 agent 对齐,并深入思考你正在做的变更。每次你想做变更时都使用它们。
#2:Agent 太啰嗦了
有了无处不在的语言,开发者之间的对话和代码表达都源自同一个领域模型。
Eric Evans,《领域驱动设计》
问题:在项目开始时,开发者和他们为其构建软件的人(领域专家)通常说着不同的语言。我和我的 agent 也有同样的紧张关系。Agent 通常被丢进一个项目,然后被要求边做边弄懂术语。所以它们用 20 个词来表达 1 个词就能表达的意思。
修复方法是共享语言。它是一份文档,帮助 agent 解码项目中使用的术语。
示例
这是一个示例词汇表(在那个固定提交中仍名为 CONTEXT.md,那时技能还没有重命名这个约定),来自我的 course-video-manager 仓库。哪个更容易读?
之前:“当课程某个 section 内的 lesson 被‘实体化’(即,在文件系统中获得一个位置)时会出现问题”
之后:“materialization cascade 有问题”
这种简洁性会在一次又一次的会话中带来回报。
这内置于 /grill-with-docs 中。它是一次拷问会话,但会帮助你与 AI 建立共享语言,并在 ADR 中记录难以解释的决策。很难解释这有多强大。它可能是这个仓库中最酷的技术。试试看吧。
提示 共享语言除了减少啰嗦之外还有许多其他好处:
- 变量、函数和文件使用共享语言一致命名
- 因此,代码库对 agent 来说更容易导航
- Agent 在思考上花费的 token 也更少,因为它可以使用更简洁的语言
#3:代码不工作
“始终采取小而审慎的步骤。反馈速率就是你的速度上限。永远不要承担过大的任务。”
David Thomas & Andrew Hunt,《程序员修炼之道》
问题:假设你和 agent 已经就构建什么达成一致。如果 agent 仍然产出垃圾怎么办?是时候看看你的反馈循环了。如果对代码实际运行情况没有反馈,agent 就会盲目飞行。
修复方法:你需要通常的那一套反馈循环:静态类型、浏览器访问和自动化测试。对于自动化测试,红-绿-重构循环至关重要。这就是 agent 先写一个失败的测试,然后修复测试。这有助于给 agent 提供一致水平的反馈,从而产生好得多的代码。
我构建了一个 /tdd 技能,你可以插入任何项目。它鼓励红-绿-重构……