13 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
面向真正工程师的技能
我每天都在使用的智能体技能,用于完成真正的工程工作——而不是氛围式编码。
开发真正的应用程序是困难的。像 GSD、BMAD 和 Spec-Kit 这样的方法试图通过掌控流程来提供帮助。但这样做时,它们夺走了你的控制权,并使流程中的 bug 难以解决。
这些技能的设计理念是:小巧、易于调整、可组合。它们与任何模型都能配合使用。它们基于数十年的工程经验。随心所欲地修改它们,让它们变成你自己的东西。尽情享受。
如果你想持续关注这些技能的更新以及我创建的新技能,可以加入我的 Newsletter,与约 6 万名开发者一起:
快速开始(30 秒配置)
- 运行 skills.sh 安装程序:
npx skills@latest add mattpocock/skills
-
选择你想要的技能,以及你想将它们安装到哪些编程智能体上。确保你选择了
/setup-matt-pocock-skills。 -
在你的智能体中运行
/setup-matt-pocock-skills。它会:- 询问你想使用哪个问题追踪器(GitHub、Linear 或本地文件)
- 询问你在分类 ticket 时应用哪些标签(
/triage使用标签) - 询问你想把创建的任何文档保存在哪里
-
搞定——现在你可以开始使用了。
这些技能存在的原因
我构建这些技能是为了修复我在 Claude Code、Codex 及其他编程智能体中常见的失败模式。
#1:智能体没有按我的想法去做
"没有人确切知道自己想要什么"
David Thomas 和 Andrew Hunt,《程序员修炼之道》(https://www.amazon.co.uk/Pragmatic-Programmer-Anniversary-Journey-Mastery/dp/B0833F1T3V)
问题所在。软件开发中最常见的失败模式是目标不一致。你以为开发者明白你的需求。然后你看到他们构建出来的东西——才发现它完全误解了你的意图。
在 AI 时代,这一点同样适用。你和智能体之间存在沟通鸿沟。解决方案是一次"盘问式对话"——让智能体就你正在构建的内容向你提出详细问题。
解决方案是使用:
/grill-me——适用于非代码场景/grill-with-docs——与/grill-me相同,但增加了更多功能(见下文)
这是我人气最高的技能。它们帮助你在开始之前与智能体对齐目标,并深入思考你正在做的改动。每次你想做改动时都使用它们。
#2:智能体过于啰嗦
"有了通用语言,开发者之间的对话以及代码的表达都源自同一个领域模型。"
Eric Evans,《领域驱动设计》(https://www.amazon.co.uk/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215)
问题所在:项目开始时,开发者和软件的构建对象(领域专家)通常使用不同的语言。
我在使用智能体时也感受到了同样的张力。智能体通常被丢进一个项目,要求它边干边摸索行话。结果就是它用 20 个词来表达一个词就能说清的事情。
解决方案是建立共享语言。这是一份帮助智能体解码项目中行话的文档。
示例
以下是我 course-video-manager 仓库中的 CONTEXT.md, 示例。哪种读起来更容易?
- 之前:"当课程某章节中的一课被设为"真实"(即在文件系统中获得一个位置)时,会有一个问题"
- 之后:"具体化级联存在问题"
这种简洁性在每次会话中都会带来回报。
这已经内置在 /grill-with-docs 中。这是一次盘问式对话,但它能帮助你与 AI 建立共享语言,并将难以解释的决策记录到 ADR 中。
很难描述这有多强大。这可能是本仓库中最酷的技巧。试试看,你就明白了。
Tip
共享语言除了减少啰嗦之外,还有许多其他好处:
- 变量、函数和文件都使用共享语言命名,保持一致性
- 因此,智能体更容易导航代码库
- 智能体在思考上消耗更少的 token,因为它可以使用更简洁的语言
#3:代码不工作
"始终采取小而慎重的步骤。反馈的速度就是你的速度上限。永远不要承担过大的任务。"
David Thomas 和 Andrew Hunt,《程序员修炼之道》(https://www.amazon.co.uk/Pragmatic-Programmer-Anniversary-Journey-Mastery/dp/B0833F1T3V)
问题所在:假设你和智能体在要构建什么上达成了共识。但如果智能体仍然产出糟糕的代码呢?
这时你需要审视你的反馈循环。如果没有关于其生成的代码实际运行情况的反馈,智能体就像在盲飞。
解决方案:你需要一套标准的反馈循环:静态类型、浏览器访问和自动化测试。
对于自动化测试,红-绿-重构循环至关重要。这就是智能体先编写一个失败的测试,然后修复测试。这有助于为智能体提供一致的反馈水平,从而产生更好的代码。
我构建了一个 /tdd 技能,你可以将其插入任何项目。它鼓励红-绿-重构,并为智能体提供了关于好测试和坏测试的大量指导。
关于调试,我还构建了一个 /diagnosing-bugs 技能,它将最佳调试实践封装成一个简单的循环。
#4:我们构建了一团泥球
"每天都投入到系统设计上。"
Kent Beck,《解析极限编程》(https://www.amazon.co.uk/Extreme-Programming-Explained-Embrace-Change/dp/0321278658)
"最好的模块是深层的。它们允许通过一个简单的接口访问大量功能。"
John Ousterhout,《软件设计哲学》(https://www.amazon.co.uk/Philosophy-Software-Design-2nd/dp/173210221X)
问题所在:大多数用智能体构建的应用都很复杂且难以修改。因为智能体可以极大地加速编码,它们也加速了软件熵。代码库以空前的速度变得越来越复杂。
解决方案是一种全新的 AI 驱动开发方式:关注代码的设计。
这已经内置在这些技能的每一层中:
/to-spec在创建规格说明之前,会询问你正在触及哪些模块
最关键的是,/improve-codebase-architecture 帮助你拯救一个已经变成泥球的代码库。我建议每隔几天在你的代码库上运行一次。
总结
软件工程的基本功比以往任何时候都更加重要。这些技能是我将基本功提炼为可重复实践的最佳努力,帮助你在职业生涯中交付最好的应用。尽情享受。
参考
这些技能在一个维度上做了划分——谁可以调用它们。用户调用的技能只有在你输入它们时才可访问(例如 /grill-me);它们的工作是编排调度。模型调用的技能可以由你调用,也可以在任务适当时由智能体自动调用;它们承载了可复用的规范。用户调用的技能可以调用模型调用的技能,但绝不能调用另一个用户调用的技能。
USD 预算:$0/$3;今日剩余 $3(USD 成本估算不包括上下文缓存)。
Engineering
日常编码工作中使用的技能。
用户调用
- ask-matt — 询问哪个技能或流程适合你的情况。本仓库中用户调用技能的智能路由。
- grill-with-docs — 审问式研讨,同时构建项目的领域模型,内联优化术语并更新
CONTEXT.md和 ADR。 - triage — 通过分诊角色状态机推进问题处理。
- improve-codebase-architecture — 扫描代码库寻找优化机会,以可视化 HTML 报告呈现,然后对任意选中项进行审问式研讨。
- setup-matt-pocock-skills — 为本仓库配置工程技能(问题追踪器、分诊标签、领域文档布局)。使用其他工程技能前在每个仓库运行一次。
- to-spec — 将当前对话转化为规格说明并发布到问题追踪器。无需访谈——仅综合已有讨论内容。
- to-tickets — 将任何计划、规格说明或对话拆解为一组跟踪子弹式工单,每个工单声明其阻塞边界——以文本形式写入本地文件,或在真实追踪器上以原生阻塞链接呈现。
- implement — 根据规格说明或一组工单构建功能,在预定接缝处驱动
/tdd,并在提交前以/code-review收尾。 - wayfinder — 规划超出一个 Agent 会话容量的大型工作,在问题追踪器上创建共享的调查工单地图——逐个解决,直至通向目标的路径清晰。
模型调用
- prototype — 构建一次性原型以解答设计问题——针对状态/逻辑问题创建可运行的终端应用,或在一个路由上切换多个风格迥异的 UI 变体。
- diagnosing-bugs — 针对疑难 Bug 和性能回归问题的规范诊断循环:复现 → 最小化 → 假设 → 插桩 → 修复 → 回归测试。
- research — 针对高可信度一手来源调查问题,将发现结果以带引用的 Markdown 文件存入仓库,作为后台 Agent 运行。
- tdd — 红-绿-重构循环的测试驱动开发。每次以一个垂直切片构建功能或修复 Bug。
- domain-modeling — 主动构建并优化项目的领域模型——对照术语表质疑术语,用边界场景进行压力测试,内联更新
CONTEXT.md和 ADR。 - codebase-design — 设计深度模块的共享规范和术语:小接口背后承载大量行为,放置在清晰的接缝处,可透过该接口进行测试。
- code-review — 自某个固定点起的双轴差异审查:规范(是否遵循仓库编码规范,外加 Fowler 代码坏味基准线?)和规格(是否忠实地实现了源问题/PRD?),作为并行子 Agent 运行,避免相互污染。
Productivity
通用工作流工具,非代码专用。
用户调用
- grill-me — 对计划或设计进行穷追不舍的访谈,直至决策树的每个分支都被解决。
- handoff — 将当前对话压缩为交接文档,以便其他 Agent 继续工作。
- teach — 通过多次会话教会用户新技能或概念,以当前目录作为有状态的教学工作区。
- writing-great-skills — 编写和编辑技能的参考文档:使技能可预测的词汇和原则。
模型调用
- grilling — 对计划或设计进行穷追不舍的访谈,直至决策树的每个分支都被解决。
grill-me和grill-with-docs背后的可复用循环。 USD 预算:$0/$3;剩余 $3。
mattpocock · github · bluesky · youtube · x
由 Matt Pocock 打造的 AI 时代技能集。