400-100-5265

预约演示

Skill 是用出来的

2026-06-23

前几天看到宝玉分享 baoyu-design Skill 的迭代日志,第一感觉不是“这个 Skill 多强”,而是很久没见到这么真实的工具演进过程了。

它不是那种发布页上写满能力清单的 Demo,也不是“输入一句话生成完整 PPT”的爽文。真实情况更接近工程现场:导出的 PPTX 样式铺不满整页,渐变色丢了,打开文件一看,能用,但不够能交付。

很多工具都死在这个阶段。Demo 能跑,自己用着别扭;能解决 70% 的问题,但剩下 30% 靠人肉修。最后用户嘴上说“挺有潜力”,手上还是回到老流程。宝玉这次有意思的地方在于,他没有把问题绕过去,而是把问题喂回给 Agent:复现、分析、修复、补测试,再更新 Skill。

这个动作看起来不大,但它把 Skill 从“提示词资产”推向了“可演进的工程资产”。

一、好工具不是一次设计出来的

宝玉做的这个 Skill 叫 baoyu-design,运行在 Claude Code 里,主要用来做 PPT、动画视频和网站。它可以调用 AI 生成配图,也能导出 PPTX,方便在 PowerPoint 或 Keynote 里继续编辑。

听起来已经挺完整了。

但一进入真实使用,问题马上冒出来:

  • 导出的 PPTX 样式表没有铺满整页;
  • CSS 渐变色在导出后丢失;
  • 原本在网页预览里正常的视觉效果,到了 PPTX 里就变形。

这类问题在工程里很常见。单点看都不像大故障,甚至可以手动修一下。但如果你的目标是“让 Skill 真的承担生产力流程”,这些小问题就会变成硬伤。

PPT 这种东西尤其典型。它不是代码编译通过就算成功,最终交付物要给人看。版式偏一点、颜色错一点、比例不对一点,都会让结果显得廉价。很多 AI 工具在这里容易翻车:生成阶段很惊艳,落地到可编辑文件时细节崩掉。

宝玉的处理方式是把问题原样丢给 Agent,让它分析原因、给方案、修代码,并且加测试。

这背后其实有一个很关键的工程判断:不要把一次手工修复当成结束,要把它变成工具能力的一部分。

手动调 PPT 当然最快。今天改完,今天交付。但下次还会遇到。 修 Skill 慢一点,但修完以后,这类问题会被系统吸收。

这就是工具迭代和临时补救的区别。

二、真实场景会暴露隐藏边界

很多人做 Skill、写自定义指令、写 Agent 工作流时,会掉进一个很隐蔽的坑:在脑子里把流程设计得很完整,但很少把它放进真实任务里撞。

真实任务和测试任务的差异很大。

测试任务通常边界清晰:

  • 输入是什么;
  • 输出是什么;
  • 成功标准是什么;
  • 中间不太会发生奇怪分支。

真实任务刚好相反。它有各种非标准输入、隐含预期和边缘格式。比如这次 PPTX 导出问题,本质上不是“生成一页 PPT”这么简单,而是跨了好几层技术边界:

流程图 - Skill 是用出来的

每一层都可能引入偏差。

页面里看着没问题,不代表 PPTX 里没问题。浏览器支持的 CSS 特性,不代表 PPTX 转换库也能完整表达。PowerPoint 对渐变、字体、透明度、背景铺满的处理,也可能和 Web 渲染模型不一致。

这就是前端工程师非常熟悉的痛点:“看起来一样”和“底层表示一样”是两回事。

在网页里,一个渐变背景可能只是几行 CSS:

