不是代码的替代品,是工程经验的传导器。
大部分人理解 Skill 的价值是”复用 prompt,不用每次重写”。
这是对的,但只停留在 Level 1。
Skill 真正的价值是把专家的隐性知识显性化、结构化、可分发。
一个 Skill 本质上是:
领域专家的经验 → 结构化 prompt → 任何人在任何会话中复现同等质量的工作
拿发票识别举例。第一次做需要经历:
这个过程可能花 2 小时。封装成 Skill 后,下次是 2 秒。
省掉的不是打字时间,是思考和试错的时间。
Level 1 — 模板
固定 prompt,填参数
价值:节省打字
Level 2 — 流程
多步骤编排,带判断逻辑
价值:确保过程可靠(不会漏步骤)
Level 3 — 专业知识
编码了隐性经验(踩过的坑、调过的参数、失败的方案)
价值:让非专家也能达到专家级输出
大部分人的 Skill 停在 Level 1。真正有价值的是 Level 3。
calculate_vat(amount, rate)
是复用——同一个东西用两次。
Skill 做的是迁移——同样一张发票,换了个项目、换了个人、换了个 AI 会话,识别的判断力不丢失。
关键区别:
一个新手拿到发票识别的 Skill,他不需要经历调 prompt、处理税率为 0、对付折扣行的那 2 小时。他直接站在前人的经验上。
这不是快了 2 小时,是跳过了 2 小时的犯错空间。
教育和培训的本质——不是传递信息,是传递犯错的权利。Skill 让后人不用再犯前人犯过的错。
传统软件复用的是代码逻辑。Skill 复用的是判断力。
# 传统代码复用:逻辑确定,输入确定,输出确定
def calculate_vat(amount, rate):
return amount * rate
# Skill 复用:不确定的输入 → 专家级判断 → 高质量输出
识别这张发票,提取结构化数据,
注意折扣行不等于负数明细,
注意税率可能为 0(出口免税),
如果金额与税额不匹配,优先信任金额...
| 传统组件 (npm/pip) | Skill (.md) | |
|---|---|---|
| 复用什么 | 确定性逻辑 | 判断力和经验 |
| 适应性 | 接口固定,改了就崩 | 自然语言,适应上下文 |
| 维护成本 | 版本兼容、依赖地狱 | 改几句话就行 |
| 创作门槛 | 需要编程能力 | 需要领域专业知识 |
Skill 让领域专家(不一定是程序员)也能创造可复用的软件组件。这是以前做不到的。
同一个 Skill 执行 10 次,可能 9 次输出质量 95 分,1 次输出 60 分。而且你事先不知道哪次是 60 分。
这意味着 Skill 不能承担需要可靠性的工作:
Skill 能承担的是有容错空间的工作:
代码(确定性) Skill(概率性)
├─ 计算逻辑 ├─ 识别/分类
├─ 数据持久化 ├─ 分析/建议
├─ 网络请求 ├─ 审查/检查
├─ 状态管理 └─ 规划/总结
└─ 安全校验
代码做必须对的,Skill 做对了更好的。
概率性不是 Skill 的缺陷,是它的本质。认清这个边界,才知道什么该交给 Skill,什么必须写成代码。
代码逻辑:做什么、怎么做、每一步的输入输出是什么
工程逻辑:先做什么、什么时候该停、出了问题往哪看
以三个实际 Skill 为例:
| Skill | 工程逻辑 | 不是 |
|---|---|---|
/start |
先读文档 → 再看 git → 然后总结 → 不改代码 | 不是一个解析 git log 的函数 |
/wrap |
收集变更 → 读当前状态 → 更新文件 → 输出总结 | 不是一个文件写入脚本 |
/init-context |
先分析项目 → 再创建骨架 → 智能填充 → 跳过已有 | 不是一个目录生成器 |
每一步都是决策点,不是计算点。“读 CLAUDE.md”不是因为需要解析它的内容,是因为有经验的工程师会先看项目文档再动手。Skill 编码的是这个”会先看”的判断。
这也解释了为什么 Skill 写成自然语言比写成代码更好——工程逻辑本身就不精确,它依赖上下文和判断。强制把它变成 if/else 反而丢失了灵活性。
Skill 的准确定位:
把工程方法论从人脑迁移到 AI 的载体。
不是代码的替代品,是工程经验的传导器。
它的价值不在于效率,在于不退化——让经验跨越项目、跨越人员、跨越 AI 会话而保持质量。