agent-skills
~/Dev/agent-skills 存放了我在所有项目中使用的每个技能:包括我自己开发的以及上游的那些我在此基础上构建的技能。agent-skills link 命令会向 ~/.claude/skills(Claude Code)和 ~/.agents/skills(Codex)填充指向该仓库的符号链接,因此通过任一文件夹编辑技能时,实际上就是在仓库中编辑。
技能的归属位置
- 项目技能(仓库自身的
.agents/skills/目录,例如verify-*):保留在该项目中。本文档其余部分是关于此仓库中的技能。 - 我的技能:位于
skills/<name>/下。 - 上游技能:位于
vendor/<upstream>/下,通过agent-skills update从 pstack、Matt Pocock 的技能以及 good-css 拉取。upstreams.ts文件中指定了哪些上游技能会被链接。 - 代理文件夹中任何不是指向此仓库的符号链接(如
blabla-*、Claude 的synced/、Codex 的.system/)归属于安装它的工具,该工具也会负责更新。
运行 realpath ~/.agents/skills/<name> 可以告诉你某个技能属于哪个来源。
创建
在 ~/Dev/agent-skills/skills/<name>/SKILL.md 路径下创建技能;该路径优先级高于 skill-creator 和 /automate-me 中的默认值。然后运行 agent-skills link。如果报告冲突,请另选名称。
编辑
根据变更类型选择路由:
- 偏好性修改(我个人的风格、默认值、工作习惯)应放入我自己的技能中:扩展现有
skills/下的技能,或创建一个新的。我的文件永远不会与上游更新冲突。 - 修复 上游技能的错误或不适合我的地方:直接编辑
vendor/下的文件。提交到上游的编辑会在agent-skills update后保留,但若上游同时修改了同一行代码,每个编辑都可能产生冲突,因此请保持修改量小。编辑 pstack 后,运行node ~/Dev/agent-skills/vendor/pstack/scripts/check-t3-native.mjs <name>直到其退出码为 0。
移除
删除 skills/<name>/ 目录以移除我自己的某个技能。对于上游技能,请先询问我:移除意味着需要修改 upstreams.ts。
完成
当 agent-skills link 执行成功,并且每个变更在 ~/Dev/agent-skills 仓库中都有独立的提交,且已推送:
- 仅暂存你修改过的文件(
git add <paths>);其他代理可能正在仓库中有未完成的工作。 - 编写提交信息说明技能变更的原因。
- 提交后立即推送。
编写规范
- 该仓库是公开的,因此每个技能都应作为公开文本编写:使用通用示例,避免包含我项目中的名称、路径和密钥。
- 引用其他技能时使用其完整路径
~/.agents/skills/<name>/SKILL.md。相对路径../<name>在此仓库中会失效,因为我的技能和每个上游技能位于不同的文件夹中。 - 关于编写本身,请遵循
~/.agents/skills/writing-for-agents/SKILL.md的指导。
运行不带参数的 agent-skills 命令可查看其可用命令列表。