OceanWayOceanWay

多仓开发与提交规范

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>

允许 featfixrefactortestdocschorebuildciperfrevert。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 与版本

跨仓协议变更固定顺序为:

  1. Contracts Issue 固定语义、Schema、Golden 和负向测试;
  2. 发布 SemVer Package、Release 和 Digest;
  3. Producer 固定版本并保持兼容;
  4. Consumer 固定同一版本并通过 Contract Test;
  5. Infrastructure 使用精确 Commit/Image Digest 联调;
  6. 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 成功、页面可访问或文档更新都不能单独证明跨仓批次已经上线。

On this page