alitrack

408K人装的AI编码技巧

用 Claude Code、Cursor 写代码,最烦的不是 AI 写不好——是它写完了你才发现它根本没理解你的需求。

你描述了功能、举了例子、列了边界条件。AI 点头说"明白了"。然后哗啦啦写一通。你一看:业务约束漏了、跟现有架构冲突、复杂度想简单了。

于是开始改。token 烧了,时间花了,循环了好几轮才对齐。

● ● ●

反转:别让 AI 写代码,让它拷问你

Matt Pocock——TypeScript 教育家、Total TypeScript 创始人——写了一个叫 grill-me 的 skill,思路跟常规反着来。

普通的用法是你给 AI 下指令。grill-me 是 AI 来提问,沿着决策树一个分支一个分支往下走,直到你们对方案有共识。它的核心 prompt 就这几行:

Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.

Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering.

If a question can be answered by exploring the codebase, explore the codebase instead.

就这几行。原理很简单:把没说出口的假设摊开,风险提前冒出来。

这个 skill 是 Pocock 开源仓库 mattpocock/skills 里安装量最高的——408.9K 次安装。整个仓库 158K stars,45 个 skill,总安装量 550 万。grill-me 的安装量碾压第二名(improve-codebase-architecture,336.5K)。比第二名多了 7 万——大家不缺代码工具,缺的是动手之前先把事想清楚的东西。

workflow

workflow

● ● ●

两个真实案例

博客园作者 guangzan 在一篇博客里详细记录了 grill-me 在自己项目里的使用体验。他的场景是一个多租户中后台项目。

案例一:加个批量导入

需求听起来简单:加个批量导入,支持 Excel 和 API。

他以前的做法是直接描述需求让 AI 写。第一版翻车——审计日志没考虑、事务一致性没想清楚、配额和大文件处理也漏了。

换成 grill-me 后,AI 先翻了现有导入模块和权限模型,然后才开始一个一个问:

「批量导入是谁触发的?手动上传、定时任务,还是第三方 webhook?」

答完接着问:「成功和失败怎么通知?要不要异步?失败重试几次?」

每答一个,AI 会给推荐方案,并确认依赖——「这会动到现有权限模型吗?」

几轮下来,功能边界清楚了,跟领域模型的冲突也提前暴露。最终实现基本一次过。

案例二:订单支持部分取消

这个更难。已发货订单原先只能整单取消,产品要求支持部分取消。是一条老链路,改不好就是线上事故。

grill-me 没有先写方案。它顺着 OrderService 的状态机往下追,发现取消会触发退款、库存回滚和仓库 webhook;又追到 PromoEngine,看到满减是按整单算的。然后才开始问:

  • 部分取消后,满减要不要重算?代码里三种算法——你定哪一种?
  • 混合支付(余额 + 微信)时,退款按什么比例拆?现有 RefundService 只处理整单,没有部分退的路径。
  • 仓库 webhook 是 fire-and-forget,没有幂等键。部分取消如果重试,会不会重复通知?

有些问题能从代码推断答案;有些连开发都说不准——历史上运营改过口径,文档没更新。grill-me 的价值恰恰是把这些问题提前拎出来,而不是写完了才发现。

如果直接改,大概率只会动 OrderService 的状态判断,漏掉满减重算、混合支付拆账和 webhook 幂等。上线后就是"取消成功但退款不对"或者"仓库收到两次取消通知"。

grill-me 逼着把每条分支走一遍,该写 ADR 的写,该找运营确认的当场记下来。改完跑回归,没有冒出新的边角问题。

● ● ●

不止 grill-me

Pocock 的 45 个 skill 不是随机堆的。它们背后是四类最常见的 AI 编码翻车场景:

失败模式症状对应 skill
**需求错位**AI 理解了错误的意图,写出"正确但没用"的代码`grill-me`
**过于冗长**AI 生成大量上下文,核心逻辑被淹没`CONTEXT.md`
**代码不可用**写出来的代码跑不通或逻辑有 bug`tdd`(强制红-绿-重构循环)
**系统腐烂**多次修改后代码结构退化`improve-codebase-architecture`

四个 skill 分别对应经典软件工程里的不同传统——DDD(领域驱动设计的对齐思路)、XP(极限编程的 TDD)、《程序员修炼之道》(架构腐化)。但实现方式全是纯 prompt,没有任何 SDK 依赖、不绑特定模型、跨 8 个 agent 平台可移植。

Pocock 本人靠 Total TypeScript 课程有 7 万+付费学员(课程约 $499)。开源 Skills 不是自毁商业模式——是他把个人用的 prompt 公开了,反哺 AI Hero 新课和 Newsletter 获客。开源即获客。

● ● ●

局限

guangzan 说有些模型追问过细,"这也并没有什么不好"。对简单任务确实 overkill——如果只是改个按钮文案,不需要决策树。

还有一个点:grill-me 需要你能回答 AI 的问题。如果有些决策你自己也说不准(比如"运营规则到底是哪一种?"),它会逼你去确认。这不是 bug——不确定的决策扔给 AI 替你做,结果多半是错的。

● ● ●

怎么用

一行命令:

npx skills add https://github.com/mattpocock/skills --skill grill-me

然后在 Claude Code、Cursor 或任何支持的 agent 里输入 /grill-me 加上你的初步计划。

guangzan 推荐配合 Cursor 的 Plan Mode 使用——先通过 grill-me 构建共识,然后再用 Plan Mode 出方案、执行。修遗留 bug 时也是这个流程:grill-me 复现代码路径 → 问影响范围和回归点 → 再改。


一句话:花 10 分钟被 AI 拷问,省掉后面 2 小时的返工。这 10 分钟值。


参考来源:

  • cnblogs.com/guangzan/p/20774394
  • github.com/mattpocock/skills