用多个 AI 工具写代码的人,一定遇到过这个问题:
同一个 skill,在 Codex 里有一份,Claude Code 里又存了一份,Cursor 里可能还有一份。刚开始只是多几个文件夹,看起来没什么。
真正烦的是后面:改了一次 skill,忘了同步到另一个工具。结果同一个任务,在 Codex 里是一个表现,在 Claude Code 里又是另一个表现,排查半天才找出原因。
这不是技术问题,是管理问题。
这篇文章基于 @jinchenma_ai 的核心方法,结合开源社区的实践方案,整理出一份从个人到团队的 Skills 统一管理方案。
一、问题的本质:Skills 为什么会越用越散
2026 年的 AI 编码工具生态已经非常繁荣:Claude Code、OpenAI Codex、Cursor、GitHub Copilot、Hermes Agent,每个工具都有自己的 skills/rules 目录:
.claude/skills/ 和 CLAUDE.md.codex/prompts/.cursor/rules/AGENTS.mdskills/它们本质上都在回答同一个问题:这个项目里,AI 应该怎么干活。
但每个工具各读各的,skills 就会越来越分散。改了一处忘了同步另外几处,出问题时排查半天才发现是版本不一致。
现在最麻烦的不是不会写 skills,而是 skills 越用越散。
二、核心方案:只维护一份源文件
解决思路其实很简单——唯一源原则(Single Source of Truth)。
把所有 skills 放进一个统一文件夹,甚至单独放进一个 Git 仓库,然后让所有工具都去读这一份。
这里用到的关键技术叫软链接(symlink)。它不是一个文件复制品,而是一个指向源文件的入口。改源文件,所有入口看到的都会自动更新。
推荐的目录结构大致是这样:
class="language-text">~/ai-workspace/ shared-skills/ article-writing/ SKILL.md note-capture/ SKILL.md ppt-generator/ SKILL.md my-project/ .agents/ skills -> ../../shared-skills .claude/ skills -> ../../shared-skills .codex/ prompts -> ../../shared-skillsshared-skills 是唯一存放源文件的地方。各个工具目录下的 skills 只是指向它的入口。你改 shared-skills 里的内容,所有工具通过各自入口读到的,自然就是最新版本。
这就像你在手机上改了通讯录,手表和平板上看到的自动同步,而不是每个设备单独存一份。
三、项目规则文件也要一起管
Skills 之外,项目规则文件也有同样的问题。
有些工具读 AGENTS.md,有些读 CLAUDE.md。如果这些文件内容本质一样,没必要维护多份:
class="language-text">AGENTS.md "color:#6a9955"># 主文件CLAUDE.md -> AGENTS.md "color:#6a9955"># 软链接指向主文件只写一次,所有 AI 工具都读到同一份规范。这样能减少"我明明改了规则,但另一个工具没生效"这种问题。
四、让 AI 帮你自动整理
你不用自己判断哪些目录该合并、哪些路径该软链。开源社区已经有成熟的 Skill Manager 工具,可以直接把提示词丢给 AI,让它先盘点本地结构,再给出迁移方案。
以下是整理 skills 的提示词:
请帮我整理当前电脑上的 AI 工具 skills 管理方式。目标:1. 找出当前项目里 .agents/skills、.claude/skills 或其他可能存放 AI 工具规则和 skills 的目录2. 判断哪些是真正需要维护的源文件,哪些只是复制出来的副本3. 帮我设计一个统一的 shared-skills 目录,用来集中维护 skills4. 给出软链接方案,让 Codex、Claude Code、Cursor 尽量读取同一份说明5. 输出前先列出你准备执行的命令,并解释每条命令是干什么的6. 不要直接删除、覆盖或移动任何文件,必须等我确认7. 所有涉及真实用户名、私人目录、仓库名的路径,用脱敏路径表示请按下面格式输出:- 你发现了哪些 skills 或规则目录- 哪个位置更适合作为唯一源目录- 哪些位置适合改成软链接- 每一步会影响什么- 需要我确认后再执行的命令- 如果做错了,怎么退回去AI 会先列出它发现了什么、建议怎么做、每一步影响什么,等你确认了再动手。
五、项目规则文件整理的提示词
请帮我检查当前项目里的 AI 工具规则文件。目标:1. 找出项目根目录下是否存在 AGENTS.md、CLAUDE.md 或其他 AI 工具规则文件2. 判断这些文件是否内容重复、职责重叠,或者只有少量差异3. 如果可以共用一份内容,建议保留哪个作为主文件,其他改成软链接4. 如果某个工具确实需要保留单独规则,说明差异应该放在哪里5. 输出建议命令,并解释每条命令的作用6. 不要直接覆盖、删除或改名现有文件,必须先让我确认请按下面格式输出:- 当前发现的规则文件- 每个文件大概负责什么- 是否适合合并- 建议保留的主文件- 建议改成软链接的文件- 执行前需要备份的文件- 建议执行的命令和作用说明六、开源社区的最佳实践
在 GitHub 上,已经有多个项目实现了跨工具 skills 统一管理:
skill-manager(omrikais/skill-manager):一个统一的 skills 管理器,同时支持 Claude Code 和 Codex CLI。它保持一份规范的 skills 副本,然后自动创建软链接到每个工具需要的目录。编辑一次,所有地方同步更新。
sync-claude-skills-to-codex(ariccb):专门用于将 Claude Code 的 skills 同步到 Codex CLI,通过软链接实现零拷贝。
AGENTS.md 跨工具管理方案:AGENTS.md 是由 Linux Foundation/AAIF 管理的开放标准,支持 GitHub Copilot、Claude Code、Codex、Cursor 等工具从同一个文件读取规则。社区已经有完整的跨工具统一管理指南,包括软链接策略和 monorepo 支持。
七、自动化部署脚本
Dev.to 社区分享了一个 setup.sh 脚本方案,能自动检测安装了哪些 AI 编码工具(Claude Code、Codex、Cursor),然后从共享仓库创建软链接到每个工具的 skills 目录。脚本通过检查 CLI 二进制文件或配置目录来自动发现已安装的平台,如果某个工具未安装就跳过,不需要手动配置。
对于有多个项目的开发者,可以把 shared-skills 做成独立的 Git 仓库,然后在每个项目里用 setup 脚本一键初始化软链接。新增一个 skill 只需要在 shared-skills 仓库里加一个文件夹,push 之后所有项目都能用到。
八、什么时候适合这样做
适合的场景: - 同时使用 Codex、Claude Code 等多个 AI 编码工具 - 多个工具都需要复用同一批 skills 或项目规则 - 经常修改 skills,不想手动复制 - 想把 skills 放进独立 Git 仓库管理 - 多个项目需要复用同一套工作流 - 团队协作,需要统一的 AI 行为规范
不适合的场景: - 某个项目需要完全独立的一套 skills - 团队成员不熟悉软链接,容易误删源目录 - Windows 环境里没有配置好软链接相关权限 - 某个工具官方文档明确说不支持软链接
如果不确定自己的情况适不适合,不要自己动手删文件。把上面的提示词丢给 AI,让它先列方案,再确认。
九、几个关键提醒
软链接指向的是路径,不是复制文件。移动源目录后,软链接会失效。
团队协作时,尽量用相对路径(如 ../../shared-skills),少用本机绝对路径。
如果 skills 仓库单独管理,记得把真正的源仓库提交到 Git,不要只提交项目里的软链接。
不同工具之间确实存在细微差异——比如 Codex 的 prompts 格式和 Claude Code 的 skills 格式不完全兼容。遇到这种情况,可以在 shared-skills 里保留一份基础版本,然后用工具特定的 wrapper 文件做适配,而不是完全独立维护。
十、写在最后
Skills 统一管理的核心价值不在于省了多少磁盘空间,而在于消除了一个隐性成本:版本不一致带来的调试时间和认知负担。
当你只维护一份源文件,改一次 prompt 逻辑,所有工具自动同步。当你接手一个新项目,一键初始化就能拿到全部工作流。当你团队协作时,所有人读到的是同一份规范。
这不是一篇技术教程,而是一次工作方式的升级。
夜雨聆风