.slide {
  width: 100vw;
  height: 100vh;
  background: linear-gradient(135deg, #111827 0%, #6366f1 100%);
}

但导出到 PPTX 时,它要被转换成 PowerPoint 能理解的形状、填充、渐变节点和尺寸约束。只要转换层没有完整处理,效果就会丢。

样式表铺不满整页也是同类问题。Web 里的布局基于视口、盒模型和 CSS 规则;PPTX 里的页面基于固定画布、坐标、形状和母版。二者不是天然同构。

所以这类问题靠“多写几句提示词”很难彻底解决。它需要进入实现层:

  • 外部样式表是否被完整内联;
  • 背景是否被转换为 PPTX 原生对象;
  • 渐变语法是否需要降级;
  • 页面尺寸和 PPT 尺寸是否一致;
  • 导出结果是否有回归测试保护。

这也是 Skill 生态里一个容易被忽视的点:越靠近交付物,越需要工程化。

Prompt 可以解决表达问题,但解决不了所有格式转换问题。 Agent 可以帮你写代码,但前提是你愿意把问题定位到代码层。

三、Agent 的价值在问题出现之后

很多人理解 Agent,还是把它当成“自动干活的实习生”:给一个任务,它把事情做完。这个理解不算错,但有点窄。

宝玉这次的用法更接近一种工程协作:

  1. 人在真实使用中发现异常;
  2. 人把现象描述给 Agent;
  3. Agent 结合代码仓库上下文定位原因;
  4. Agent 给出修复方案;
  5. 人确认方向;
  6. Agent 修改代码并补测试;
  7. 人继续使用验证。

这里面最关键的起点不是 Agent,而是人的判断力。

Agent 不会天然知道“这个 PPT 不够好”。它不知道你心里期待的版式是什么,也不知道这个交付物要拿去给谁看。它只能处理你明确交给它的问题。

所以,Agent 协作的第一能力其实是:你能不能准确说出哪里不对劲。

比如下面两种描述,效果完全不一样。

低质量 高质量 后者不是因为字多,而是它把现象、对比、可能范围和期望动作都交代清楚了。Agent 在这种上下文里,才更像一个能干活的工程伙伴。

这也解释了为什么 Arvind Narayanan 会说 Coding Agent 是“正常技术”。它不是魔法,也不是替代软件工程师的按钮。它更像一次生产力工具升级:写代码、查上下文、改文件、补测试的速度变快了,但问题定义仍然依赖人。

很多团队做到这里会卡住。他们期待 Agent 自动发现所有问题,自动判断方案好坏,自动完成验收。这个期待太高了。至少在当前阶段,比较可靠的模式还是:

环节 更适合人做 更适合 Agent 做
判断哪里不对
描述现象和目标 辅助
搜索代码上下文 辅助
分析可能根因 共同完成
实现修复 审核
设计验收标准 辅助
补充测试用例 审核
最终质量判断

这张表看起来有点朴素,但生产环境里经常就是这些朴素边界决定成败。

人定义“好不好”,Agent 负责“怎么改得更快”。 这个分工比“让 AI 接管一切”靠谱得多。

四、Skill 的本质是可复用经验

很多人听到 Skill,会下意识觉得它是 Claude Code 里的某种高级功能。但换个更工程化的说法,Skill 其实是把一组经验固化成可复用执行单元。

它可能很复杂,比如 baoyu-design 这种可以生成 PPT、动画和网站的设计助手。 也可能很简单,比如一个项目里的自定义 slash command:

/commit-review
/release-note
/refactor-plan
/write-test

在 Claude Code 里,你可以把常用流程写成 Markdown 文件,放到类似 .claude/commands/ 的目录里。团队成员都能复用。它不像传统脚本那样只能处理确定输入,也不像纯 Prompt 那样完全漂在上下文里。它介于两者之间:

  • 有固定流程;
  • 有项目上下文;
  • 能调用 Agent 能力;
  • 可以随着真实问题不断修改。

一个很小的例子,比如团队经常需要让 Agent 帮忙写测试,可以把命令设计成这样:

# write-test

请为当前变更补充测试。

要求:
- 先阅读相关实现和已有测试风格;
- 不要为了覆盖率写无意义断言;
- 优先覆盖本次修改涉及的边界条件;
- 如果发现代码不可测试,先说明原因,再给出重构建议;
- 输出修改文件列表和测试运行方式。

这就是一个 Skill 的雏形。

它真正的价值不在于第一次写得多完整,而在于你每次使用后继续修它。

比如第一次发现 Agent 总喜欢写过度 mock,就加一条约束。 第二次发现它漏掉异常分支,就补一个检查项。 第三次发现它不知道项目测试命令,就把命令写进去。 第四次发现它改了无关文件,就要求输出 diff 范围并解释原因。

这不是“调提示词”的小游戏,而是在沉淀团队工程习惯。

对个人来说,它是工作流资产。 对团队来说,它是轻量级工程规范。 对长期项目来说,它是经验的低成本复用。

五、加测试是分水岭

宝玉这次迭代里,有一个细节很关键:让 Agent 加测试。

修 bug 不难,难的是让同类问题以后别回来。

很多工具类项目早期都会经历这个阶段:功能越加越多,边界越来越碎,靠手动验证已经扛不住。尤其是像 PPTX 导出、HTML 转换、样式渲染这类功能,天然就容易回归。

如果只是修代码,下一次改导出逻辑时,渐变色可能又丢一次。 如果把这次问题固化成测试,工具就获得了一层记忆。

可以把这个过程理解成:

流程图 - Skill 是用出来的

这条闭环里,测试是最容易被忽略、也最能拉开质量差距的一步。

当然,给 PPTX 这种视觉交付物写测试并不总是简单。这里有明显的 trade-off:

测试方式 优点 问题 适用场景
单元测试 快、稳定、定位准 只能覆盖转换逻辑局部 CSS 解析、尺寸计算、配置生成
快照测试 容易发现结构变化 快照可能变成噪音 PPTX XML 结构、导出元数据
视觉回归测试 接近真实体验 成本高,易受环境影响 关键模板、核心页面
人工验收 判断最准确 不可规模化,容易遗漏 发布前最终确认

工程上通常不会一开始就把所有测试拉满。比较现实的做法是:先覆盖最容易回归、最影响交付的点。

比如这次:

  • 外部样式表是否被嵌入;
  • 页面尺寸是否正确映射到 PPTX;
  • 渐变背景是否保留或被合理降级;
  • 导出的 PPTX 是否能被目标软件打开。

这里的关键不是追求测试体系多完美,而是让每一次 bug 都能留下痕迹。否则工具永远停留在“今天修好了”的状态。

一个不会积累失败经验的 Skill,很难长大。

六、Demo 里的能力不等于真实可靠

Narayanan 团队关于 AI Agent 的研究里,有一个判断很值得放到 Skill 场景里看:Agent 在标准测试里表现不错,但在真实、长期、混乱的任务里,可靠性会明显下降。

这个结论不意外。标准测试通常像考场,真实任务更像工地。

考场题目有明确答案,工地上会遇到材料不齐、图纸变更、天气影响、沟通偏差。Agent 在 Demo 里表现好,说明它具备能力;到了真实工作流里还能稳定,才说明它具备可用性。

Skill 也是这样。

一个 PPT Skill 在演示里生成三页漂亮幻灯片,不代表它能支撑日常工作。真正要看的是:

  • 能不能处理不同主题和内容密度;
  • 能不能导出可编辑文件;
  • 能不能保持样式一致;
  • 能不能在失败时给出可诊断信息;
  • 能不能通过测试避免反复踩坑;
  • 能不能被别人复用,而不是只适合作者本人。

这就是技术成熟度的问题。

很多 AI 工具现在处于“能力已经出现,可靠性还在补课”的阶段。它们能做出令人惊喜的结果,但要进入稳定生产流程,还需要大量边界修复和工程包装。

这里有个现实取舍:你不能指望一开始就做出完美 Skill。

如果一开始就追求完整能力,很容易陷入过度设计:

  • 想支持所有 PPT 风格;
  • 想兼容所有导出格式;
  • 想覆盖所有用户场景;
  • 想把异常处理一次写完。

最后大概率是迟迟用不起来。

更好的路径是从自己的高频场景切进去。先让它服务一个真实任务,然后用问题反推演进方向。这个策略不够宏大,但有效。

工具的边界不是靠想象画出来的,是靠使用撞出来的。

七、个人 Skill 会走向团队资产

Claude Code 的 Skill、自定义指令、slash commands 这些东西,早期看起来像个人效率工具。但它们很容易自然长成团队资产。

原因很简单:团队里的很多问题是重复的。

比如:

  • 新人不知道项目代码风格;
  • 每次发版都漏写 release note;
  • Code Review 总是重复指出同类问题;
  • 测试用例写法不统一;
  • 数据库变更缺少回滚方案;
  • 前端组件改动没有检查可访问性;
  • API 修改忘记同步文档。

这些都适合沉淀成 Skill 或命令。

传统做法是写规范文档。但规范文档有个老问题:写的人很认真,看的人很少,执行的时候更容易忘。

Skill 的优势在于,它可以进入工作流。不是把规范挂在墙上,而是在你执行任务时直接参与。

比如团队可以有一个 /api-change-check

# api-change-check

当本次变更涉及 API 接口时,请检查:

- 是否修改了 OpenAPI / 接口文档;
- 是否影响前端调用方;
- 是否涉及兼容性破坏;
- 是否需要数据库迁移;
- 是否需要灰度或开关;
- 是否补充了接口测试;
- 是否需要更新 release note。

请基于当前 diff 输出检查结果,不要泛泛而谈。

这类命令不复杂,但很实用。

它的价值不在于“AI 多聪明”,而在于把团队已经知道、但经常忘记执行的经验,放进了每一次开发动作里。

当然,这里也有边界。Skill 不能替代工程治理。

如果团队没有基本的代码规范、测试体系、发布流程,Skill 也只是把混乱包装得更自动化。Agent 能提高执行效率,但它无法替你定义组织里的质量标准。

所以更合理的使用方式是:先从确定性较高、重复性较强、反馈链路较短的流程开始。

优先做这些:

  • 代码变更检查;
  • 测试生成辅助;
  • 文档同步;
  • 提交信息整理;
  • 发版说明生成;
  • 常见故障排查模板。

谨慎做这些:

  • 大规模架构重构;
  • 无人审核的自动发布;
  • 涉及资金、安全、权限的自动决策;
  • 长链路、多系统、低可观测任务。

这不是保守,是工程现实。

Agent 越强,越要给它清晰边界。否则效率提升会变成风险放大。

八、Skill 生态最接地气的一层

现在 AI 生态里的大词很多:模型、推理、上下文窗口、多模态、Agent、MCP、工具调用。每个词都重要,但对大多数开发者来说,真正能马上改变工作方式的,往往是 Skill 这种更贴近日常任务的东西。

它不要求你训练模型,也不要求你维护复杂基础设施。你需要的是:

  • 一个具体问题;
  • 一个可运行环境;
  • 一段可复用指令或代码;
  • 持续使用和修正的耐心。

这也是为什么 baoyu-design 的迭代日志值得看。它没有停留在“AI 可以做 PPT”这种表层叙事,而是暴露了工具从能跑到好用之间的真实缝隙。

这些缝隙包括:

  • 视觉效果和文件格式之间的差异;
  • Prompt 生成和工程实现之间的差异;
  • Demo 成功和长期可靠之间的差异;
  • 一次修复和持续演进之间的差异。

很多 AI 工具的价值,最终都会落到这些缝隙里。

谁能把缝隙补上,谁的工具就更接近生产力。 谁只停留在演示层,谁就很容易被下一个更酷的 Demo 盖过去。

九、把第一个不对劲说出来

做 Skill 最难的地方,可能不是技术,而是心态。

很多人会等。等自己想清楚全部功能,等提示词写得足够漂亮,等流程设计得足够完整,等有时间系统研究一下。等着等着,这件事就没了。

更现实的路径是先做一个粗糙版本,然后把它用在真实任务里。

它一定会出问题。 输出不稳定,格式不对,漏掉上下文,改错文件,测试写得别扭。 这些都正常。

关键是别把这些问题当成失败。它们是工具开始进入真实世界的证据。

宝玉做 baoyu-design Skill 的七次修复,真正有价值的地方不只是修好了几个 bug,而是展示了一条很朴素的路线:

使用它
发现它的问题
描述问题
让 Agent 分析和修复
补测试
继续使用

这条路线没有多神秘,但它足够扎实。

未来一段时间,很多人的工作流都会被 Skill、Agent、自定义命令慢慢改造。差别可能不在于谁一开始写得更高级,而在于谁更愿意把真实问题持续喂回工具里。

好工具不是憋出来的。 它是在一次次“不对劲”里长出来的。

创作声明:本内容包含AI辅助创作,观点仅供参考。