本文档定义 rtnn 作为上游模板源码仓时必须保持的中立边界,避免把某个业务项目或某台服务器的事实反向固化进模板。
- 通用源码、契约、权限、OpenAPI、SDK 与自动化测试。
- 可复用的业务仓 release / promote workflow。
- 通过
.rtnn/project.json读取业务仓事实的通用脚本。 - 可替换的 env key、镜像命名规则、dispatch payload 结构和运行事实同步脚本。
- 用占位值说明业务仓、部署仓、域名和服务器如何接入。
- 具体业务仓名称、真实 GitHub owner、真实 GHCR owner。
- 真实公网域名、服务器路径、数据库连接串、token、secret。
- 某个业务项目的
testing / productionlive state。 - 让新业务项目必须使用固定部署仓名称、固定域名结构或固定服务器目录的规则。
派生后的业务源码仓负责维护自己的非敏感事实:
project.repodeployment.repodeployment.imageNamePrefixdeployment.dispatchEventTypedomains.testing / domains.productionserverliveState
这些事实集中放在业务仓 .rtnn/project.json,不回写到模板仓。
独立部署执行仓只消费业务仓的发布 payload 和运行时 secrets,负责 deploy / rollback / smoke / runtime facts。它可以复用模板定义的契约,但不能成为 API、权限、镜像规则或发布决策的事实源。
模板仓通过以下命令检查是否引入了业务事实污染:
pnpm run check:template-neutrality该检查会扫描模板源码中的具体业务仓名、真实域名、具体 GHCR owner 和服务器路径。派生后的业务仓因为拥有自己的 .rtnn/project.json,不会把自身业务事实误判为模板污染。