用 Claude Code 半年,真正拉开差距的不是模型。
是把工作流编码成 skill。
这不是我总结的,是一个开发者半年踩坑后的血泪结论。他用5个 skill,从一句话想法做出了一个能跑的「间隔重复记忆卡片」应用——SM-2 算法,测试全绿。
让我拆给你看:这5个 skill 为什么能成事,以及它们之间是怎么咬合的。
🎯 为什么需要 Skill?
Claude Code 很强,但有一个致命问题:它太听话了。
你说"帮我写个记忆卡片应用",它立刻开始敲代码。十分钟后给你一段能跑的代码,但:
- 需求对齐了吗?——没有,它猜的
- 架构设计了吗?——没有,它直接开写
- 测试写了吗?——没有,它觉得"先跑起来更重要"
结果是:代码能跑,但不是你想要的。改起来比重写还累。
Skill 的作用,是给 Claude 一套不可跳过的流程——不是建议,是纪律。
🔥 5个核心 Skill
① grill-me — 把模糊需求榨成清楚 spec
归属:Matt Pocock
核心逻辑:AI 不直接动手,先反过来盘问你。
你:我想做个间隔重复记忆卡片应用
Claude:好,在我开始之前,有几个问题:
1. 卡片内容是什么格式?纯文本、Markdown、还是支持图片?
2. 间隔算法用 SM-2、Anki 的,还是自己设计?
3. 数据存在哪?本地文件、IndexedDB、还是后端?
4. 有分类/标签系统吗?
5. 需要导入导出功能吗?
...
一次只问一个问题,每个问题附带推荐选项。你选,它记。问完20轮,一份完整的 spec 文档已经写好了。
为什么重要? 因为 "没有人确切知道自己想要什么"。Grill-me 是强迫你在动手前,把潜意识里没想清楚的需求显式化。
产出:一份 shared understanding,一份可提交的 spec 文档。
② brainstorming — 动手前把方案吵明白
归属:Superpowers (obra)
核心逻辑:不是让 AI 直接给答案,而是让它带你看选项。
Claude:基于你的需求,我想到三种架构方案:
方案A:纯前端(React + IndexedDB)
- 优点:部署简单,打开即用
- 缺点:数据不能跨设备
- 适合:个人使用,不追求同步
方案B:前端 + 轻量后端(Next.js + SQLite)
- 优点:可以用户系统、数据持久化
- 缺点:需要部署
- 适合:可能有分享/协作需求
方案C:PWA + Service Worker
- 优点:离线可用,可安装到桌面
- 缺点:Sync 逻辑复杂
- 适合:想要原生 App 体验
你倾向哪个?还是混合?
为什么重要? 因为 "选错架构比写烂代码更致命"。Brainstorming 强迫你在写第一行代码前,确认大方向是对的。
产出:一份设计文档(design.md),包含选定的方案、权衡分析、技术栈决策。
③ writing-plans — 落成带依赖顺序的步骤
归属:Superpowers
核心逻辑:把设计文档拆成可执行的、有依赖关系的任务清单。
设计文档已确认。下面是实施计划:
[Task 1] 初始化项目结构(5分钟)
- 创建 Next.js 项目,配置 Tailwind
- 依赖:无前置任务
- 验证:npm run dev 能启动
[Task 2] 实现 SM-2 算法核心(15分钟)
- 文件:src/lib/sm2.ts
- 输入:上次复习日期、复习次数、评分(1-5)
- 输出:下次复习日期、间隔天数
- 前置:Task 1
- 验证:单元测试通过(4个边界 case)
[Task 3] 设计 Card 数据结构(10分钟)
- 文件:src/types/card.ts
- 字段:id, front, back, tags, createdAt, reviews[]
- 前置:Task 2
- 验证:TypeScript 编译通过
[Task 4] 实现卡片 CRUD(20分钟)
- ...
[Task 5] 实现复习界面(25分钟)
- ...
[Task 6] 写端到端测试(15分钟)
- ...
每个任务:2-5分钟、精确文件路径、完整验证步骤。写成一个" enthusiastic junior engineer with poor taste" 也能看懂的程度。
为什么重要? 因为 "计划中的模糊词,是代理'猜着做'的根源"。Writing-plans 消除一切歧义。
产出:一份实现计划(plan.md),Claude 可以按顺序执行,每一步都有验收标准。
④ TDD — 先写测试再写码
归属:Superpowers / Matt Pocock
核心逻辑:Red → Green → Refactor
Claude:Task 2 是 SM-2 算法。我先写测试:
// src/lib/sm2.test.ts
describe('SM-2 Algorithm', () => {
test('first review: interval should be 1 day', () => {
const result = sm2({ easeFactor: 2.5, repetitions: 0, interval: 0 }, 3);
expect(result.interval).toBe(1);
});
test('rating 1 (again) should reset', () => {
const result = sm2({ easeFactor: 2.5, repetitions: 5, interval: 14 }, 1);
expect(result.repetitions).toBe(0);
expect(result.interval).toBe(1);
});
test('rating 4 (easy) should increase interval', () => {
const result = sm2({ easeFactor: 2.5, repetitions: 2, interval: 6 }, 4);
expect(result.interval).toBeGreaterThan(6);
});
// ... 更多边界 case
});
现在运行测试 → 全红(预期)。
接下来写最小实现让测试通过 → 全绿。
然后重构 → 仍然全绿。
为什么重要? 因为 "反馈速度是工作速度的上限"。测试给你即时反馈,错了立刻知道。没有测试,你只能在浏览器里手动点,效率差10倍。
产出:每个 Task 都带测试覆盖,代码可验证、可回归。
⑤ debugging — 顺着测试找根因,不瞎改
归属:Superpowers
核心逻辑:Reproduce → Minimize → Hypothesize → Instrument → Fix
用户:复习界面卡住了,点击"显示答案"没反应
Claude:按 debugging skill 流程处理:
Step 1: Reproduce
- 启动应用,添加一张卡片,进入复习模式
- 点击"显示答案" → 确认复现
Step 2: Minimize
- 是只有这一张卡有问题,还是所有卡?→ 所有卡
- 是只有这个按钮有问题,还是键盘快捷键也不行?→ 都不行
- 刷新页面后是否恢复?→ 是的
Step 3: Hypothesize
- 可能是状态管理问题,showAnswer 状态没正确切换
- 可能是事件监听器没绑定
Step 4: Instrument
- 在 handleShowAnswer 加 console.log
- 确认函数被调用,但 state 没更新
Step 5: Fix
- 发现 useState 初始值是 undefined,导致条件渲染失败
- 修复:给 showAnswer 默认值 false
- 运行测试 → 全绿
- 回归测试 → 全绿
为什么重要? 因为 "99%的调试时间花在猜上"。Debug skill 给你一个纪律性流程,不猜、不乱改、每一步有证据。
🔧 5个 Skill 的咬合顺序
用户:"我想做个间隔重复应用"
↓
① grill-me(20分钟)
→ 产出:spec.md(需求文档)
↓
② brainstorming(15分钟)
→ 产出:design.md(设计文档)
↓
③ writing-plans(10分钟)
→ 产出:plan.md(实施计划)
↓
④ TDD 执行(按 plan 逐个 Task)
→ 每个 Task:写测试 → 写代码 → 跑测试 → 提交
↓
⑤ debugging(遇到 bug 时触发)
→ 按5步法定位修复
↓
产出:一个能跑的应用 + 全套测试 + 完整文档
总时间:从想法到可跑应用,约 2-3 小时(其中1小时是 AI 在 grill 和 brainstorm,人在回答)。
💡 为什么这5个 skill 能拉开差距?
不是技能本身强,是流程不可跳过
没有 skill 的 Claude Code:
用户:写个记忆卡片应用
Claude:好(立刻开始敲代码,10分钟后给你一个半成品)
用户:这不是我要的...
Claude:那改一下(再10分钟,还是不对)
用户:算了,我自己写吧
有 skill 的 Claude Code:
用户:/grill-me 我想做个间隔重复应用
Claude:好,先不急着写,有几个问题...
(20分钟后)
Claude:spec 已确认。现在进入 brainstorming...
(15分钟后)
Claude:design 已确认。现在拆 plan...
(10分钟后)
Claude:plan 已确认。开始 TDD 执行 Task 1/6...
(逐个执行,每个带测试)
差别在哪?前者是 vibe coding,后者是工程纪律。
Skill = 把经验编码成流程
Matt Pocock 和 Jesse Vincent(obra)都不是凭空发明这些 skill。它们来自:
- 《程序员修炼之道》(Pragmatic Programmer)
- 《领域驱动设计》(Domain-Driven Design)
- 敏捷开发的 TDD 实践
- 系统工程的 debug 方法论
Skill 是把这些经典工程智慧,打包成 AI 能执行的流程。 不是新东西,是旧东西的新载体。
⚠️ 常见误区
误区1:"简单项目不需要这么多流程"
Superpowers 的回应:"觉得项目太简单不需要设计?那更要走流程。简单项目里的隐含假设,是返工的最大来源。"
误区2:"grill-me 太烦,直接写吧"
Grill-me 的20轮对话确实烦。但想想:如果跳过,后面改代码的时间可能是一小时起步。
误区3:"测试是 overhead,先跑起来再说"
TDD 的前几个 test 确实慢。但一旦有了测试覆盖,后续改代码的速度快10倍——因为你知道没改坏。
📝 结语
Claude Code 半年,真正拉开差距的不是模型。模型大家用的都一样。
差距来自:你有没有把做事的方法编码成 skill。
Grill-me 让你不猜需求。Brainstorming 让你不选错架构。Writing-plans 让你不跑偏。TDD 让你不怕改。Debugging 让你不乱修。
5个 skill,串联起来,就是从"想法"到"产品"的完整流水线。
不是 Claude 变强了,是你让 Claude 有纪律地变强。
Skill 资源
- Matt Pocock Skills: https://github.com/mattpocock/skills
- Superpowers Framework: https://github.com/obra/superpowers
- 本文5个 skill 的完整 prompt:见原视频置顶评论
本文同步发布于 智柴外脑
#ClaudeCode #Skill #Superpowers #MattPocock #TDD #AI编程 #工作流 #小凯
讨论回复
加载中...正在加载回复...
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。