← 返回日报
🌐 机器翻译 · DeepSeek · GitHub

mattpocock skills


以下是您要求的英文文章的中文翻译,已按照保留原文结构、技术术语保留英文、代码块不翻译等要求处理。


mattpocock 技能

真正工程师的技能

我每天使用的智能体技能,用于进行真正的工程——而不是“氛围编码”。开发真正的应用程序是困难的。像 GSD、BMAD 和 Spec-Kit 这样的方法试图通过掌控流程来提供帮助。但这样做时,它们剥夺了你的控制权,并使流程中的错误难以解决。

这些技能设计得小巧、易于调整且可组合。它们适用于任何模型。它们基于数十年的工程经验。随意尝试它们,让它们成为你自己的。享受吧。

如果你想随时了解这些技能的更新以及我创建的任何新技能,你可以加入大约 60,000 名开发者的邮件列表: [注册邮件列表](https://example.com)

快速开始(30 秒设置)

运行 skills.sh 安装器:

npx skills@latest add mattpocock/skills

选择你想要的技能,以及你想将它们安装到哪些编码智能体上。

确保你选择了 /setup-matt-pocock-skills

在你的智能体中运行 /setup-matt-pocock-skills。它会:

搞定——你已经准备好了。

为什么这些技能存在

我构建这些技能是为了修复我在 Claude Code、Codex 和其他编码智能体中常见的失败模式。

#1:智能体没有按我的意愿行事

“没有人确切知道自己想要什么。”
—— David Thomas & Andrew Hunt,《程序员修炼之道》

问题:软件开发中最常见的失败模式是“错位”。你认为开发者知道你想要什么。然后你看到他们构建的东西——你意识到它根本没有理解你。这在 AI 时代也是一样的。你和智能体之间存在沟通鸿沟。

解决方法:进行一次“拷问会话”——让智能体就你正在构建的内容向你提出详细问题。

使用以下技能

这些是我最受欢迎的技能。它们帮助你在开始之前与智能体对齐,并深入思考你要做的变更。每次你想做改动时都使用它们。

#2:智能体过于啰嗦

“通过一种通用语言,开发者之间的对话和代码的表达都源自同一个领域模型。”
—— Eric Evans,《领域驱动设计》

问题:在项目开始时,开发者和他们为之构建软件的人(领域专家)通常说着不同的语言。我在我的智能体上也感受到了同样的紧张。智能体通常被直接丢进一个项目,然后边做边摸索行话。所以它们会用 20 个词来表达本来 1 个词就能说清楚的事。

解决方法:建立一种共享语言。这是一个帮助智能体解码项目中使用的行话的文档。

示例:这是来自我的 course-video-manager 仓库的一个 CONTEXT.md 示例。哪个更容易阅读?

之前:“当课程中某个章节内的一节课被设为‘真实’(即在文件系统中分配了一个位置)时,会出现一个问题。”

之后:“物化级联(materialization cascade)存在问题。”

这种简洁性在每次会话中都会带来回报。

这已内置到 /grill-with-docs 中。它是一次拷问会话,但能帮助你与 AI 建立共享语言,并将难以解释的决策记录在 ADR 中。很难解释这有多强大。它可能是这个仓库中最酷的技巧。试试看。

提示:共享语言除了减少啰嗦之外还有许多其他好处:

问题:假设你和智能体在要构建什么上达成了一致。但当智能体仍然产出垃圾代码时会发生什么?是时候审视你的反馈循环了。如果没有关于它生成的代码实际运行情况的反馈,智能体将盲飞。

解决方法:你需要常规的反馈循环:静态类型、浏览器访问和自动化测试。对于自动化测试,红-绿-重构循环至关重要。这就是智能体先编写一个失败的测试,然后修复测试。这有助于为智能体提供一致的反馈水平,从而产生更好的代码。

我构建了一个 /tdd 技能,你可以将其插入任何项目。它鼓励红-绿-重构,并为智能体提供关于什么是好测试和坏测试的充分指导。

对于调试,我还构建了一个 /diagnose 技能,将最佳调试实践包装成一个简单的循环。

#4:我们构建了一团泥球

“每天都要投资于系统的设计。”
—— Kent Beck,《解析极限编程》
“最好的模块是深的。它们允许通过一个简单的接口访问大量功能。”
—— John Ousterhout,《软件设计的哲学》

问题:大多数用智能体构建的应用程序都很复杂且难以更改。因为智能体可以极大地加速编码,它们也加速了软件熵。代码库以前所未有的速度变得更加复杂。

解决方法:这是一种全新的 AI 驱动开发方法:关心代码的设计。这已内置到这些技能的每一层中:

我建议每隔几天在你的代码库上运行一次。

总结

软件工程基础比以往任何时候都更重要。这些技能是我尽最大努力将这些基础浓缩为可重复的实践,帮助你交付职业生涯中最好的应用程序。享受吧。

参考

我使用的工程技能


📖 阅读原文 →