Files
wehub-resource-sync 64966c7e9f
Release / Version (push) Waiting to run
docs: make Chinese README the default
2026-07-13 07:42:39 +00:00

13 KiB

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

技能

面向真正工程师的技能

skills.sh

我每天都在使用的智能体技能,用于完成真正的工程工作——而不是氛围式编码。

开发真正的应用程序是困难的。像 GSD、BMAD 和 Spec-Kit 这样的方法试图通过掌控流程来提供帮助。但这样做时,它们夺走了你的控制权,并使流程中的 bug 难以解决。

这些技能的设计理念是:小巧、易于调整、可组合。它们与任何模型都能配合使用。它们基于数十年的工程经验。随心所欲地修改它们,让它们变成你自己的东西。尽情享受。

如果你想持续关注这些技能的更新以及我创建的新技能,可以加入我的 Newsletter,与约 6 万名开发者一起:

订阅 Newsletter

快速开始(30 秒配置)

  1. 运行 skills.sh 安装程序:
npx skills@latest add mattpocock/skills
  1. 选择你想要的技能,以及你想将它们安装到哪些编程智能体上。确保你选择了 /setup-matt-pocock-skills

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

    • 询问你想使用哪个问题追踪器(GitHub、Linear 或本地文件)
    • 询问你在分类 ticket 时应用哪些标签(/triage 使用标签)
    • 询问你想把创建的任何文档保存在哪里
  3. 搞定——现在你可以开始使用了。

这些技能存在的原因

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

#1:智能体没有按我的想法去做

"没有人确切知道自己想要什么"

David Thomas 和 Andrew Hunt,《程序员修炼之道》(https://www.amazon.co.uk/Pragmatic-Programmer-Anniversary-Journey-Mastery/dp/B0833F1T3V)

问题所在。软件开发中最常见的失败模式是目标不一致。你以为开发者明白你的需求。然后你看到他们构建出来的东西——才发现它完全误解了你的意图。

在 AI 时代,这一点同样适用。你和智能体之间存在沟通鸿沟。解决方案是一次"盘问式对话"——让智能体就你正在构建的内容向你提出详细问题。

解决方案是使用:

这是我人气最高的技能。它们帮助你在开始之前与智能体对齐目标,并深入思考你正在做的改动。每次你想做改动时都使用它们。

#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-megrill-with-docs 背后的可复用循环。 USD 预算:$0/$3;剩余 $3。

mattpocock · github · bluesky · youtube · x


Matt Pocock 打造的 AI 时代技能集。