乐于分享
好东西不私藏

AI 给你写代码总差一口气?因为它根本没有说明书

AI 给你写代码总差一口气?因为它根本没有说明书

开篇 我让 AI 写过 3 次测试,每次都不一样

我让 AI 写过 3 次单元测试。

第一次是一张表格。第二次是 3 段散文。第三次直接给我推荐结论。

同一个函数,同一段 prompt(提示词)。每次输出格式都不一样。

我一开始以为这是 AI 的「创意」。后来才知道——这叫 AI 不知道这事该怎么做

这篇文章是「Claude Code Skills 实战 3 讲」的开篇,要讲清楚一件事:Skill 是什么,为什么 prompt 解决不了的问题,它能解决

01|痛点 AI 不是不会,是不知道怎么做

1.1 三个我反复踩的真实场景

场景一:让 AI 写单元测试

我让 AI 助手给一个函数写几个测试用例。听起来简单——你只是想要 it() 测试代码。

但 AI 实际要做的是:理解函数逻辑、设计测试场景(理想路径 + 边界情况)、编写符合项目风格的测试代码、验证覆盖率。

每次我都要重新解释一遍:「我要的不只是代码,还要完整的测试流程。」

跑 3 次,3 次结果不一样。第 4 次我放弃了。

场景二:批量整理 Markdown 文档

我说「把这 20 篇文档整理一下」,希望 AI 帮我做 4 件事:统一格式、提取关键信息、生成目录、检查链接有效性。

AI 做了什么?格式化了一下,结束。

我不能怪它——它确实没接到「提取关键信息」这道指令。但我每次都要把这 4 个步骤显式说明,就违背了「整理」这个词的本意。

场景三:让 AI 帮我找工具

我说「帮我找一个处理 PDF 的工具」,AI 推荐了一个。

我问:为什么是这个?

AI 答:因为它流行。

我心里直接反问:流行不等于适合我啊。

场景四:整理一份会议纪要

上周开了一个 1 小时的会,我让 AI 帮我整理纪要。

我期待的是:议题分类 / 关键决策 / 待办事项 / 责任人 / 截止日期 5 块结构。

AI 给我的是:500 字的散文,把所有人说过的话简单复述了一遍。

我问它「为什么没有结构化」,它说:「您没有要求结构化输出。」


这四个场景的共同点不是 AI 笨。是 AI 缺一份说明书——告诉它这类任务该怎么做、做到什么程度、什么算完成。

我后来反复想过一个问题:为什么我跟同事说「整理一下纪要」,他能马上给我结构化的 5 块?

因为他脑子里有一份《会议纪要模板》。这份模板是公司里反复跑出来、所有人默认知道的「行业惯例」。

AI 没有这份惯例。每次都需要从零开始猜「整理」是什么意思。

1.2 从技术视角看:3 个根本问题

我必须从架构层面再讲一层,因为这不只是「写指令不够清楚」的小事。

问题一:「巨型 prompt」灾难

如果你想让 AI 稳定输出,最直觉的做法是把所有规则、边界、流程全写进 prompt 里。

结果:prompt 越写越长,几千 Token 起步。

代价不是钱(虽然也是钱)。是 AI 的注意力分散——它面对一份 5000 字的指令时,会出现「中段失忆」(业内有个名词叫 Lost in the Middle),关键约束被静悄悄地忽略。

我必须说,这不是 AI 的能力问题,是 prompt 这种结构的天然缺陷。

问题二:「拥有工具」不等于「会用工具」

AI 现在有一堆外部工具:网页浏览、代码执行、文件读写、API 调用。

但拥有工具不等于知道专业地怎么用。

举个例子:AI 配了 SQL 执行工具,你让它「分析昨天的销售异常」。它会跑一个简单查询交差?还是会先做交叉验证再写报告?取决于它当时的「灵感」。

这不是工具的问题,是缺领域专家的操作智慧

问题三:复用性、稳定性、可维护性

企业场景里,同一类任务一天可能跑 100 次。如果每次输出都不一样,这事就不能交给 AI。

需要的是:把资深专家的「隐性知识」转化成 AI 能理解的「标准操作流程」(SOP)。


这 3 个问题的共同本质是:当前架构缺一种「可插拔的领域专家大脑」

这就是 Skill 要解决的事。

我不是在抱怨 AI 不行。事实上 AI 已经很强了——它能写代码、能理解需求、能调用工具。但「能做」和「稳定地做对」之间,差的就是这份说明书

02|定义 Skill 是给 AI 的「操作手册」

2.1 一句话定义

Skill = 一个可被 Agent 在运行时『发现、理解、调用、组合』的能力模块

定义里有 4 个动作:发现 → 理解 → 调用 → 组合。每个动作都是 AI 自己完成的,不需要你手动指挥。

2.2 一个我反复用的类比

把 Agent(AI 智能体)想象成「刚入职的超级实习生」:

