skill-philosophy

Skill 的本质:不是复用,是迁移

不是代码的替代品,是工程经验的传导器。

一、表层:复用 prompt

大部分人理解 Skill 的价值是”复用 prompt,不用每次重写”。

这是对的,但只停留在 Level 1。

二、深层:经验迁移

Skill 真正的价值是把专家的隐性知识显性化、结构化、可分发

一个 Skill 本质上是:

领域专家的经验 → 结构化 prompt → 任何人在任何会话中复现同等质量的工作

拿发票识别举例。第一次做需要经历:

这个过程可能花 2 小时。封装成 Skill 后,下次是 2 秒。

省掉的不是打字时间,是思考和试错的时间。

三、三个层次

Level 1 — 模板
  固定 prompt,填参数
  价值:节省打字

Level 2 — 流程
  多步骤编排,带判断逻辑
  价值:确保过程可靠(不会漏步骤)

Level 3 — 专业知识
  编码了隐性经验(踩过的坑、调过的参数、失败的方案)
  价值:让非专家也能达到专家级输出

大部分人的 Skill 停在 Level 1。真正有价值的是 Level 3。

四、复用 vs 迁移

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,什么必须写成代码。

七、工程逻辑 vs 代码逻辑

代码逻辑:做什么、怎么做、每一步的输入输出是什么
工程逻辑:先做什么、什么时候该停、出了问题往哪看

以三个实际 Skill 为例:

Skill 工程逻辑 不是
/start 先读文档 → 再看 git → 然后总结 → 不改代码 不是一个解析 git log 的函数
/wrap 收集变更 → 读当前状态 → 更新文件 → 输出总结 不是一个文件写入脚本
/init-context 先分析项目 → 再创建骨架 → 智能填充 → 跳过已有 不是一个目录生成器

每一步都是决策点,不是计算点。“读 CLAUDE.md”不是因为需要解析它的内容,是因为有经验的工程师会先看项目文档再动手。Skill 编码的是这个”会先看”的判断。

这也解释了为什么 Skill 写成自然语言比写成代码更好——工程逻辑本身就不精确,它依赖上下文和判断。强制把它变成 if/else 反而丢失了灵活性。

八、结论

Skill 的准确定位:

把工程方法论从人脑迁移到 AI 的载体。

不是代码的替代品,是工程经验的传导器。

它的价值不在于效率,在于不退化——让经验跨越项目、跨越人员、跨越 AI 会话而保持质量。