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