角色
类比
说明
Agent(智能体)
刚入职的超级实习生
智商极高但缺少业务经验
工具
办公设备:电脑、电话、系统账号
提供执行能力的基础设施
Skill(技能) 部门书架上的《岗位操作手册》 包含标准操作流程和专业知识
系统提示词
员工基本守则
「保持礼貌」「客观回答」等基础规范

老板说「处理一下退款,发份财务报告」,实习生不会凭空猜——他从书架抽出《退款处理与报告生成 SOP》,照着步骤一步步用电脑和电话执行。

Skill 就是这本 SOP。

我认为这个类比比「手机 + App」的类比更贴切——因为手机 App 是给消费者用的,SOP 是给执行者用的。员工和 Agent 都是执行者,他们需要的是流程,不是娱乐。

让我把这个场景再演绎一遍,你感受一下「有 Skill」和「没 Skill」的差别。

没 Skill 的实习生

老板说「处理一下退款」,他可能问:要走哪个系统?要不要老板审批?金额怎么核对?要不要通知客户?每问一个问题,老板就得回答一次。问到第 5 个,老板烦了:「你怎么什么都不会。」

有 Skill(也就是 SOP 文档)的实习生

老板说「处理一下退款」,他从书架抽出《退款处理 SOP》,自己看一遍:先去 ERP 系统查订单、超过 500 元要老板邮件审批、按模板发退款通知给客户、退款完成后更新财务记录。

整个过程,老板说了一句话,实习生独立跑完。

两个实习生的区别不是智商,是手里有没有那份 SOP。AI 也一样。

2.3 Skill 的三大特性

后面所有内容,其实都围绕这三个词转。

特性一:可发现

Agent 能知道「我有这个能力,它适合干这事」——不只是「这个能力存在」。

实现靠的是 Skill 头部的描述字段(description,描述)。当用户说「帮我补充单元测试」时,AI 扫一遍所有 Skill 的描述,匹配到「测试驱动开发」这个 Skill。

特性二:可执行

进入 Skill 后,AI 不是自由发挥,而是有结构化流程支撑。

「测试驱动开发」Skill 里写得清清楚楚:第一步理解需求、第二步设计测试用例、第三步先写测试代码(红灯阶段)、第四步实现功能代码(绿灯阶段)、第五步重构。AI 必须按这个顺序走。

特性三:可复用

写一次,到处用。

你写好「测试驱动开发」Skill 后,这周用、下周用、新人也用、跨项目也用。同一份能力跨场景、跨任务、跨时间持续被调用。

这就是 Skill 比「一次性 prompt」更有价值的根本原因——一次性 prompt 写完就丢,Skill 写一次能用一年。

03|对比 Skill 和 prompt 到底差在哪里

很多人会问:Skill 和 prompt 有什么区别?不都是「告诉 AI 怎么做」吗?

答案藏在 5 个维度里。

维度
prompt
Skill
发现性
需要用户主动提供
Agent 自动发现匹配
执行性
依赖 AI 自由发挥
结构化流程支撑
复用性
一次性,难复用
跨场景复用,持续优化
维护性
散落在对话历史里
独立模块,易管理
组合性
难和其他 prompt 组合
可和其他 Skill 组合

让我用一个具体场景说明——还是「补充单元测试」这件事。

用 prompt 的方式

用户:「帮我给这个函数补充单元测试,要覆盖边界情况,要用 Jest 框架,要检查覆盖率,要……」

3 个明显问题:

  • 每次都要重新描述需求,容易遗漏细节
  • AI 可能理解偏差,执行不一致
  • 下次类似任务,又要重新写一遍

用 Skill 的方式

用户:「帮我补充单元测试」

Agent:识别到 test-driven-development(测试驱动开发)Skill

Agent:按 Skill 流程执行

3 个优势:

  • 一句话触发,无需重复描述
  • 流程一致,结果可预期
  • 下次类似任务自动复用

我必须说清楚一件事——Skill 的核心价值不是「更长的 prompt」,是「可发现 + 可执行 + 可复用的能力模块」

一个最简单的 Skill 长什么样

让你看一个真实的 Skill 文件——生成 Git 提交信息的 Skill,整个内容不超过 30 行:

---name:commit-message-generatordescription:基于暂存区的更改生成符合规范的提交信息---# 提交信息生成器## 目标生成清晰、符合最佳实践的规范化提交信息。## 工作流1.gitdiff分析暂存区的代码更改2.识别提交的主要类型(feat/fix/docs/refactor/test)3.从被修改的文件中提取作用范围4.生成一条简明扼要的标题行(不超过50字符)5.如果逻辑复杂,可以加详细的正文说明## 约束-遵循ConventionalCommits格式:type(scope):subject-标题用祈使句(用"add"不用"added"-标题严格控制在50字符以内-标题和正文之间用空行分隔

文件头有 2 个关键字段——name(Skill 名字)和 description(一句话描述)。AI 扫描所有 Skill 时,先看 description 决定要不要进来读详细内容。

