尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Trellis Bundled Skills 机制解析:内置技能如何在所有 AI 平台自动分发、覆盖与扩展

Trellis Bundled Skills 机制解析:内置技能如何在所有 AI 平台自动分发、覆盖与扩展 桌面应用【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/ayangweb/EcoPaste点击查看免费下载本篇技术指南聚焦 Trellis CLI 中的 Bundled Skills内置捆绑技能机制它定义了多文件内置技能如何随 npm 包发布由trellis init/trellis update自动写入每个支持平台的技能根目录并保持同步。读者在阅读后将掌握 Bundled Skills 的判定边界、跨平台落盘路径、resolveBundledSkills分发改线原理以及新增、本地覆盖、移除技能的全套实操方法。本文以.agents/skills/trellis-meta/references/local-architecture/bundled-skills.md为骨架并结合本仓库.agents/skills/目录中的实际技能实例进行印证。什么是 Bundled SkillsBundled Skills 是指随 Trellis CLI 的 npm 包一起内置发布的多文件技能multi-file built-in skills。与 marketplace skills 不同——后者需要用户手动安装到自己的.claude/skills/或其他平台的技能根目录——Bundled Skills 由trellis init自动写入每个受支持平台的技能根目录并由trellis update持续保持同步。它们是 Trellis 本体的一部分而非第三方内容。一个 bundled skill 本质上是packages/cli/src/templates/common/bundled-skills/skill/下的一个目录目录内已包含自己的SKILL.md带 YAML frontmatter以及可选的references/、assets 或其他辅助文件。Trellis 会将整个目录树原样复制到每个平台的技能根目录因此references/保持按需懒加载lazy-loadable而不会被拍平进一个过大的SKILL.md。这一设计在本仓库中有直接体现.agents/skills/下可见trellis-meta/、trellis-channel/、trellis-session-insight/、trellis-spec-bootstrap/等技能目录每个目录都包含独立的SKILL.md与子目录形式的references/。例如 trellis-meta/SKILL.md 顶部即为标准的 YAML frontmatternamedescription而.agents/skills/trellis-channel/下的references/目录则放置了command-reference.md、forum.md、progress-debugging.md、workers.md、workflows.md等按主题拆分的参考文档。什么算 Bundled与相邻概念的边界为避免混淆官方文档用一张表明确了四类模板文件的归属源路径类型分发方式templates/common/bundled-skills/name/Bundled skill多文件整个目录复制到每个平台技能根目录templates/common/skills/name.md单文件 workflow skill包裹 frontmatter 后写入root/name/SKILL.mdtemplates/common/commands/name.mdSlash command / prompt写入各平台命令目录如.claude/commands/trellis/、.cursor/commands/trellis-*.md、.gemini/commands/trellis/*.toml等templates/platform/skills/平台专属技能只写入对应平台目录如.codex/skills/用户自行放在.claude/skills/my-skill/下的技能Marketplace 或用户自建完全不受 Trellis 管理关键边界规则Trellis CLI 绝不触碰任何不是由其自身模板加载器产出的文件。用户手工丢进平台技能根目录的任何内容都会被原样保留。当前 Bundled Skills 清单v0.6.0技能集合在运行时通过枚举templates/common/bundled-skills/下的目录来发现无需手工维护清单。v0.6.0 共内置四个技能技能用途trellis-meta向工作在用户项目内的 AI 解释本地 Trellis 架构与自定义入口trellis-session-insight封装trellis memCLI让 AI 知道何时、如何检索过去的 Claude Code / Codex / Pi Agent 会话日志trellis-spec-bootstrap平台无关的工作流用于从真实代码库创建或刷新.trellis/spec/可选集成 GitNexus / ABCodertrellis-channel能力型技能教会 AI 何时使用trellis channel进行多智能体协作、论坛/线程持久化看板与 dispatcher-wait 模式本仓库.agents/skills/中恰好完整保留了这四个技能中的三个trellis-meta、trellis-session-insight、trellis-spec-bootstrap、trellis-channel均在列且结构完全符合上文描述例如 trellis-channel/SKILL.md 明确自称索引型技能This skill is an index. Load only the reference file for the current job而 trellis-session-insight/SKILL.md 自述为capability skill, not a workflow——这与文档中能力型技能的定位完全一致。由于清单是运行时发现的新增一个技能的唯一注册步骤就是向bundled-skills/下添加一个新目录详见下文新增 Bundled Skill。Bundled Skills 在各平台的落盘位置每个平台配置器configurator在trellis init期间都会调用writeSkills(root, workflowSkills, resolveBundledSkills(ctx))。其中resolveBundledSkills会读取templates/common/bundled-skills/下所有目录、解析占位符并返回扁平的{relativePath, content}条目列表writeSkills再将它们镜像到平台技能根目录下。各平台的具体落盘根目录如下表平台Bundled skill 根目录配置器Claude Code.claude/skills/skill/configureClaudeCursor.cursor/skills/skill/configureCursorCodex.agents/skills/skill/configureCodex写入共享的.agents/skills/根目录Gemini CLI 0.40 也会读取Gemini CLI.agents/skills/skill/与 Codex 共享同一根目录两个配置器必须产出字节级一致的输出Kiro.kiro/skills/skill/configureKiro纯技能型平台无 commandsQoder.qoder/skills/skill/configureQoderCodebuddy.codebuddy/skills/skill/configureCodebuddyCopilot.github/skills/skill/configureCopilotDroid.factory/skills/skill/configureDroidAntigravity.agent/skills/skill/configureAntigravityDevin.devin/skills/skill/configureDevinKilo.kilocode/skills/skill/configureKiloOpenCode由collectOpenCodeTemplates处理使用同一份resolveBundledSkills(ctx)输出Pi、Reasonix各自的 collector同一份resolveBundledSkills(ctx)输出这一多平台共享一份技能数据的架构在本仓库中同样可被验证.agents/skills/正是 Codex 与 Gemini CLI 共用的共享技能层而 .agents/skills/trellis-meta/references/platform-files/platform-map.md 中列出的平台矩阵如 Codex 与 Gemini 的技能目录均为.agents/skills/、Kiro 为.kiro/skills/等与上表完全吻合。两条路径消费同一份数据configureX(cwd)在trellis init时写入文件。collectPlatformTemplates(platformId)位于configurators/index.ts返回MapfilePath, content供trellis update检测漂移并填充.trellis/.template-hashes.json。两条路径都必须产出字节级一致的输出因此二者都调用resolveBundledSkills(ctx)与collectSkillTemplates(root, …, resolveBundledSkills(ctx))。分发接线核心代码路径自动把 bundled skills 分发给各平台技能根目录的机制集中在两个文件中1.packages/cli/src/templates/common/index.tslistDirectories(bundled-skills)枚举磁盘上的技能目录。listBundledSkillFiles(skillDir)递归遍历每个技能目录为每个文件返回{relativePath, content}。getBundledSkillTemplates()返回缓存的CommonBundledSkill[]。2.packages/cli/src/configurators/shared.tsresolveBundledSkills(ctx)将上述列表拍平为ResolvedSkillFile[]路径形如skill/relativePath并解析占位符。writeSkills(skillsRoot, workflowSkills, bundledSkills)将 workflow skills 与 bundled skill 文件一并写入skillsRoot。collectSkillTemplates(skillsRoot, workflowSkills, bundledSkills)以MapfilePath, content形式返回同样形状的数据供 update / hash 管线使用。每个支持技能的平台配置器都会导入这两个 helper参见claude.ts、cursor.ts、codex.ts、gemini.ts、kiro.ts、qoder.ts、codebuddy.ts、copilot.ts、droid.ts、antigravity.ts、devin.ts、kilo.ts。此外index.ts的PLATFORM_FUNCTIONS注册表在每个collectTemplates闭包内也会调用resolveBundledSkills(ctx)确保trellis update的跟踪保持一致。新增一个 Bundled Skill由于形态与分发接线已经是通用的新增技能只需文件变更加上发布路径验证1. 创建目录树packages/cli/src/templates/common/bundled-skills/my-skill/ SKILL.md # YAML frontmatter body references/ # 可选 topic.md assets/ # 可选任何可作 utf-8 读取的内容2. 编写合法的SKILL.md头部frontmatter 至少必须包含--- name: my-skill description: When the AI should reach for this skill. Triggering phrases go here. ---description是各平台自动触发机制用于匹配的文本因此应描述用户意图型触发条件而非技能内部实现。本仓库中 trellis-meta/SKILL.md 与 trellis-session-insight/SKILL.md 的 frontmatter 均为namedescription两字段结构其中description使用 Use when...、Reach into... 等意图导向措辞正是这一规范的现成范例。3. 在合适处使用占位符Bundled skill 内容会经过resolvePlaceholders(file.content, ctx)处理。任何受resolvePlaceholders支持的 token如{{platform_name}}、{{python_cmd}}等都会按平台完成替换。4. 无需分发接线listDirectories(bundled-skills)会自动发现新目录因此下一次trellis init或trellis update时所有平台都会收到该技能。5. 发布前验证分发路径跳过以下任何一步历史上都曾导致技能已被文档化为 bundled但发布的 npm tarball 中缺失对应文件的发布事故源文件存在于被打 tag 的分支上。pnpm --filter mindfoldhq/trellis build将资源复制到dist/templates/common/bundled-skills/skill/。npm pack --dry-run --json包含预期的dist/**路径。在一个全新临时项目中trellis init能写出.claude/skills/skill/SKILL.md、.agents/skills/skill/SKILL.md等。.trellis/.template-hashes.json中列出了生成的文件。该临时项目中trellis update --dry-run报告 Already up to date!。6. 添加迁移 manifest 条目如果技能是在其他项目会升级进去的某个 release 中加入的应添加 manifest 条目。没有显式 manifest 条目时文件仍会经由trellis update的missing file分支落盘但 manifest 能让该变更出现在 changelog 中。本地覆盖 Bundled SkillTrellis 没有正式的project-local skill机制如.trellis/skills/。Bundled skills 是平台根目录级的因此任何覆盖也是平台根目录级的。受支持的模式依赖trellis update已有的 template-hash 比对直接编辑本地文件例如.claude/skills/trellis-meta/SKILL.md。该文件的 hash 与.trellis/.template-hashes.json中的条目产生分歧。下一次trellis update检测到用户修改会保持文件原样不动未显式传入--force时 Trellis 绝不覆盖用户修改过的文件。注意事项覆盖只对你编辑过的那一个平台生效。若要在例如 Claude Code 和 Codex 上覆盖同一技能必须同时编辑.claude/skills/name/与.agents/skills/name/。未来的trellis update --force会覆盖本地编辑。建议将覆盖内容纳入版本控制以便必要时重新应用。在相同平台技能根目录下、以不同目录名安装的 marketplace 技能如.claude/skills/my-custom-meta/不受 Trellis 管理当目标是新增行为而非改动 bundled 技能时这是更干净的选择。团队私有约定应放在.trellis/spec/或独立的 marketplace 风格本地技能中而不是修改trellis-meta本身参见 add-project-local-conventions.md。从项目中移除 Bundled SkillBundled skills 没有逐项目关闭开关。两个可行方案删除每个平台技能根目录中的对应目录。trellis update会看到文件缺失与.template-hashes.json比对后将删除视为与任何用户修改相同的处理——除非传入--force否则不会静默重建该目录。固定到一个未携带该技能的 Trellis 版本。Bundled skill 集合在构建时确定因此安装旧版 CLI 是永久排除当前版本所携带技能的唯一方式。第三种方案——全局禁用所有 bundled skills——不受支持。分发在所有配置器中都是无条件的添加这样的开关需要改动configurators/index.ts中的PLATFORM_FUNCTIONS以及每个configureX函数。操作规则将templates/common/bundled-skills/视为 bundled skills 存在与否的唯一事实来源不要手工维护逐平台的技能清单。不要在 bundled 的SKILL.md中加入平台专属逻辑若某行为是平台专属的应放入templates/platform/skills/。不要让 bundled skill 耦合特定 CLI 二进制如trellis mem而不在技能的 description 与 references 中显式声明该依赖——旧版本的用户可能没有该命令。不要在 bundled skill 中存放项目私有内容。Bundled skills 是公开的、分发给所有用户的项目规则应放入.trellis/spec/或本地技能。结语Bundled Skills 机制把技能即模板目录这一简单抽象扩展为一套覆盖十余个 AI 平台的自动分发管线目录发现、占位符解析、字节级一致的 init/update 双路径、template-hash 漂移检测、以及可预测的覆盖与移除语义。对使用 Trellis 的项目而言理解这套机制意味着——新增技能只需添加一个目录、覆盖技能只需编辑平台本地文件并接受 hash 分歧、移除技能只需删除目录或固定版本而对维护者而言发布前那六步分发验证是避免文档宣称已内置但 tarball 缺文件事故的最后一道防线。赞分享桌面应用【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/ayangweb/EcoPaste点击查看免费下载相关推荐Streamlink的134个内置插件解析它如何覆盖从Twitch到YouTube的所有直播平台Streamlink的134个内置插件解析它如何覆盖从Twitch到YouTube的所有直播平台 Streamlink 是一款开源的命令行直播工具它能把各大音视频Grafana仪表板深度解析Kubernetes监控的高级功能与最新特性Grafana仪表板深度解析Kubernetes监控的高级功能与最新特性 Kubernetes监控是现代云原生运维的核心而grafana dashboardWVP-PRODocker 一键部署把多品牌摄像机接进 GB28181 国标视频平台WVP PRODocker 一键部署把多品牌摄像机接进 GB28181 国标视频平台 园区机房里海康、大华、宇视的摄像机各接各的私有平台看一个点位要开三个后端音视频前端上一篇DeepLearnToolbox终极指南MATLAB深度学习工具箱完整教程下一篇惠普暗影精灵笔记本终极性能管理指南OmenSuperHub免费开源方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表