我最近在推进一个偏实验性质的项目时,把 Vibe Coding、OpenSkills 和 Claude Skills 这三样东西彻底揉在了一起用。先说结论:Vibe Coding 这种靠自然语言驱动 Claude Code 写代码的方式,越写到后面,越不是拼提示词,而是拼“你给 Claude 注入了什么能力”。而 Skills 就是给 Claude 装“职业技能包”的最佳载体,OpenSkills 则是我目前见过最省事的技能来源。这篇文章就把我这套体系化落地的完整方案拆开来讲,包括怎么选技能、怎么挂载、怎么写一个自己的 Skill、怎么在真实项目里把多个 Skills 组合成流水线,顺便把踩过的坑也一并交代清楚。
1. Vibe Coding 的软肋:靠“感觉”写代码,为什么需要 Skills 兜底
1.1 Vibe Coding 的典型工作流和卡点
Vibe Coding 听起来很玄,实际操作起来其实就是一件事:把自然语言描述变成可运行的软件,然后让编码代理按你的反馈不断改。绝大多数人刚开始用 Claude Code 时的工作流是这么走的:
- 在对话里描述需求,比如“给我写一个抓取网页PPT元数据的Python脚本”或“把这段JavaScript改成TypeScript”。
- Claude Code 生成第一版代码,你跑一遍。
- 发现问题,继续用自然语言描述问题,让它改。
- 循环几轮,直到功能看起来能用了。
这套流程对 500 行以内的小工具、一次性的脚本很好使。但一旦项目膨胀到几千行、涉及多个文件、需要保持一致的技术规范时,问题就暴露了。最典型的是“上下文漂移”:Claude 的上下文窗口是有限的,当对话越来越长,它可能忘记你最初定下的目录结构、命名规范、错误处理方式,甚至开始前后矛盾。你为了纠正它,每次都要重新把规范讲一遍,这本质上是在做大量重复劳动。
还有一个更隐蔽的问题:每次你让 Claude 做同一件事,它都是在“临时发挥”。比如让它导出一份 PPT,它可能这次用 python-pptx 生成一个简单的演示文稿,下次又问你要不要加图表,再下次又把样式全改了。这种不可预测性在一个人写玩具项目时无所谓,但放到团队协作或交付给客户时,就完全是灾难。
1.2 Skills 不是提示词,是一种结构化的能力注入
我最初以为 Skills 就是“把常用指令存成提示词,然后粘贴进来”,这个理解错得比较离谱。Claude Skills 的官方机制解决的不只是“记住指令”的问题,它解决的是“让 Claude 在合适的时机主动调用已经训练好的行为流程”的问题。
一个 Skill 本质上是一个包含 SKILL.md 文件的目录,SKILL.md 里有 frontmatter、行为说明、工作流程、注意事项,甚至可以带脚本、模板、数据文件。当 Claude Code 判定当前任务与某个 Skill 的描述匹配时,它会加载这个 Skill 的内容,相当于把一套完整的行为模式注入到当前上下文中。
你可以这样理解:提示词是递给 Claude 一张写满字的便签,而 Skill 是递给它一本带操作手册的工具箱。便签告诉它“你要做什么”,工具箱告诉它“按什么标准做、用什么工具做、做完怎么自检”。Vibe Coding 真正欠缺的,恰恰是这套“行为标准化”的机制。
1.3 为什么选择 OpenSkills 作为落地载体
Claude Skills 本身只是一个规范,真正落地需要大量的技能文件。每个人如果都从零开始写,就回到了“造轮子”的老路上。OpenSkills 是一个开放的技能集合仓库,社区成员把自己验证过的 Skills 按规范提交上去,其他人可以直接拉取使用。
选择 OpenSkills 当落地载体,我有三个比较实际的理由:
- 技能覆盖面广:从文档处理、PPT生成、表格分析到软件开发辅助,常见的工程场景基本都有现成的技能包。
- 质量标准相对统一:OpenSkills 对每个技能的结构、描述规范、示例都有要求,至少能保证拉下来的技能是可读、可维护的。
- 可以按需挑选而不是全量安装:它不像某些全家桶插件那样强迫你装一堆用不到的东西,而是让你在仓库里挑自己需要的几个技能复制或引用到本地。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
