@nurijanian: 我用AI编写需求最喜欢的方法 1. /grill-me by @mattpocockuk https://github.com/mattpocock/skills… 2.…
摘要
讨论用AI编写需求时最喜欢的工具和方法,重点介绍了Matt Pocock的/grill-me技能以及一个基于业务分析师文献的新技能,旨在改善对齐并减少AI编码代理的冗长性。
查看缓存全文
缓存时间: 2026/05/16 07:14
我最喜欢用 AI“编写需求”的方法
- /grill-me by @mattpocockuk https://github.com/mattpocock/skills…
- /shaping by @rjs https://github.com/rjs/shaping-skills…
还有一个强有力的竞争者——我基于手头一堆硬核业务分析师文献编写的新技能。旧材料中有一半过于繁琐,但有些好的部分在我们变得马虎/敏捷的过程中被遗忘得差不多了:
https://github.com/gnurio/nurijanian-skills/tree/main/skills/make-requirements-great…
mattpocock/skills
来源:https://github.com/mattpocock/skills
Skills For Real Engineers
skills.sh (https://skills.sh/mattpocock/skills)
我每天都在用的智能体技能——用来做真正的工程,而非“氛围编码”。
开发真实应用是困难的。像 GSD、BMAD 和 Spec-Kit 这类方法试图通过掌控流程来帮忙,但这样做却剥夺了你的控制权,且让流程中的 bug 难以解决。
这些技能设计得小巧、易于调整且可组合。它们适用于任何模型。它们基于数十年工程经验。随便改,变成你自己的。享受吧。
如果你想随时了解这些技能的改动以及我创建的新技能,可以加入约 60,000 名开发者的邮件列表:
注册新闻通讯 (https://www.aihero.dev/s/skills-newsletter)
快速上手(30 秒设置)
- 运行 skills.sh 安装器:
bash npx skills@latest add mattpocock/skills - 选择你想要的技能,以及你想安装到哪些编码智能体上。确保选中
/setup-matt-pocock-skills。 - 在你的智能体中运行
/setup-matt-pocock-skills。它会:- 询问你使用哪个问题追踪器(GitHub、Linear 或本地文件)
- 询问你在分类 tick 时使用什么标签(
/triage使用标签) - 询问你希望将创建的任何文档保存在哪里
- 搞定——你可以开始了。
为什么存在这些技能
我构建这些技能是为了修复我在 Claude Code、Codex 及其他编码智能体身上看到的常见故障模式。
#1:智能体没按我的意愿行事
“没人确切知道自己想要什么”
——David Thomas 和 Andrew Hunt,《程序员修炼之道》(https://www.amazon.co.uk/Pragmatic-Programmer-Anniversary-Journey-Mastery/dp/B0833F1T3V)
问题。软件开发中最常见的故障模式是错位。你认为开发者知道你想要什么。然后你看到他们构建的东西——才意识到它根本没理解你。在 AI 时代也是如此。你和智能体之间存在沟通鸿沟。修复方法是进行一次 “拷问 session”——让智能体就你正在构建的内容向你提出详细问题。
解决方案是使用:
/grill-me—— 用于非代码场景/grill-with-docs—— 类似/grill-me,但增加了更多好东西(见下文)
这些是我最受欢迎的技能。它们帮助你在开始之前与智能体对齐,并深入思考你要做出的改动。每次你想做出改动时都使用它们。
#2:智能体过于啰嗦
使用统一语言,开发人员之间的对话和代码的表达都源自同一个领域模型。
——Eric Evans,《领域驱动设计》(https://www.amazon.co.uk/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215)
问题:在项目开始时,开发人员和为他们构建软件的人(领域专家)通常说不同的语言。我在我的智能体上也感受到了同样的紧张感。智能体通常被直接丢进一个项目,要求它们边干边学行话。结果它们用了 20 个词,其实 1 个就够了。
解决方案是共享语言。这是一份帮助智能体解码项目中行话的文档。
示例 这是来自我的 course-video-manager 仓库的一个 CONTEXT.md 示例 (https://github.com/mattpocock/course-video-manager/blob/076a5a7a182db0fe1e62971dd7a68bcadf010f1c/CONTEXT.md)。哪个更容易阅读?
- 之前:“当课程某一节中的一个课程被设为‘真实’(即在文件系统中分配了一个位置)时,存在一个问题”
- 之后:“存在物化级联问题”
这种简洁性在每次 session 中都见效。这内置于 /grill-with-docs 中。它是一次拷问 session,但同时帮助你与 AI 构建共享语言,并将难以解释的决策记录到 ADR 中。很难解释这有多强大。它可能是这个仓库中最酷的技巧。试试看。
共享语言除了减少啰嗦外,还有许多其他好处:
- 变量、函数和文件使用共享语言进行一致命名
- 因此,智能体更容易导航代码库
- 智能体在思考上消耗更少的 token,因为它能使用更简洁的语言
#3:代码不工作
“始终采取小而谨慎的步骤。反馈速度是你的极限。永远不要接手太大的任务。”
——David Thomas 和 Andrew Hunt,《程序员修炼之道》(https://www.amazon.co.uk/Pragmatic-Programmer-Anniversary-Journey-Mastery/dp/B0833F1T3V)
问题:假设你和智能体就构建什么达成一致。当智能体仍然产生糟糕代码时该怎么办?是时候审视你的反馈循环了。如果没有关于代码实际运行情况的反馈,智能体将盲目飞行。
解决方案:你需要通常的反馈循环:静态类型、浏览器访问和自动化测试。对于自动化测试,红-绿-重构循环至关重要。这就是智能体先编写失败的测试,然后修复测试。这有助于给智能体提供一致的反馈水平,从而产生更好的代码。我构建了一个 /tdd 技能,可以插入任何项目。它鼓励红-绿-重构,并为智能体提供关于什么是好测试和坏测试的大量指导。
对于调试,我还构建了一个 /diagnose 技能,将最佳调试实践包装成一个简单循环。
#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 驱动开发方法:关心代码的设计。这内置于这些技能的每一层:
而且至关重要的是,/improve-codebase-architecture 帮助你拯救一个已经变成泥球的代码库。我建议每隔几天在代码库上运行一次。
总结
软件工程基础比以往任何时候都更重要。这些技能是我将这些基础浓缩为可重复实践的最佳努力,帮助你交付职业生涯中最好的应用。享受吧。
参考
工程技能
我日常用于代码工作。
- diagnose——针对硬 bug 和性能回归的有纪律的诊断循环:重现→最小化→假设→检测→修复→回归测试。
- grill-with-docs——拷问 session,针对现有领域模型挑战你的计划,打磨术语,并内联更新
CONTEXT.md和 ADR。 - triage——通过分类角色的状态机对问题进行分类。
- improve-codebase-architecture——在代码库中发现加深的机会,依据
CONTEXT.md中的领域语言和docs/adr/中的决策。 - setup-matt-pocock-skills——搭建每个仓库的配置(问题追踪器、分类标签词汇、领域文档布局),供其他工程技能使用。每个仓库运行一次,然后使用
to-issues、to-prd、triage、diagnose、tdd、improve-codebase-architecture或zoom-out。 - tdd——测试驱动开发,采用红-绿-重构循环。一次一个垂直切片构建功能或修复 bug。
- to-issues——将任何计划、规范或 PRD 分解为可独立领取的 GitHub Issue,使用垂直切片。
- to-prd——将当前对话上下文转换为 PRD 并作为 GitHub Issue 提交。无面试——仅合成你已经讨论过的内容。
- zoom-out——告诉智能体缩放视角,对不熟悉的代码部分提供更广泛的上下文或更高层次的视角。
- prototype——构建一个一次性原型来完善设计——要么是一个用于状态/业务逻辑问题的可运行终端应用,要么是几种完全不同的 UI 变体,可通过一条路由切换。
生产力
通用工作流工具,非代码专用。
- caveman——超压缩沟通模式。通过去掉填充词将 token 使用量减少约 75%,同时保持完整的技术准确性。
- grill-me——对计划或设计进行无情的采访,直到决策树的每个分支都解决。
- handoff——将当前对话压缩成交接文档,以便另一个智能体继续工作。
- write-a-skill——创建具有适当结构、渐进式披露和打包资源的新技能。
杂项工具
我保留但不常用。
- git-guardrails-claude-code——设置 Claude Code 钩子,在危险的 git 命令(push、reset –hard、clean 等)执行之前阻止它们。
- migrate-to-shoehorn——将测试文件从
as类型断言迁移到 @total-typescript/shoehorn。 - scaffold-exercises——创建包含章节、问题、解决方案和解释器的练习目录结构。
- setup-pre-commit——使用 lint-staged、Prettier、类型检查和测试设置 Husky pre-commit 钩子。
相似文章
@mattpocockuk: 重新措辞 /grill-me,使其现在真正可以在任何地方使用——不仅仅是工程领域。"设计树" -> "决策树" "每…
Matt Pocock 更新了 /grill-me 技能,通过将 'design tree' 等术语重新措辞为 'decision tree',使其超越工程领域可用。技能仓库为 AI 编码代理提供可组合的技能,以提升对齐度并减少冗余。
@nurijanian: 如果你想用AI智能体进行设计,这些技能非常棒—— impeccable http://impeccable.style - taste http://tast…
来自 @nurijanian 的一条推特展示了与AI智能体协作所需的设计技能和工具,包括 Impeccable 风格工具的更新和 Refactoring UI 插件,以及详细更新日志涵盖实时模式、检测器规则和跨平台修复。
@Vtrivedy10: 好的,虽然现在还早,但 @mattpocockuk 的 grill-me 技能感觉像是在迭代构建评估/环境时的绝佳开发者体验…
一条推文讨论了为AI代理构建评估和环境的迭代过程,强调了人机协作以及数据和验证器设计的重要性。
@nurijanian: 我最喜欢的AI工程技能: - Compound Engineering: https://github.com/EveryInc/compound-engineering-plugin……
本文介绍了Compound Engineering,这是一个用于AI辅助软件开发的插件,强调规划、审查和编码化以降低技术债务。
@lastbtnotleast: 我刚刚发现了@mattpocockuk的技能仓库,对/grill-with-docs这个技能着迷了。我喜欢它的简洁性……
发现了Matt Pocock的技能仓库,重点介绍了用于AI工作流的/grill-with-docs技能,赞赏其简洁性,但指出从markdown文件中丢失了结构化数据的问题。