文档

任务、计划、迭代和工作流

Coroid 中工作组织的四种方式,以及各自适用场景。

Coroid 包含四种工作单元。它们可以相互嵌套,选择恰当的单元主要取决于工作的规模以及需要同时执行的工作量。

单元规模结束时间
任务一项变更一个 pull request
计划分阶段实现的功能整个计划对应一个 pull request
迭代一段时间内的工作块无论这些任务产出什么内容
通道并行工作流程计划工作所集成到的分支

迭代 · 两周

计划结账页面重构

阶段 1

任务支付表单任务卡片验证

阶段 2

任务订单摘要
分支通道一个 pull request

独立任务

任务修复日期解析问题
一个 pull request
迭代用于划分一段时间内的工作内容。计划将任务按阶段排序,其分支会生成单个pull request。单独的任务也属于一个pull request。

任务

最基本的单元。一个任务是一个可产出单个 pull request 的工作单元,也是实际被执行的内容——计划、迭代和通道都是组织任务的方式。

如果你能用一段话描述出结果,且审核人员能一次性读完相关内容,那它就是一个任务。

计划

当工作需要按特定顺序进行多次变更时,就会形成计划:即按阶段分组的有序任务集合,在编写任何代码前需先获得审批。

以下情况可使用计划:

  • 后续步骤依赖前期步骤的输出
  • 你想在确定实施方案前先了解整体思路
  • 该项工作是功能开发而非简单变更

审批计划是系统中成本最低的干预节点。在此阶段否决方案仅需花费一分钟;若三个任务执行完毕后再否决,则需重复三次操作。

计划如何进入你的代码库

计划的各任务不会分别生成单独的 pull request。它们会在各自的分支上工作,然后合并到共享的通道分支,该分支会被提升为针对你的基准分支的单个拉取请求。

任务分支任务分支任务分支

分支通道

计划工作的整合位置

一个 pull request

整合后的功能,经一次审核

main

您的基础分支

若任务所属项目与分支通道所在项目不同,则该任务会独立推送,此时跨项目计划会在每个代码库中生成一个 pull request。

任务分支会合并到计划的分支通道中,该通道会作为单个 pull request 推送到您的基础分支。

因此你只需审核一次整合后的完整功能,无需逐个审核未完成的阶段。

例外情况是跨多个项目的工作:属于不同项目的任务会在各自的通道中推进,因此跨项目计划会为每个代码库生成单独的 pull request。这是不可避免的——一个 pull request 无法跨越两个代码库。

迭代

迭代是限定时间的工作容器,拥有独立的指标和时间线。迭代用于回答“本周期内我们要做什么、进展如何”,而非“该功能如何构建”。

当你需要协调团队在一定周期内的工作时可使用迭代;分解单个功能时使用计划。二者并非互斥选项——一个迭代可包含属于多个计划的任务。

通道

通道是计划并行工作的集成位置。任务以通道的分支为目标,而非你的基准分支,因此多个智能体可同时推进而不会发生冲突,一旦符合条件,整合后的结果就会被提升为单个 pull request。

计划关注的是顺序,通道关注的是并发和集成。如果你有充足的智能体资源且工作无需严格串行执行,通道就能让它们协同运行,最终仍输出为可审核的单一变更。

如何选择

关键不在于你想要多少个拉取请求——任务和计划最终都会生成一个拉取请求。关键在于结果值得审核前需要完成多少工作量。

  1. 这项变更是否能让审核人员一次性读完?是 → 任务。
  2. 它是否需要按顺序进行多次变更才能形成完整的功能?是 → 计划。其通道会在允许的情况下并行处理各部分工作。

迭代作为规划和报告层,与上述机制并行运作。

版本发布的定位

一个版本发布是集成后的交付记录,并非另一项任务、计划、迭代或工作流。它会锁定代码库的提交记录,确认计划内的工作已包含在该提交中,并跟踪各环境下的部署尝试情况。一个版本发布可能包含多个迭代的工作;一个迭代也可能生成多个版本发布。工作流升级会触发一个 pull request,但本身并不会生成经过验证的交付成果。

同时运行数量的限制因素

并非结构问题,而是容量限制。一个包含十个可并行执行的任务且仅有单个代理槽位的计划,会依次执行这些任务。详见容量与代理槽位。