ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Skills 仓库组织与治理规范:从 bucket 分类到 Claude Code 插件的完整指南

Skills 仓库组织与治理规范:从 bucket 分类到 Claude Code 插件的完整指南 Skills 仓库组织与治理规范从 bucket 分类到 Claude Code 插件的完整指南【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills本指南基于当前仓库 AGENTS.md即CLAUDE.md的符号链接展开系统讲解 skills 仓库的目录组织、提升promoted与非提升桶的边界、Claude Code 插件清单与本地链接脚本、docs 文档同步、模型触发与用户触发invocation机制以及仓库文体规范。读完你将掌握如何在此类 Agent Skills 仓库中新增、重命名、删除一个技能而不破坏路由、插件与文档的一致性。一、仓库总体结构bucket 分类体系AGENTS.md明确规定了 skills 的组织方式所有技能按bucket 文件夹归类到skills/下共五类Bucket 文件夹含义是否提升promotedengineering/日常编码工作TDD、code review、debugging 等是productivity/日常非编码工作流工具grilling、handoff、teach 等是misc/保留但极少使用、不做推广否in-progress/Beta公开、欢迎反馈、暂不随插件发布否deprecated/不再使用否从当前仓库实际布局可以看到这套体系的具体形态skills/engineering/ 下有 18 个技能目录覆盖ask-matt、tdd、code-review、to-spec、to-tickets、domain-modeling、diagnosing-bugs等skills/productivity/ 下有 7 个技能目录覆盖grilling、grill-me、handoff、teach、wait-what等skills/misc/、skills/in-progress/、skills/deprecated/ 则是非提升桶其中deprecated/仅含一个 README.md 占位。提升promoted是这套体系的关键词只有engineering/与productivity/两个桶的技能会被打包进插件对外发布其余桶的技能严格不进入发布清单。这为后续的 README、插件清单、docs 页面等所有一致性规则划定了边界。二、提升桶的一致性约束README 与插件清单AGENTS.md对提升桶的技能提出两条硬性要求顶层README.md必须有引用每个提升桶技能都要出现在 README.md 中且技能名必须链接到其 SKILL.md.claude-plugin/plugin.json的skills数组必须有条目Claude Code 插件恰好只发布提升桶集合。而misc/、in-progress/、deprecated/中的技能不得出现在 README 或插件清单的任何一处。这条规则在 .claude-plugin/plugin.json 中有直接体现skills数组逐条列出了 25 个技能目录路径全部指向./skills/engineering/...与./skills/productivity/...一个非提升桶技能都没有混入。从仓库结构可以推断这条约束同时充当了插件内容的门禁只有被显式列入数组的技能才会随插件安装。2.1 桶级 README 的分组规则每个 bucket 文件夹下都有一个 README.md用一行描述列出桶内全部技能技能名链接到各自的SKILL.md。分组方式因桶而异提升桶的 README 与顶层 README条目按User-invoked用户触发与Model-invoked模型触发分组非提升桶的 READMEmisc/、in-progress/使用扁平列表不做分组。2.2 验证命令AGENTS.md明确要求每次改动上述两个 manifestREADME.md与plugin.json之后运行claude plugin validate . --strict这是仓库自带的插件一致性校验命令保证插件清单合法、路径可解析、严格模式下无告警。三、为什么是 Claude Code 插件而非 Codex 插件AGENTS.md将为什么做了 Claude 插件而暂时没有 Codex 插件的决策指向 .agents/adr/0002-ship-as-a-claude-code-plugin.md。该 ADR 的结论可以概括为选择由各生态插件清单的选取机制与仓库的 bucket 布局共同决定。核心约束在 ADR 中有明确的技术依据Claude Codeplugin.json的skills字段接受显式技能目录路径数组可以逐条列出提升技能、零歧义地排除其余技能并配合marketplace.json让仓库成为自己的单插件市场。ADR 记录该路径已端到端验证claude plugin validate . --strict通过marketplace add后install可解析全部提升技能Codexplugin.json的skills只接受单个路径字符串数组会被拒绝并报missing or invalid plugin.json且 Codex 会递归发现该路径下的SKILL.md。因此从一条路径既无法同时命名两个 bucket 文件夹也无法精选子集。ADR 记录了两种被测试并否决的逃生方案指向./skills/会把deprecated/、in-progress/、misc/一并发出而用符号链接拼一个精选扁平目录在安装时会被 Codex 丢弃符号链接、技能目录变成空壳。2026-08-05 的 ADR 更新记录了一个重要转折mattpocock-skills已被Claude Code 官方市场配置名claude-plugins-official源仓库anthropics/claude-plugins-official收录每个 Claude Code 安装默认自带该市场因此claude plugins install mattpocock-skills成为文档化安装路径官方列表直接读取仓库的plugin.json不再依赖marketplace.json后者仅作为直接从仓库安装未发布提交或 fork的备用通道保留。四、安装命令的唯一事实来源install-blockAGENTS.md规定安装命令从 .agents/install-block.md 逐字复制。该文件自述为canonical install block——一个安装故事、一套措辞README.md、.changeset/*以及docs/下所有页面必须只说这一套。要修改时先改这里再向各处传播。安装块的核心内容两条互斥路线文档明确要求只选一条因为两者都装会留下每个技能的两份副本目标环境命令特性Claude Code插件claude plugins install mattpocock-skills或会话内/plugin install mattpocock-skills托管、只读、自动更新官方市场无需先 addCodex 及其他 Agentnpx skillslatest add mattpocock/skills复制可编辑技能文件到项目可选择技能与目标 agent单个技能skills.shnpx skillslatest add mattpocock/skills --skillname与npx skillslatest update name按名安装/更新单个技能skillslatest是三处统一钉死的拼写。install-block 还特别提醒用 skills.sh 安装时务必勾选setup-matt-pocock-skills它是后续triage/to-spec/to-tickets等技能的前提配置。另外docs/页面不是安装块的消费者发布站点会在正文上方自行渲染安装组件页面若再手写一遍命令就形成重复且易失同步的副本详见 .agents/writing-docs.md 的页面不携带安装命令约定。五、docs 页面文档树与四段式模板engineering/与productivity/的每个技能还配有人类可读的文档页位于docs/bucket/skill-name.md——docs 树正好镜像这两个提升桶在skills/下的结构本仓库的实际布局见 docs/engineering/ 与 docs/productivity/。发布 URL 一律是https://aihero.dev/skills-skill-name与桶无关docs 路径只是仓库内部的组织方式。非提升桶misc/、in-progress/、deprecated/的技能不设docs 页。AGENTS.md的关键要求当你在engineering/或productivity/中新增、重命名或改变技能行为时必须按 .agents/writing-docs.md 创建或重新同步其 docs 页。一份成稿的页面固定携带四个章节What it does一两段平实语言先说技能的一句话职责再陈述定义性约束defining constraint——让它区别于常规默认行为的那个事实When to reach for it何时以何种方式调用含触发模式用户输入/name还是模型自动触发与触发边界当……时使用Common questions读者真正会问的问题每条加粗问题后附答案不设子标题。来源以真实问题为优先个人 wiki、仓库 issues、CHANGELOG不靠编造凑数Its working if若干条技能生效时你能看到什么的可核查信号标准是读者无需打开SKILL.md即可自查。模板还规定四个章节外加一个始终存在的Where it fits用一两句话把技能定位到系统中链步骤、一次性设置、周期维护或随时可用的独立技能并指向ask-matt这张全局路由图。写作约定还包括解释 why 而非流程、不出现作者署名、使用技能的关键词、分支用表格或列表而非段落、页面零安装命令。六、触发机制用户触发 vs 模型触发AGENTS.md指出每个SKILL.md要么是用户触发仅人类可调用要么是模型触发模型或用户均可调用具体机制详见 .agents/invocation.md。两类技能在配置上的差别非常具体维度用户触发user-invoked模型触发model-invokedSKILL.md frontmatterdisable-model-invocation: true省略该字段agents/openai.yamlpolicy.allow_implicit_invocation: false省略policy块description 的受众人类一行摘要供浏览斜杠命令的人阅读去掉触发列表模型保留丰富的触发措辞当用户想要……、提到……、要求……供自动调用命中可被谁调用仅人类模型或用户每个技能目录下都有一份 agents/openai.yaml承载 Codex UI 元数据interface.display_name、interface.short_description以及用户触发技能所需的policy.allow_implicit_invocation: false。仓库要求两个 harness 中的触发属性保持同步一个技能要么在两个 harness 中都是用户触发要么都不是。invocation.md 还给出了一条硬性不变式用户触发的技能只能由人类触发没有任何其他技能包括模型能调用它它本身可以调用模型触发技能但永远无法触达另一个用户触发技能。相应地桶 README 与顶层 README 中 User-invoked / Model-invoked 的分组正是这一机制的对外索引。6.1 技能间依赖的约定技能之间的操作级依赖一个技能在自己的步骤里让 agent 去运行另一个技能有明确写法显式指示调用 Skill 工具并给出技能名如Call the Skill tool with grilling而不是深层../other-skill/FILE.md交叉引用也不是让模型自行猜测的裸/skill提及。一条步骤需要两个技能时是两次调用且要明说。此约定仅对模型触发技能成立若前置条件是用户触发技能如setup-matt-pocock-skills则改写为对人类下达的指示告诉用户运行/setup-matt-pocock-skills。七、ask-matt覆盖全技能的请求路由器AGENTS.md特别点名 skills/engineering/ask-matt/SKILL.md它是路由器负责映射每个用户可触达技能及其相互关系。从该技能文档可以看到其核心叙事主流程 idea → ship/grill-with-docs通过访谈打磨想法保留CONTEXT.md与 ADR 纸面记录→ 按需经/handoff桥接/prototype→ 多会话构建走/to-spec→/to-tickets→ 逐 ticket 运行/implement内部由/tdd驱动提交前跑/code-review上下文卫生步骤 1–3 保持在同一未压缩的上下文窗口内受smart zone约 15 万 token限制接近上限时在相位边界/compact上匝道on-ramps如triage仅处理非自己创建的原始 issue/to-tickets产出的 ticket 无需 triage。AGENTS.md对维护者的要求是无论何时新增、重命名、移除或改变某个用户可触达技能在流程中的角色都要重读并更新ask-matt的 SKILL.md——新技能它从未提及、旧技能它仍在路由都是路由器在撒谎。这条规则与 docs 页的再同步触发条件一致构成全仓库唯一的信息中枢维护义务。八、本地开发链接scripts/link-skills.shAGENTS.md说明了本地开发的核心脚本 scripts/link-skills.sh 的用途将每个技能重新链接到本地 harness 技能目录~/.claude/skills与~/.agents/skills。脚本行为可以从源码直接确认通过find $REPO/skills -name SKILL.md收集仓库内所有技能目录排除node_modules与deprecated/对两个目标目录分别执行ln -sfn $src $target建立指向仓库内技能目录的符号链接每个条目都是指向本仓库的符号链接因此git pull即可让已安装技能保持最新新增、删除或重命名技能后需重跑脚本脚本带防呆检测若目标目录本身是指向本仓库的符号链接会报错退出避免把符号链接写回仓库自身的skills/树造成污染。注意脚本头部的显式声明这是仅限维护者使用的开发脚本不是受支持的安装器对它的修改请求不会被接受。真正的安装通道是上一节的插件与 skills.sh 两条路线。九、文体规范全仓库禁用 em-dashAGENTS.md最后一条规范看似不起眼却覆盖全仓库repo 内的所有散文SKILL.md、docs、README.md、CHANGELOG.md、ADR、changesets、代码注释一律不使用 em-dash—。当句子需要它时改用逗号、冒号、句号、括号或连词取决于句子真正想要什么并且绝不能做盲目的字符替换。这是一条可被搜索与 lint 检查的硬性约束本仓库的 CLAUDE.md、README.md 与本文所引用的全部文档install-block、invocation、writing-docs、ADR均严格遵守通篇无一处 em-dash。若你的 Agent 技能仓库采用同样的多文档共享治理模式这条规范同样值得复制。十、维护清单新增 / 重命名 / 删除一个技能综合AGENTS.md的全部规则可以得到一份可直接执行的技能生命周期维护清单动作必须同步的对象触发条件新增/重命名/变更行为提升桶docs/bucket/skill-name.md按 writing-docs 创建或重同步重命名要移动 docs 文件发布 URL 跟随名称变更发生时同上更新ask-matt的 SKILL.md让路由图保持准确用户可触达技能改变时任何技能增删改名重跑 scripts/link-skills.sh 重建本地符号链接每次变更后触碰 README 或 plugin.json运行claude plugin validate . --strict每次改动后变更安装措辞先改 .agents/install-block.md再向 README、changesets、docs 传播安装块变更时版本发布.claude-plugin/plugin.json的version与 package.json 的 version 同步递增官方市场依赖该版本判定更新推送每次发版这套治理体系的整体设计意图从 README.md 的表述中也能得到印证技能被刻意设计为小而易于改编、可组合的单元覆盖 GSD、BMAD、Spec-Kit 等方案所不具备的把控制权交还工程师的灵活性而AGENTS.md正是保障这套体系在持续演进中不散架、不撒谎、不自相矛盾的治理骨架——从目录分类、插件门禁、单一事实来源的安装块到文档同步、触发机制、路由中枢与文体规范每一条规则都服务于同一个目标让技能仓库既能随git pull持续进化又能让维护者在不破坏任何现有安装的前提下安全地增删改。【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表