1. 为什么 Skills 值得每个开发者认真对待
第一次接触 Skills 这个概念,是在给一个中型前端项目做代码审查的时候。当时团队里有个同事提交了一段特别规整的组件代码,命名、注释、边界处理都挑不出毛病,我问他是不是最近状态特别好,他说他只是装了一个前端开发相关的 Skill,让 AI 助手按照预设的规范来生成和检查代码。那一刻我才意识到,Skills 不是又一个花哨的 AI 概念,而是真正能把日常开发效率拉高一个档次的实用工具。
Skills 本质上是一套写给 AI 编程助手看的“技能说明书”。它用结构化的 Markdown 文件(核心就是 SKILL.md)描述某个特定任务应该怎么做、遵循什么规范、注意哪些坑。当你在 Cursor、Claude Code 这类工具里启用一个 Skill 之后,AI 在处理相关任务时就会自动加载这份说明书,按照你定义的流程和标准来干活。这跟单纯写一段提示词有本质区别:提示词是一次性的、散落的,而 Skill 是可复用、可版本管理、可团队共享的。
它能解决的问题非常具体。比如你团队有一套自己的 API 错误码规范,每次让 AI 写接口都要反复强调;比如你希望 AI 生成图片时固定用某种风格和尺寸;比如你要求所有提交的代码必须带特定格式的注释。这些重复性的“规矩”,以前只能靠人肉记忆和反复叮嘱,现在全部可以沉淀成 Skill,一次写好,长期生效。
这篇文章适合三类人看:一是刚开始用 Cursor 或 Claude Code、还没搞明白 Skills 怎么接入的新手;二是已经在用 AI 编程但觉得输出质量不稳定、想通过 Skills 来约束和提升的开发者;三是想自己动手写 Skill、把团队规范沉淀下来的技术负责人。我会从 Skills 的分类讲起,然后手把手带你走完 Cursor 和 Claude Code 的接入全流程,最后分享一些我自己踩过的坑和实操心得。
2. Skills 到底是什么:从 SKILL.md 说起
2.1 SKILL.md 的结构与核心字段
要理解 Skills,得先搞清楚 SKILL.md 这个文件到底长什么样。你可以把它想象成一份“给 AI 看的岗位说明书”——告诉 AI 在什么场景下该做什么、怎么做、做到什么程度算合格。
一个典型的 SKILL.md 通常包含几个核心部分。最上面是元信息区,用 YAML frontmatter 的格式写明这个 Skill 的名称、描述、适用场景、触发条件。名称要简短明确,描述要一句话说清楚这个 Skill 解决什么问题。触发条件很关键,它决定了 AI 在什么情况下会自动加载这个 Skill,写得太宽会导致 Skill 被滥用,写得太窄又会导致该用的时候用不上。
中间是主体内容区,这部分是 Skill 的灵魂。它通常包含任务目标、执行步骤、输出格式要求、注意事项、示例。任务目标要写清楚这个 Skill 最终要产出什么;执行步骤要按顺序列出 AI 应该怎么一步步做;输出格式要求规定了结果的呈现方式,比如必须是 JSON、必须带特定标题层级、必须包含哪些字段;注意事项则是把那些容易出错的地方提前标出来;示例部分给出正例和反例,让 AI 有直观参照。
底部通常还会有一些补充说明,比如依赖的工具、参考文档链接、版本变更记录。这些不是必须的,但对于团队协作来说很有价值。
2.2 Skills 和普通提示词的本质区别
很多人会问,我直接写一段提示词不就行了,为什么要搞这么复杂的文件?这个问题我一开始也想过,后来在实际项目里对比了两种方式,差距非常明显。
普通提示词是“即用即弃”的。你今天跟 AI 说“帮我写个 React 组件,用函数式,带 PropTypes”,明天换个会话又得重新说一遍。而且提示词很容易写得不完整,你想到什么写什么,遗漏的部分 AI 就自由发挥,输出质量忽高忽低。
Skill 则是“一次定义,长期复用”。它把规范固化下来,每次触发都完整加载,不会遗漏。更重要的是,Skill 可以纳入 Git 版本管理,团队里谁改了规范、什么时候改的、改了什么,全部有记录。新人入职直接拉取仓库,所有 AI 助手的输出标准立刻对齐,省去了大量口头传达的成本。
还有一个容易被忽略的点:Skill 支持组合和嵌套。你可以写一个基础的代码风格 Skill,再写一个专门针对 React 的 Skill,后者可以引用前者。这样规范分层管理,改基础规范的时候所有上层 Skill 自动生效,维护成本大幅降低。
2.3 触发机制:AI 怎么知道该用哪个 Skill
Skills 的触发机制是很多人困惑的地方。简单说,AI 助手会在处理任务时,根据当前上下文和 Skill 的触发条件做匹配。匹配上了就加载,匹配不上就不加载。
触发条件通常写在 SKILL.md 的元信息里,可以是关键词匹配,也可以是场景描述。比如一个“图片生成”的 Skill,触发条件可能写成“当用户请求生成、编辑或处理图片时”。一个“API 接口开发”的 Skill,触发条件可能写成“当任务涉及创建、修改 RESTful 接口时”。
这里有个实操经验:触发条件不要写得太抽象。我见过有人写“当需要写代码时”,这种条件几乎等于没有条件,会导致 Skill 在任何编码场景都被加载,反而干扰 AI 的判断。好的触发条件应该是具体的、有明确边界的,比如“当需要编写单元测试且测试框架为 Jest 时”。
另外,不同工具对触发机制的支持程度不一样。Cursor 和 Claude Code 都有自己的 Skill 加载逻辑,下面讲接入流程的时候我会具体说。
3. 8 类值得装的 Skills 实战推荐
3.1 代码规范与风格类 Skills
这类 Skills 是我认为优先级最高的,因为它直接影响你每天产出的代码质量。一个典型的代码规范 Skill 会定义命名约定、缩进风格、注释格式、文件组织结构、导入顺序等。
我自己的做法是,把团队的 ESLint 和 Prettier 配置提炼成一份 Skill,让 AI 在生成代码时就按照这套规则来,而不是生成完再跑 lint 去修。这样省去了大量“生成-检查-修改”的循环。具体来说,Skill 里会写明:变量用 camelCase,常量用 UPPER_SNAKE_CASE,组件文件用 PascalCase,工具函数文件用 camelCase,导入顺序按“第三方库-内部模块-相对路径”分组,每组之间空一行。
这类 Skill 的价值在于一致性。团队五个人用同一个 Skill,产出的代码风格就是统一的,代码审查的时候不用再纠结格式问题,可以把精力放在逻辑上。
3.2 前端开发类 Skills
前端开发是 Skills 应用最成熟的领域之一。常见的前端 Skill 包括组件生成、状态管理规范、路由配置、样式方案等。
以组件生成为例,一个好的 Skill 会规定:组件必须用函数式写法,必须定义 Props 类型,必须有默认值处理,必须有边界情况(loading、empty、error)的渲染逻辑,必须导出为命名导出而非默认导出。这些规矩写进 Skill 之后,AI 生成的组件直接就能用,不需要你再补一堆遗漏的分支处理。
样式方案方面,如果团队用 Tailwind,Skill 里可以规定类名的排列顺序、响应式断点的使用规范、自定义颜色的引用方式。如果用的是 CSS Modules,就规定类名命名规范和嵌套层级限制。这些细节看似琐碎,但积累起来对项目可维护性影响很大。
3.3 图片生成类 Skills
图片生成 Skill 是最近热度很高的一类。它的核心是把图片生成的参数固化下来,避免每次都要重新描述风格、尺寸、构图。
一个实用的图片生成 Skill 会包含:默认尺寸和比例、风格关键词库、负面提示词列表、输出格式要求。比如你做的是电商项目,Skill 里可以规定所有商品图必须是白底、正方形、分辨率不低于 1024、风格为“clean product photography”。这样 AI 生成图片时自动套用这些参数,你不用每次都重复。
安装包方面,很多社区分享的图片生成 Skill 会打包成一个目录,里面除了 SKILL.md 还有示例图片、参数配置文件。安装的时候把整个目录放到指定位置即可,下面接入流程会讲具体路径。
3.4 文档与注释类 Skills
写文档是很多开发者的痛点,这类 Skill 能帮你把文档质量拉齐。常见的包括 API 文档生成、README 编写、代码注释规范、变更日志维护。
我特别推荐的是代码注释 Skill。它规定:每个导出函数必须有 JSDoc 注释,注释必须包含功能描述、参数说明、返回值说明、异常说明、使用示例。AI 生成代码时会自动补全这些注释,省去了事后补文档的麻烦。而且因为格式统一,后续用工具自动生成文档站点的时候直接就能解析。
变更日志 Skill 也很实用。它规定每次代码变更必须按“新增、修改、修复、移除”四个分类记录,每条记录必须包含变更内容和影响范围。这样发版的时候直接汇总,不用再翻 commit 记录。
3.5 测试与质量保障类 Skills
测试类 Skill 解决的是“测试写得随意”的问题。一个完整的测试 Skill 会规定:测试文件命名规范、测试用例组织结构、断言风格、mock 策略、覆盖率要求。
具体来说,它会要求每个测试文件对应一个源文件,测试用例按“正常路径、边界情况、异常情况”三组组织,断言必须明确期望值而不是只检查 truthy,外部依赖必须 mock 不能真实调用。这些规矩写进 Skill 后,AI 生成的测试用例质量会稳定很多,不会出现“测试写了但没测到点子上”的情况。
质量保障方面还可以有代码审查 Skill,规定审查时必看的检查项:空值处理、错误捕获、资源释放、并发安全、性能隐患。AI 按这个清单逐项检查,比人肉审查更不容易遗漏。
3.6 数据处理与转换类 Skills
这类 Skill 适合经常处理数据格式转换的场景。比如 CSV 转 JSON、JSON 转 YAML、数据库导出转 Excel、日志解析等。
一个数据处理 Skill 会规定:输入格式的校验规则、字段映射关系、类型转换规则、异常数据处理策略、输出格式要求。比如处理用户数据时,规定手机号必须脱敏、邮箱必须小写、时间戳统一转 ISO 格式、空值统一转 null 而不是空字符串。这些规则固化下来,每次处理数据都一致,不会因为疏忽导致数据质量问题。
3.7 项目脚手架与初始化类 Skills
新项目初始化是个重复劳动,这类 Skill 能帮你标准化流程。它规定:目录结构、依赖清单、配置文件内容、初始代码模板、Git 忽略规则。
我自己的脚手架 Skill 里写明了:src 下按 features 和 shared 分层,每个 feature 包含 components、hooks、utils、types 四个子目录,根目录必须有 .editorconfig、.prettierrc、tsconfig.json 且内容固定。这样每次开新项目,AI 按 Skill 生成骨架,五分钟就能进入业务开发,不用再花半天搭架子。
3.8 团队协作与流程类 Skills
最后一类是流程类 Skill,它把团队的工作流程固化下来。比如提交信息规范、分支命名规范、PR 描述模板、代码审查清单、发布流程。
提交信息 Skill 会规定:格式为“类型(范围): 描述”,类型限定为 feat、fix、docs、style、refactor、test、chore,描述必须用中文且不超过 50 字。这样提交记录整齐划一,后续生成变更日志的时候直接解析就行。
PR 描述 Skill 规定:必须包含变更背景、变更内容、测试情况、影响范围、回滚方案五个部分。AI 生成 PR 描述时按这个模板填,审查者一眼就能看明白这次改动的影响。
4. Cursor 接入 Skills 全流程
4.1 Cursor 的安装与基础配置
Cursor 的安装本身不复杂,官网下载对应系统的安装包,双击安装即可。Windows、macOS、Linux 都有对应版本。安装完成后第一次启动会让你选择主题、导入 VS Code 配置(如果你之前用 VS Code,可以直接导入,插件和快捷键都能带过来)。
基础配置里我建议先做几件事。第一是设置中文界面,在设置里搜索“language”,把显示语言改成中文,这样菜单和提示都是中文,对新手友好很多。第二是配置 AI 模型的 API Key,如果你有自己的额度就填自己的,没有的话用内置的也行。第三是调整 Tab 补全的触发灵敏度,默认设置有时候太激进,写注释的时候也会触发补全,可以在设置里把触发延迟调高一点。
关于额度,Cursor Pro 的额度对于日常开发来说基本够用,但如果你重度依赖 AI 生成代码,可能会在月底感到紧张。我的建议是把简单的补全交给 Tab,复杂的生成和重构再用 Agent 模式,这样额度消耗更合理。
4.2 在 Cursor 中启用 Skills 的步骤
Cursor 对 Skills 的支持是通过规则文件(Rules)和自定义指令来实现的。虽然它没有像 Claude Code 那样原生的 Skill 目录机制,但可以通过 .cursorrules 文件或者项目级的规则配置达到类似效果。
具体操作是这样的:在项目根目录创建 .cursorrules 文件,把 SKILL.md 的内容按 Cursor 能识别的格式写进去。Cursor 会在处理任务时读取这个文件,按照里面的规则来。如果你有多个 Skill,可以放在 .cursor/rules 目录下,每个 Skill 一个文件,Cursor 会自动加载。
这里有个细节要注意:Cursor 的规则文件有长度限制,太长的 Skill 会被截断。我的做法是把核心规则放在 .cursorrules 里,详细的示例和补充说明放在单独的文档里,在规则文件中引用文档路径。这样既保证了核心规则被加载,又不会超出长度限制。
启用之后怎么验证生效了呢?你可以让 AI 生成一段代码,看看是否符合 Skill 里定义的规范。比如你的 Skill 规定函数必须有 JSDoc 注释,那就让 AI 写个函数,看它有没有自动加注释。如果没有,检查一下规则文件路径对不对、格式有没有问题。
4.3 Cursor 中 Skills 的调试与优化
Skills 不是写完就一劳永逸的,需要根据实际使用效果不断调整。我常用的调试方法是:故意让 AI 处理一个边界情况,看它有没有按照 Skill 的规则来处理。比如 Skill 里规定空数组要返回空状态提示,那就让 AI 写一个处理列表渲染的组件,看它有没有处理空数组的情况。
如果发现 AI 没有遵守某条规则,通常有几个原因。一是规则写得太模糊,AI 理解不了;二是规则和其他指令冲突了;三是规则的位置太靠后,被前面的内容淹没了。对应的解决办法是:把规则写得更具体,加上正例和反例;检查有没有冲突的指令;把重要规则往前放。
优化的时候我建议一次只改一条规则,改完立刻测试效果。一次性改太多,出了问题都不知道是哪条改坏了。另外,把每次调整的原因和效果记录下来,形成一份 Skill 的变更日志,时间长了你会发现这份日志本身就是很有价值的经验沉淀。
5. Claude Code 接入 Skills 全流程
5.1 Claude Code 的安装与初始化
Claude Code 的安装方式取决于你的系统。macOS 和 Linux 用户可以通过命令行安装,Windows 用户建议用 WSL 环境。安装完成后,第一次运行需要登录账号并授权。
初始化配置里,我建议先设置好工作目录和权限范围。Claude Code 会读取你指定目录下的文件,权限范围设置得太宽会有安全顾虑,设置得太窄又会影响功能。我的做法是只授权当前项目目录,需要访问其他目录的时候临时授权。
如果你在 Ubuntu 上安装,可能会遇到依赖缺失的问题。常见的缺失依赖包括 Node.js 版本过低、缺少构建工具等。解决办法是先升级 Node.js 到 18 以上,然后安装 build-essential 包。这些在官方文档里都有说明,照着做就行。
5.2 Claude Code 的 Skills 目录结构
Claude Code 对 Skills 的支持是原生的,它有一个专门的 Skills 目录。默认位置在用户主目录下的 .claude/skills 目录,你也可以在项目里创建 .claude/skills 目录来放项目专属的 Skill。项目级的 Skill 优先级高于用户级的,这样不同项目可以用不同的 Skill 集。
每个 Skill 是一个独立的子目录,目录名就是 Skill 的名称。目录里必须有一个 SKILL.md 文件,这是入口。其他文件比如示例、配置、脚本都可以放在同目录下,SKILL.md 里引用它们。
安装一个 Skill 的过程很简单:把 Skill 目录整个复制到 .claude/skills 下面就行。如果你从社区下载了 Skill 安装包,通常是一个压缩包,解压后把里面的目录放到 skills 目录下即可。放好之后重启 Claude Code,它会自动扫描并加载。
5.3 安装与验证 Skill 的完整操作
我拿一个实际的图片生成 Skill 来演示完整流程。假设你从社区下载了一个名为 image-gen 的 Skill 安装包。
第一步,解压安装包,你会看到一个 image-gen 目录,里面有 SKILL.md、examples 目录、config.json 文件。
第二步,把 image-gen 目录复制到 ~/.claude/skills/ 下面。如果是项目专属的,就复制到项目根目录的 .claude/skills/ 下面。
第三步,检查 SKILL.md 的格式是否正确。重点看开头的 YAML frontmatter 有没有语法错误,比如冒号后面有没有空格、缩进是否一致。格式错误会导致 Skill 加载失败。
第四步,重启 Claude Code,然后在对话里输入一个触发该 Skill 的请求,比如“帮我生成一张产品展示图”。观察 Claude Code 的响应,如果它按照 Skill 里定义的参数来生成,说明加载成功。
第五步,如果没生效,检查几个地方:Skill 目录名和 SKILL.md 里的 name 字段是否一致、触发条件是否匹配你的请求、有没有语法错误。Claude Code 通常会在启动时打印加载日志,看看日志里有没有报错信息。
5.4 多 Skill 共存时的优先级管理
当你装了很多 Skill 之后,可能会遇到优先级冲突的问题。比如两个 Skill 都涉及代码生成,AI 该听谁的?
Claude Code 的处理逻辑是:更具体的 Skill 优先于更通用的 Skill,项目级 Skill 优先于用户级 Skill。所以如果你有一个通用的代码规范 Skill 和一个 React 专属 Skill,处理 React 代码时后者会覆盖前者的相关规则。
基于这个逻辑,我的建议是:通用规范放在用户级 Skill 里,项目专属规范放在项目级 Skill 里,特定技术栈的规范单独建 Skill。这样层次清晰,冲突最少。如果确实需要调整优先级,可以在 SKILL.md 里显式声明依赖关系和覆盖规则。
6. 自己动手写一个 Skill 的完整示范
6.1 从需求到 SKILL.md 的转化思路
写 Skill 的第一步不是打开编辑器,而是想清楚你要解决什么问题。我通常会用一句话描述需求,比如“我希望 AI 生成 React 组件时自动处理 loading、empty、error 三种状态”。
然后把这个需求拆解成可执行的规则。loading 状态怎么处理?显示骨架屏还是转圈?empty 状态显示什么文案?error 状态怎么展示错误信息、有没有重试按钮?这些细节都要想清楚,因为 Skill 写得越具体,AI 执行得越准确。
拆解完之后,按 SKILL.md 的结构组织内容。元信息区写名称、描述、触发条件;主体区写任务目标、执行步骤、输出格式、注意事项;补充区写示例和依赖。组织的时候注意逻辑顺序,让 AI 读起来顺畅。
6.2 一个前端组件 Skill 的完整代码
下面是我实际在用的一个 React 组件 Skill 的核心内容,你可以直接参考这个结构来写自己的。
--- name: react-component description: 生成符合团队规范的 React 函数式组件 trigger: 当任务涉及创建或修改 React 组件时 --- ## 任务目标 生成一个完整的 React 函数式组件,包含类型定义、状态处理、边界情况渲染。 ## 执行步骤 1. 确定组件名称,使用 PascalCase 命名 2. 定义 Props 类型,每个 prop 必须有类型和注释 3. 处理 loading 状态,使用 Skeleton 组件 4. 处理 empty 状态,显示 EmptyState 组件并传入描述文案 5. 处理 error 状态,显示 ErrorState 组件并提供重试回调 6. 渲染正常内容 ## 输出格式 - 使用命名导出,不使用默认导出 - 文件顶部导入顺序:React、第三方库、内部组件、工具函数、类型 - 每个导出组件必须有 JSDoc 注释 ## 注意事项 - 不要使用 any 类型 - 所有回调函数必须用 useCallback 包裹 - 副作用必须放在 useEffect 里并声明依赖 - 组件超过 200 行必须拆分 ## 示例 正例:见 examples/GoodComponent.tsx 反例:见 examples/BadComponent.tsx这个 Skill 写完之后,AI 生成组件时就会自动带上三种状态处理,省去了大量补漏的工作。
6.3 测试与迭代你的 Skill
Skill 写完不是终点,要经过测试和迭代。我的测试方法是准备一组测试用例,覆盖正常情况和各种边界情况,然后让 AI 用这个 Skill 处理这些用例,检查输出是否符合预期。
如果发现某条规则 AI 没有遵守,先别急着改 Skill,先想想是不是规则本身有问题。常见的问题包括:规则太抽象、规则之间有冲突、规则的位置不显眼。对应的改法是:把抽象规则具体化、消除冲突、把重要规则前置。
迭代的时候建议用版本管理,每次修改都提交一次,写清楚改了什么、为什么改。这样如果某次改动导致效果变差,可以快速回滚。我自己的 Skill 仓库里,每个 Skill 都有详细的变更记录,时间长了这份记录就是最好的经验文档。
7. 常见问题与排查技巧实录
7.1 Skill 不生效的排查思路
Skill 不生效是最常见的问题,排查的时候按这个顺序来。
先检查文件位置对不对。Claude Code 的 Skill 必须在 .claude/skills 目录下,Cursor 的规则文件必须在项目根目录或 .cursor/rules 下。位置错了,工具根本扫不到。
再检查文件格式。SKILL.md 的 YAML frontmatter 对格式很敏感,冒号后面必须有空格,缩进必须用空格不能用 Tab,字符串包含特殊字符要加引号。格式错了,解析会失败。
然后检查触发条件。如果你的请求没有匹配到 Skill 的触发条件,它就不会加载。可以临时把触发条件写宽一点测试,确认 Skill 本身没问题之后再收紧。
最后看日志。Claude Code 启动时会打印 Skill 加载日志,Cursor 也有类似的输出。日志里通常会有具体的错误信息,照着改就行。
7.2 Skill 冲突与优先级问题
多个 Skill 同时生效时,可能会出现规则冲突。比如一个 Skill 说函数用箭头函数,另一个说用 function 声明。AI 遇到冲突时可能会随机选一个,导致输出不稳定。
解决办法是明确优先级。在 SKILL.md 里用 priority 字段声明优先级,数字越大优先级越高。或者在描述里写明适用场景,让 AI 根据场景选择。更好的做法是从源头避免冲突,写 Skill 之前先梳理一遍现有 Skill,确保规则不打架。
如果确实需要覆盖,可以在高优先级 Skill 里显式写明“本 Skill 的规则覆盖 xxx Skill 的相关规则”。这样 AI 就知道该听谁的。
7.3 性能与额度消耗优化
Skills 用多了之后,你可能会发现 AI 的响应变慢了,额度消耗也变快了。这是因为每次请求都要加载所有匹配的 Skill,Skill 越多加载越慢。
优化方法有几个。一是精简 Skill 内容,把不常用的规则移到单独的文档里,SKILL.md 只保留核心规则。二是收窄触发条件,让 Skill 只在真正需要的时候加载。三是合并相似 Skill,把多个小 Skill 合并成一个大 Skill,减少加载次数。
额度方面,我的经验是把重活交给 Agent 模式,轻活交给 Tab 补全。Agent 模式消耗大但能处理复杂任务,Tab 补全消耗小适合日常编码。合理分配能省不少额度。
7.4 常见问题速查表
| 问题现象 | 可能原因 | 解决办法 |
|---|---|---|
| Skill 完全不生效 | 文件位置错误 | 检查是否在正确的 skills 目录下 |
| Skill 偶尔生效 | 触发条件太窄 | 放宽触发条件或调整请求措辞 |
| 输出不符合规则 | 规则太抽象 | 把规则具体化,加正例反例 |
| 多个 Skill 冲突 | 优先级不明确 | 声明 priority 字段或合并 Skill |
| 响应变慢 | Skill 太多太大 | 精简内容,收窄触发条件 |
| 额度消耗快 | 过度使用 Agent | 简单任务用 Tab 补全 |
8. 我踩过的坑和几条实操心得
写 Skill 这件事,我前后折腾了大半年,踩过的坑不少,这里挑几个最有代表性的说说。
第一个坑是贪多求全。一开始我恨不得把所有规范都写进一个 Skill,结果 SKILL.md 写了上千行,AI 加载慢不说,还经常抓不住重点。后来我学乖了,一个 Skill 只解决一类问题,规则控制在 20 条以内,效果反而更好。Skill 不是写得越多越好,而是要写得越准越好。
第二个坑是规则太抽象。我写过一条“代码要优雅”,结果 AI 完全不知道该怎么执行。后来改成“函数不超过 50 行、嵌套不超过 3 层、每个函数只做一件事”,AI 立刻就懂了。给 AI 写规则,要像给新人写操作手册一样,具体到可执行、可验证。
第三个坑是忘了版本管理。有次我改了一个 Skill,结果效果变差了,想回滚却发现没记录改了什么。从那以后我给每个 Skill 都建了 Git 仓库,每次修改都提交,写清楚改动原因。这个习惯救过我好几次。
最后分享一个心得:Skill 的价值在于沉淀。你今天想清楚的一条规则,写进 Skill 之后,未来所有项目、所有团队成员都能受益。这比每次口头传达、每次重新解释要高效得多。花在写 Skill 上的时间,会在后续无数次的开发中加倍回报给你。