
用 Claude Code 写代码,最容易翻车的地方其实不是 AI 把语法写错,而是方向从第一步就偏了。这个坑我踩过太多次了。
你让 Claude Code "帮我做一个任务管理系统",它秒回技术方案、数据库结构、API 设计,看着挺完整。可你没说要不要多人协作,没说数据放本地还是云端,也没说用户是内部员工还是外部客户。信息缺了一大截,AI 只能靠猜,猜歪了你就得推倒重做。
这不是某个工具的毛病,是软件需求本身的老问题。《程序员修炼之道》里那句话我一直记着:没有人真正知道自己想要什么,直到看见第一个版本。
GitHub 上有个 78K star 的项目 mattpocock/skills,专门治这个病。它和 Karpathy 那套 CLAUDE.md 思路正好互补——CLAUDE.md 管的是约束 AI 的行为,这套 Skill 管的是动手之前先把人这边的需求想透。
mattpocock/skills 到底是什么
作者 Matt Pocock 是 TypeScript 圈子里的顶级 KOL,Total TypeScript 课程就是他做的。
mattpocock/skills 是他整理的一套 AI 编程工作流 Skill 集合,一共 14 个,全是纯 Markdown 文件,零依赖、零安装。Claude Code、Cursor、Codex 这些主流工具都能直接用。
安装一行命令搞定:
npx skills@latest add mattpocock/skills
跑起来会让你交互式勾选需要的 Skill,一分钟不到就装好了。
14 个 Skill 分成两拨。工程类 10 个:grill-with-docs、diagnose、tdd、improve-codebase-architecture、triage、to-prd、to-issues、zoom-out、prototype、setup。效率类 4 个:grill-me、caveman、handoff、write-a-skill。
补一句我的判断:Skill 和 MCP 不冲突,是两条不同的路子。MCP 解决的是让 Claude Code 连上外部工具和数据源,属于能力扩展;Skill 走的是纯提示词,属于工作流约束。你完全可以一边用 MCP Server 接数据库、接文档系统,一边用这些 Skill 把需求梳理流程固化下来,叠着用效果更好。
核心 Skill 拆解
grill-me:需求没说清就一直追问
整个仓库最火的一个,源码里真正起作用的提示词只有五行:
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.
逻辑朴素得很:一次只问一个问题,每问都附上推荐答案,问到双方对齐为止。
拿"做一个待办清单应用"来对照就清楚了。
Claude Code 自带的 plan mode 会甩给你三个选项:原生 HTML/CSS/JS、React、Vue,让你自己挑。老手没问题,但刚碰前端的人根本看不懂这三个选项背后各自意味着什么。
grill-me 的做法不一样。它先扫一遍项目目录,发现是空的,直接推荐 "React + Vite + TypeScript",同时把理由讲给你听:React 生态成熟、状态管理灵活,Vite 开发体验快,TypeScript 能减少运行时错误。你要做的只是判断这个推荐合不合理,不用自己扛技术选型这块。
内置 plan mode 是选择题,你得先懂;grill-me 是推荐题,AI 先帮你分析再给建议。追问跑完之后,"做一个待办清单应用"这句模糊需求就变成了一份完整 PRD,技术栈、功能边界、数据存储方式全钉死了。这时候再让 Claude Code 生成代码,来回返工的次数会明显下降。
grill-with-docs:把术语混乱掐死在前面
AI 编程里有一类问题很隐蔽:你和 AI 用的是同一个词,指的却是两码事。
你说"任务",AI 理解成 Issue;你换个词说"事项",它又当成 Todo。写到后面变量名、函数名指代全乱,重构成本高得吓人。
grill-with-docs 在追问的基础上多加了三个机制。
第一是统一术语。对话里每敲定一个领域概念,就自动写进项目根目录的 CONTEXT.md。你前后冒出"任务""事项""待办"三个词,AI 会停下来问是不是同一个东西;是的话就统一成一个,往后所有变量名、函数名、文件名都照着这套词汇表来。
第二是交叉验证。需求描述和现有代码对不上时,AI 会主动挑出来。比如你说"支持部分退款",可代码里只有整单退款的逻辑,它会问:这跟现有实现不一致,以哪个为准?
第三是 ADR 记录。碰上难以回头的架构决策,AI 会建议建一份 Architecture Decision Record。不是逢决策就记,只有三个条件同时成立才触发:决定难以撤销、脱离上下文会让人困惑、确实存在方案上的权衡。
多人协作或者长周期项目用这个特别值。领域驱动设计里那个"统一语言"原则,被这个 Skill 变成了能直接跑起来的工作流。
caveman:压 Token,只留干货
这个让 AI 用最省的语言回你,砍掉寒暄、冗余解释和含糊措辞。
同样问"为什么 React 组件一直重新渲染"。普通模式下 AI 先铺背景,再列一堆可能原因,配示例代码,末了还总结一遍注意事项,三四百字打底。
caveman 模式是这样:
React组件重新渲染原因:
- useState/props变更触发
- 父组件重渲染带动子组件
- useEffect依赖数组配置错误
排查:React DevTools Profiler > 定位高频渲染组件
修复:useMemo/useCallback/React.memo
扫一眼就定位到问题。长会话或者走 API 调用这种对 Token 用量敏感的场景,它是真省钱。遇到安全相关操作,caveman 会自动退出,不会因为图省事漏掉关键警告。
这套工作流为什么管用
14 个 Skill 背后没有什么新发明,核心理念全是经典软件工程文献里的老东西:《程序员修炼之道》的反馈环、《领域驱动设计》的统一语言、《极限编程》的测试驱动开发。
Matt Pocock 做的,是把这些验证了几十年的工程实践,压缩成 AI 能直接执行的 Markdown。
AI Coding 工具在加速代码生成这件事上已经够猛了,但软件工程的根基没变。工具越快,越需要好的工程实践在下面兜着,不然就只是更快地冲向错误方向。这也是我一直强调 Claude Code 最佳实践的原因:快只是手段,方向对才是目的。
上手顺序建议
如果你已经在用 Claude Code,建议按这个节奏试。
先装 grill-me,用在下一个新功能开发前,亲身感受一下被 AI 追问是什么体验。团队协作或者项目周期偏长的,再加 grill-with-docs。日常对话嫌回复太啰嗦,就上 caveman。
整套东西是纯 Markdown 提示词,没有外部依赖,MIT 协议开源。不想用 npx 也行,直接去 GitHub 把对应文件复制进项目就能跑。
说到底,光会"告诉 AI 做什么"远远不够。动手写代码之前先把需求想清楚,这才是真正决定最终产品质量的地方。这也是我们在 easyclaude.com 上一直想传递给 Claude Code 用户的一件事。
关于 Easy Claude Code
如果你想用上 Claude Code,可以试试我们 ECC(Easy Claude Code)的中转服务:免🪜、低成本、快速稳定,直连官方 Claude Code。企业定制化服务可详询。