多仓开发与提交规范
OceanWay 多仓 Issue、Worktree、分支、Commit、Pull Request、CI、版本与发布治理基线
OceanWay 使用“一个活跃仓库一个 Codex Project、一个工作包一个 Issue/Worktree/PR”的 协作模型。会话之间不共享未提交文件或临时记忆;协同事实只通过 GitHub、固定 Contracts Release、不可变制品和 Evidence Manifest 传递。
规范模板与自动审计脚本由 Oceanway-AI/oceanway-infrastructure/governance 维护。各仓
可以增加更严格规则,但不能降低公共基线。
工作包与并行
开始实现前,Issue 必须包含 Owner、目标、非目标、依赖、Owned Paths、验收、测试、部署 和回滚风险。一个 Issue 对应:
Codex Project = 一个 Git 仓库
Codex Task = 一个 GitHub Issue
Worktree = 一个隔离工作目录
Branch = codex/<issue>-<slug>
Pull Request = 一个仓库内的可审查增量Migration、OpenAPI 根文件、依赖锁、全局注册表和共享状态机等高冲突路径同时只能有一个 Owner。跨仓功能由父 Issue 或 Milestone 编排多个子 Issue,禁止一个 PR 复制修改多个仓库。
Commit 与 Pull Request
Commit 和 PR 标题使用 Conventional Commits:
<type>(<scope>): <imperative summary>允许 feat、fix、refactor、test、docs、chore、build、ci、perf 和
revert。PR 必须填写 Issue、Outcome、Scope、Contracts、Verification、Data/Security、
Deployment/Rollback、Risks 和 Follow-ups。
每个仓库采用 Squash Merge 并在合并后删除分支。禁止直接提交 main、force push、复制
Worktree 或用本地相对路径同步跨仓代码。
仓库最小文件
每个活跃仓库必须包含:
README.md:唯一产品/服务边界和当前状态;AGENTS.md:本仓 Agent 约束与测试要求;CONTRIBUTING.md:分支、提交、PR 和跨仓规则;.github/CODEOWNERS;.github/PULL_REQUEST_TEMPLATE.md;.github/ISSUE_TEMPLATE/work-package.yml;.github/workflows/repository-governance.yml;- 与真实技术栈匹配的 CI、构建和发布 Workflow。
治理 Workflow 校验必要文件、UTF-8、常见乱码、.DS_Store、分支名称、PR 标题和 PR
必要章节。它不能替代代码测试。
Contracts 与版本
跨仓协议变更固定顺序为:
- Contracts Issue 固定语义、Schema、Golden 和负向测试;
- 发布 SemVer Package、Release 和 Digest;
- Producer 固定版本并保持兼容;
- Consumer 固定同一版本并通过 Contract Test;
- Infrastructure 使用精确 Commit/Image Digest 联调;
- Evidence Manifest 通过后切流。
禁止依赖 Contracts 分支、Git URL、本地路径或复制 DTO。服务发布不可变镜像, Infrastructure 的 Release Manifest 精确记录 Repository、Commit、Workflow Run、Artifact Ref/Digest 与 Contracts Package Digest。
CI 与保护规则
每个代码仓 CI 至少覆盖格式/静态检查、类型、测试、生产构建、依赖审计和 Secret 扫描; 数据库、Gateway 和 Surface 分别补真实数据库、Provider Fixture 与浏览器回归。
目标 GitHub 保护规则要求 PR、Code Owner、Required Checks、禁止 force push/删除 main, 并让管理员同样遵守。当前私有仓套餐无法启用 Rulesets 时,Repository governance 只能 作为提醒,不能阻止仓库管理员绕过流程;升级到支持私有仓规则的组织套餐后必须立即启用。
Worktree 环境
.worktreeinclude 只在仓库确实需要被复制的 ignored 本地文件时使用。不得为了方便批量
复制生产 Secret;优先使用环境初始化脚本、测试凭据和 Secret Manager。一个 Worktree
不得被多个任务复用。
合并与发布职责
- 工作包 Owner:代码、测试、PR 与本仓风险;
- Contract Owner:协议语义、版本与兼容窗口;
- Integration Owner:按依赖顺序合并和生成跨仓证据;
- Infrastructure Owner:制品、环境、部署、观察和回滚;
- Code Owner:评审边界、安全与完成证据。
PR 合并、CI 成功、页面可访问或文档更新都不能单独证明跨仓批次已经上线。