定制 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 读取的就是:
关键点是
path:它相对的是仓库根目录,不是 index.json 所在目录。
维护流程
- 从已有模板复制,或在
marketplace/specs/<id>/下新建一个目录。 - 把可复用规则拆进不同主题文件。例子可以来自真实项目,但要去掉只属于某个项目的假设。
- 如果目录用
index.md给 agent 做导航,同步更新这些index.md。 - 在
marketplace/index.json增加或更新模板条目。 - 发布前先在临时仓库里跑一遍安装。
.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:
README.md 里记清楚。源模板变了,不代表已有项目自动变正确;项目里的
spec 更新应该单独 review、单独合并。