Skip to main content

定制 Spec Template Marketplace

Spec template marketplace 是一个 Git source,trellis init --registry 可以从 里面拉取一套 .trellis/spec/ 起点。团队有很多仓库、但希望它们从同一套工程约定开始时,就该用这个。 它适合放可复用的工程规范:框架目录、API 模式、测试规则、发布规则、review checklist,以及 agent 写代码前应该看到的真实示例。它不是远程任务库,也不应该放项目运行态。

运行模型

trellis init --registry <source> 会把 <source> 解析成 GitHub、GitLab 或 Bitbucket source,然后在这个 source path 下面探测 index.json Source 格式:
示例:

仓库结构

常见结构是:
模板目录里应该直接放最终会出现在 .trellis/spec/ 里的文件。不要再包一层 spec/,除非你真的想安装后得到 .trellis/spec/spec/... 里面的文件夹名是团队约定,不是 Trellis 强制要求。frontend/backend/shared/guides/ 只是常见拆法,因为把大规则按领域拆开后,agent 更容易加载到相关内容。

index.json 合约

index.json 放在 registry source path 下面。以上面的结构为例,用户把 --registry 指到 gh:myorg/my-spec-marketplace/marketplace,Trellis 读取的就是:
最小 marketplace index:
字段规则: 关键点是 path:它相对的是仓库根目录,不是 index.json 所在目录。

维护流程

  1. 从已有模板复制,或在 marketplace/specs/<id>/ 下新建一个目录。
  2. 把可复用规则拆进不同主题文件。例子可以来自真实项目,但要去掉只属于某个项目的假设。
  3. 如果目录用 index.md 给 agent 做导航,同步更新这些 index.md
  4. marketplace/index.json 增加或更新模板条目。
  5. 发布前先在临时仓库里跑一遍安装。
测试命令:
安装后,目标项目拥有自己的 .trellis/spec/。模板只是起点,不是一个会被远程同步的 wiki。团队应该继续编辑项目里的 spec,让它反映当前仓库真实情况。

适合放什么

适合放:
  • 这个技术栈的目录、模块、边界约定。
  • API、数据库、状态管理、测试、错误处理规则。
  • 从真实项目整理出来、但已经去掉私有信息的示例。
  • Agent 完成任务前应该执行的 review checklist。
  • 解释跨层取舍的短 guide。
不要放:
  • Secret、内部 URL、客户数据、私有事故记录。
  • .trellis/tasks/.trellis/workspace/ 或当前任务状态。
  • .claude/.codex/.cursor/.opencode/ 这类平台 prompt 文件。它们属于 Trellis 平台定制,不属于 spec template。
  • 只对某一个仓库有意义的产品 PRD。

版本与发布

把 template id 当成团队内部的公开 API。需要破坏性重写时,发一个新 id,比如 web-app-v2;或者让旧行为固定到 某个 Git ref:
小改动可以继续用同一个 id,但要在模板 README.md 里记清楚。源模板变了,不代表已有项目自动变正确;项目里的 spec 更新应该单独 review、单独合并。

常见问题

和 Resource Marketplace 的关系

Resource Marketplace 页面是公开目录。这页是自定义 registry 的维护说明。模板仓库本身跑通后,如果它适合公开复用,再去 template catalog 下面补一页文档。