EcoPaste 项目内 Trellis Bundled Skills 机制全解析:自动分发、定制覆盖与新增技能实践
桌面应用开发工具【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/gh_mirrors/ec/EcoPaste点击查看免费下载bundled-skills.md是 Trellis CLI 中trellis-meta技能包的本地架构参考文档它系统讲解了捆绑技能Bundled Skills这一内置多文件技能的分发模型。本文以该文档为主体骨架结合 EcoPaste 仓库内由trellis init生成的真实产物如.kiro/skills/trellis-meta/、.agents/skills/、.trellis/.template-hashes.json进行交叉印证完整覆盖捆绑技能的定义边界、平台落地路径、自动分发代码链、新增技能的六个实操步骤、本地覆盖与移除策略帮助读者在任意已初始化 Trellis 的项目中理解并驾驭这套技能分发体系。什么是 Bundled Skills捆绑技能Bundled Skills是随 Trellis CLI npm 包一同分发的多文件内置技能。与市场技能Marketplace Skills不同——后者由用户自行安装到各自的.claude/skills/或其他平台技能根目录——捆绑技能会在trellis init时被自动写入每个受支持平台的技能根目录并在trellis update时持续保持同步。它们是 Trellis 自身的组成部分而非第三方内容。一个捆绑技能本质上就是packages/cli/src/templates/common/bundled-skills/skill/下的一个目录目录内已包含自己的SKILL.md带 YAML frontmatter以及可选的references/、assets 或其他辅助文件。Trellis 将整个目录树原样复制到各平台的技能根目录因此references/下的文档得以保持按需懒加载lazy-loadable的结构而不会被压平成一个超大的SKILL.md。在 EcoPaste 仓库中可以直接观察到这一机制的落地结果.kiro/skills/trellis-meta/、.claude/skills/trellis-meta/、.cursor/skills/trellis-meta/、.github/skills/trellis-meta/、.opencode/skills/trellis-meta/等目录均存在且内部结构完全一致——references/customize-local/、references/local-architecture/、references/platform-files/与SKILL.md一一对应印证了整目录树原样复制的文档描述。什么算 Bundled与相邻概念的边界文档用一张对比表清晰划定了捆绑技能与其他类型模板的边界源路径类型分发方式templates/common/bundled-skills/name/捆绑技能多文件整个目录复制到每个平台技能根目录templates/common/skills/name.md单文件工作流技能包装上 frontmatter 后写入root/name/SKILL.mdtemplates/common/commands/name.md斜杠命令 / 提示词写入各平台命令目录.claude/commands/trellis/、.cursor/commands/trellis-*.md、.gemini/commands/trellis/*.toml等templates/platform/skills/平台专属技能仅写入对应平台目录如.codex/skills/用户.claude/skills/my-skill/等目录下的技能市场 / 用户自创Trellis 完全不管理这一边界在 EcoPaste 仓库中同样有迹可循.kiro/commands/trellis/并不存在Kiro 是无命令的技能型平台而.claude/commands/trellis/continue.md、.opencode/commands/trellis/continue.md则对应斜杠命令一类.claude/agents/trellis-*.md、.kiro/agents/trellis-*.json属于平台专属的 agent 文件。Trellis CLI 从不触碰任何非其自有模板加载器产出的文件——用户手工放入平台技能根目录的内容会被原样保留。当前捆绑技能清单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 / ABCoder。trellis-channel能力型技能教 AI 何时使用trellis channel进行多智能体协作、论坛/线程持久看板与 dispatcher-wait 模式。这四个技能在当前仓库中均以完整形态存在可以直接查阅其SKILL.md验证文档描述例如 trellis-meta 的 SKILL.md 声明了本地架构三层模型workflow / persistence / platform与四类定制入口trellis-session-insight 的 SKILL.md 给出了trellis mem search / extract / context / list / projects的 80% 常用调用范式trellis-channel 的 SKILL.md 则提供了按用户意图路由到references/workflows.md、workers.md、forum.md、progress-debugging.md、command-reference.md的检索索引。由于技能列表是运行时发现的向bundled-skills/新增一个目录就是注册新技能的唯一前置步骤详见下文添加新捆绑技能一节。各平台技能落地点一览每个平台配置器在trellis init期间都会调用writeSkills(root, workflowSkills, resolveBundledSkills(ctx))。其中resolveBundledSkills会读取templates/common/bundled-skills/下每个目录、解析占位符并返回扁平的{relativePath, content}条目列表writeSkills随后将其镜像写入平台的技能根目录。平台捆绑技能根目录对应配置器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纯技能型平台无命令Qoder.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)输出EcoPaste 仓库恰好完整保留了这份多平台镜像的实证find搜索结果中.agents/skills/trellis-meta/、.claude/skills/trellis-meta/、.cursor/skills/trellis-meta/、.github/skills/trellis-meta/、.kiro/skills/trellis-meta/、.opencode/skills/trellis-meta/六份同名技能树并存且它们的references/local-architecture/bundled-skills.md内容哈希完全一致bac739b0…见.trellis/.template-hashes.json这正是所有配置器共享同一份resolveBundledSkills(ctx)数据源、产出字节级一致结果的工程证明。两条路径消费同一份数据configureX(cwd)在trellis init时写入文件。collectPlatformTemplates(platformId)位于configurators/index.ts返回MapfilePath, content供trellis update检测漂移并填充.trellis/.template-hashes.json。两条路径必须产出字节级一致的结果因此它们都调用resolveBundledSkills(ctx)与collectSkillTemplates(root, …, resolveBundledSkills(ctx))。分发布线核心代码路径将捆绑技能自动分发到各平台技能根目录的机制分布在两个上游源码文件中当前仓库只包含其产物以下路径为文档所述的上游结构packages/cli/src/templates/common/index.tslistDirectories(bundled-skills)枚举磁盘上的技能目录。listBundledSkillFiles(skillDir)递归遍历每个技能目录为每个文件返回{relativePath, content}。getBundledSkillTemplates()返回缓存的CommonBundledSkill[]。packages/cli/src/configurators/shared.tsresolveBundledSkills(ctx)将该列表扁平化为ResolvedSkillFile[]路径形如skill/relativePath并解析占位符。writeSkills(skillsRoot, workflowSkills, bundledSkills)将工作流技能与捆绑技能文件一起写入skillsRoot。collectSkillTemplates(skillsRoot, workflowSkills, bundledSkills)以MapfilePath, content形式返回同样内容供 update / 哈希管线使用。每个支持技能的平台配置器都会导入这两个助手文档列出的上游文件包括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的追踪一致。从仓库产物侧印证这条链路.trellis/.template-hashes.json记录了每个平台技能目录中每个文件的 SHA-256 哈希如.claude/skills/trellis-meta/SKILL.md与.kiro/skills/trellis-meta/SKILL.md均为a190ecbde70a…这组数据正是由collectSkillTemplates生成并被trellis update消费的。同一技能在不同平台的哈希值一致说明分发管线对多平台输出做到了内容级统一。新增一个捆绑技能完整实操步骤分发机制与布线逻辑已经足够通用因此新增技能只需文件变更加分发验证。以下六个步骤逐一对应文档原始操作指引1. 创建目录树。在上游源码中建立如下结构packages/cli/src/templates/common/bundled-skills/my-skill/ SKILL.md # YAML frontmatter 正文 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-channel 的 SKILL.md 头部其description写的就是Use Trellis channel for live multi-agent collaboration, spawned workers, …这类触发语义。3. 恰当使用占位符。捆绑技能内容会经过resolvePlaceholders(file.content, ctx)处理。任何受resolvePlaceholders支持的{{platform_name}}、{{python_cmd}}等 token 都会按平台替换。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. 若技能在一个其他项目将要升级到的版本中新增则添加迁移清单migration manifest条目。没有显式清单条目时文件仍会经由trellis update的缺失文件分支落地但清单能让变更出现在 changelog 中。本地覆盖捆绑技能Trellis 不存在正式的项目本地技能机制例如.trellis/skills/。捆绑技能以平台为根因此任何覆盖也只能以平台为根。受支持的模式依赖trellis update中已有的模板哈希差异机制直接编辑本地文件例如.claude/skills/trellis-meta/SKILL.md文件哈希从此与.trellis/.template-hashes.json中的记录产生分歧下次trellis update检测到用户修改后保持文件不变没有显式--force时 Trellis 永不覆盖用户修改过的文件。覆盖模式存在明确的约束与注意点覆盖仅作用于你所编辑目录对应的那一个平台。例如要在 Claude Code 与 Codex 中同时覆盖同一技能必须分别编辑.claude/skills/name/与.agents/skills/name/。未来的trellis update --force会覆盖本地编辑因此覆盖内容应纳入版本控制以便需要时重新应用。安装在同一平台技能根目录下、但使用不同文件夹名的市场技能如.claude/skills/my-custom-meta/不受 Trellis 管理——当目标是新增行为而非改动捆绑技能时这是更干净的选择。团队私有约定应放入.trellis/spec/或独立的本地市场风格技能而不是修改trellis-meta本身。相关指引见 add-project-local-conventions.md。从项目中移除捆绑技能捆绑技能没有按项目的关闭开关只有两条可行路径删除各平台技能根目录中的对应目录。trellis update会发现文件缺失与.template-hashes.json比对后将其视为与任何其他用户修改同等的变更——除非传入--force否则不会静默重建目录。固定使用一个未随附该技能的 Trellis 版本。捆绑技能集合在构建时确定因此安装旧版 CLI 是永久排除当前版本所随附技能的唯一方式。第三种方案——全局禁用所有捆绑技能——不受支持分发在每个配置器中都是无条件的。要增加这样的开关将需要修改configurators/index.ts中的PLATFORM_FUNCTIONS以及每个configureX函数。操作规则文档结尾给出了五条约束性规则既是上游维护者的纪律也是理解该体系心智模型的钥匙将templates/common/bundled-skills/视为存在哪些捆绑技能的唯一事实来源不要手工维护按平台区分的技能清单。不要在 bundledSKILL.md内部添加平台专属逻辑。若行为是平台特有的应放入templates/platform/skills/。不要将捆绑技能耦合到特定 CLI 二进制如trellis mem而不在技能描述与 references 中显式声明该依赖——旧版用户可能没有该命令。不要在捆绑技能中存放项目私有内容。捆绑技能是公开的、会分发给每个用户项目规则应放在.trellis/spec/或本地技能中。这四条规则在当前仓库中可逐一找到对应印证trellis-session-insight的description明确点出trellis mem这一外部命令依赖对应第三条各平台技能目录内容完全同构、没有平台专属内容混入对应第二、四条.trellis/spec/与本地.trellis/config.yaml承载项目级配置对应第四条。总结捆绑技能机制的本质是一套单一数据源、多平台镜像、哈希驱动同步的模板分发系统上游通过listDirectories自动发现新技能经resolveBundledSkills统一解析占位符再由各平台配置器在init与update两条路径上产出字节级一致的产物最终由.trellis/.template-hashes.json的哈希比对来保护用户的本地修改。在 EcoPaste 这样的已初始化项目中读者可以直接从.kiro/skills/trellis-meta/、.agents/skills/等目录观察这套机制的完整落地形态并据此规划自己的技能新增、覆盖与移除策略。赞分享桌面应用开发工具【免费下载链接】EcoPaste跨平台的剪贴板管理工具 | Cross-platform clipboard management tool项目地址https://gitcode.com/gh_mirrors/ec/EcoPaste点击查看免费下载相关推荐EcoPaste 仓库内的 Trellis Bundled Skills 架构解析内置技能的自动分发、覆盖与新增全指南EcoPaste 仓库内的 Trellis Bundled Skills 架构解析内置技能的自动分发、覆盖与新增全指南 本指南以 Trellis 官方架构文档桌面应用Trellis Bundled Skills 机制解析内置技能如何在所有 AI 平台自动分发、覆盖与扩展Trellis Bundled Skills 机制解析内置技能如何在所有 AI 平台自动分发、覆盖与扩展 本篇技术指南聚焦 Trellis CLI 中的 Bu桌面应用Trellis Bundled Skills 内置技能体系分发机制、全平台落点与本地覆盖实战Trellis Bundled Skills 内置技能体系分发机制、全平台落点与本地覆盖实战 导读 Bundled Skills 内置技能是 Trelli桌面应用上一篇Forem贡献指南如何参与开源社区开发下一篇OpenDyslexic开发幕后从字符设计到字体编译的技术之旅创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考