下面是 3 个章节:目标(这个 Skill 要干什么)/ 工作流(按什么步骤)/ 约束(不能违反的规则)。

就这样。一份 30 行的文件,AI 就有了一个新能力。

写一个能用的 Skill 不需要写代码——你只需要写清楚「目标 / 工作流 / 约束」三件事。

Skill 的 3 种常见形态

我用了 4 个月、跑通了 100 多个 Skill 之后,发现 Skill 大致分 3 种形态。这 3 种形态决定了你创建一个 Skill 要花多长时间

形态一:简单技能

只有一个 SKILL.md 文件,3-5 步线性流程,没有外部依赖。

刚才的「Git 提交信息生成器」就是典型代表。从想清楚到写完,5 分钟搞定。

适合:单一明确的任务,比如「生成 commit message」「检查代码格式」「写一段注释」。

形态二:多步骤工作流技能

也是单文件 SKILL.md,但工作流有 5-10 步,可能带分支判断。

比如「测试驱动开发」Skill:5 个阶段(理解需求 / 设计测试用例 / 写测试代码 / 实现功能 / 重构),每个阶段有明确的进入和退出标准。

适合:需要按规范流程协同的任务,比如「TDD 开发」「写公众号文章」「做需求调研」。从想清楚到写完,约 20 分钟。

形态三:资源依赖型技能

SKILL.md + 同级的资源目录(脚本、模板、数据文件)。

比如「HTML 交互课件设计」Skill:除了主文件,还有 templates/ 目录放 HTML 模板、patterns/ 目录放交互模式库、scripts/validate.py 做无障碍检查。

适合:需要复杂资源支撑的任务,比如「生成完整网站」「批量处理数据」「自动化运维流程」。从想清楚到写完,约 1 小时。


我必须强调一点:大部分人需要的是形态一和形态二,形态三只在少数情况用

所以如果你刚开始接触 Skill,先写一个 30 行的简单技能,跑起来再说。不要一上来就模仿那些上千行的复杂 Skill——那是工程师做了几个月迭代的产物,不是入门起点。

我用 4 个月后的 3 个真实观察

我自己装了 100 多个 Skill 跑了 4 个月。这里讲 3 个我没看到别人讲过的、但每个 Skill 用户早晚会遇到的事。

观察一:装得越多越糊涂,不如装得对

我一开始的策略是「装就完了,反正不用」。结果装了 60 多个 Skill 之后,AI 开始出现 2 个症状:

第一,简单任务它非要去翻一个 Skill。比如我让它「写一句话总结这段文字」,它居然去翻「文档摘要 SOP」Skill,多走了好几步。

第二,相似 Skill 之间打架。我装了 3 个不同作者的「网页内容提取」Skill,AI 选谁都行——但每次选的不一样,输出格式也不一样。

后来我做了一次清理,砍到 30 个左右常用的,AI 反而更稳了。这是 Skill 反直觉的一面:多不等于强

观察二:好 Skill 都长得像「岗位 SOP」,不像「教程」

很多人写 Skill 的时候,会按写教程的方式写——大段背景介绍、详细原理解释、各种示例代码。

这种 Skill 跑起来效果反而差。

好的 Skill 长得像公司里的标准流程文件:第一步做什么、判断条件是什么、第二步做什么、错了怎么办。一句废话都没有。

我的判断标准很简单——把这份 Skill 给一个新员工,他能不能照着做完事。如果中间有歧义,就要改。

观察三:写一个垃圾 Skill 也比不写强

很多人想写 Skill 但迟迟不动手,因为「我不知道写什么好」。

我必须说,第一个 Skill 你想都不用想,写「整理我的会议纪要」就行

按你自己的会议结构(议题 / 决策 / 待办 / 截止日期)写 5 步工作流,30 行搞定。下次你说「整理纪要」,AI 就能稳定输出你想要的格式。

写完跑一次你就懂了。比读 5 篇 Skill 教程都管用。

路标 后面 2 篇会带你去哪里

系列承诺

3 篇正文,3 周读完。每篇有真实案例,每篇方法论可机械验证。

每一篇都从一个具体痛点出发,不堆砌理论。

后面 2 篇路线

主题
何时该读
第 2 篇
渐进式披露原理:为什么装 100 个 Skill 不烧 Token
你想搞清楚 AI 是怎么「省 Token」的
第 3 篇
9 个我用了 4 个月的必装 Skill 清单 + 怎么挑
你想直接拿一套能用的实战清单

写给读者的一段话

如果你最近也在用 AI 编程工具,遇到「prompt 写得越来越长」「同一类任务每次结果都不一样」「换台电脑或换个项目就崩」这些症状——欢迎在评论区留言你的具体场景。

我会把每一篇里读者反馈的真实痛点收进文章。这不是一次性的清单,是一个边写边改的系列。

Skill 不是银弹。我只是把这两年在 Claude Code 上跑通 100 多个 Skill 的真实路径,一段一段还原给你看。

下一篇见,第 2 篇。