文档

任务如何转化为pull request

从工作描述到经过审核的 pull request 的完整流程,以及沿途的各个阶段名称。

这是其余文档引用的页面。它列出了每个执行阶段的名称,以便其他文章能准确说明某操作发生的位置。

流程路径

  1. 1需求规格说明

    明确要构建的内容,以及验证其是否达标的依据

    架构师您可以编辑
  2. 2计划制定

    编排有序的步骤,在编写代码前先完成审核

    架构师您予以批准
  3. 3代码构建

    在隔离的工作空间中编写代码与测试用例

    开发人员
  4. 4功能验证

    运行您的测试套件,同时执行各项检查与质量门控

    测试人员
  5. 5代码评审

    系统自动对代码差异进行审核

    审核人员
  6. 6拉取请求

    代码已提交至仓库的分支中,等待您处理

    您执行合并

验证未通过或审核中发现的可修复问题会作为返工任务退回给开发人员,随后才会生成pull request。

共六个阶段,每个阶段有指定负责人。您在需求定义、计划制定及合并环节介入。

无论任务以何种方式运行,这些阶段都是相同的。在标准模式下,平台会将任务从一个阶段推进到下一个阶段。在协调员模式下,规划智能体将作为协调员负责该任务,把每个阶段分配给对应的智能体,并决定每个阶段的结果之后如何处理,包括将工作返回给上游。无论哪种模式,阶段都会通过其自身的校验关闭。查看智能体角色了解两种模式的差异。

规格说明

Coroid并非从你的描述直接生成结果。它首先会将你的描述转化为规格说明:明确要构建的内容、排除在范围之外的事项,以及判定工作是否成功的验收标准。

这一点至关重要,因为验收标准是后续验证阶段所依据的依据。模糊的规格说明会导致难以评判最终产出。

你可以在任务对应的“规格说明”标签页上阅读并编辑规格说明, 以此在任务执行前完成确认。规格说明标签页,以便在执行开始前进行确认。

《基于规格说明的开发指南详细讲解了如何编写可测试的验收标准、设定范围边界,以及如何在规划、实现和审核环节保持对成功定义的统一认知。

规划

对于超出小型变更范畴的需求,规格说明会进一步细化为规划:一组有序的步骤,被划分为多个阶段。在编写代码前,你需要先批准该规划。

拒绝规划的成本很低,当方案有误时这是正确的选择。而在代码编写完成后才拒绝规划则成本极高。这一阶段正是你的判断能发挥最大作用的时候。

构建

智能体会将代码库克隆到独立的工作空间中开展工作。它会读取代码、写入变更,同时编写或更新测试用例。

该工作空间是临时的且按任务划分。智能体的操作不会触及你的默认分支,同时同时运行的多个任务也无法看到彼此正在进行中的工作。

验证

首先会运行你自己的测试套件——这是最可靠的信号,因为它体现了团队已经确定的重要标准。

在此基础上,质量门禁会执行你所在组织配置的各项规则:覆盖率阈值、代码规范检查、安全扫描,以及针对预览部署的浏览器测试。阻塞型门禁会终止任务;提示型门禁会记录发现结果但允许任务继续。

审核

审核智能体会像同事一样阅读代码差异,并生成发现结果。可修复的发现结果会被退回重新处理;其余结果会附加到pull request中供你查看。

正因如此,Coroid生成的pull request已经过审核——并非要取代你的审核工作,而是让你的审核不再是首次审核。

拉取请求

分支推送后,系统会针对你的基准分支创建对应的pull request,其中会包含相关变更内容、测试用例、验证结果以及评审结论。如果代码已经满足任务要求,则无需推送任何内容:此时QA会直接验证未修改的代码,任务也会无需创建pull request即可完成。

Coroid的任务自动化到此为止。合并操作由你来完成。

合并之后

打开版本发布页面,准备你打算发布的精确提交内容。一个版本发布可以包含多个已合并的拉取请求、直接提交的代码,或在Coroid之外合并的工作。版本发布门禁和审批流程针对的是该提交及特定环境。你的流水线会部署它;Coroid会在将其标记为已发布前,记录观察到的成功结果或明确的证明。仅标记为COMPLETED或已合并的pull request本身并不能证明已完成部署。

任务状态

任务状态能告诉你它在上述流程中所处的位置:

状态含义
PENDING已接受,等待可用的智能体插槽
IN_PROGRESS正在积极处理中
PENDING_REVIEW工作已完成且经过审核,等待集成或审批
COMPLETED任务工作已完成;部署情况需单独跟踪
NEEDS_HUMAN_REVIEWCoroid无法自行继续推进,正在向你询问相关问题
PAUSED暂时停止,可恢复
FAILED执行无法完成
CANCELLED由你手动停止
WONT_FIX刻意关闭,未执行相关工作

决定吞吐量的因素

一个代理插槽单个代理插槽一次仅运行一个任务。插槽用于设定并行处理的工作量,并不会加快单个任务的完成速度。任务本身的耗时由变更规模及测试套件的运行时长决定。

下一步

智能体角色— 即哪个智能体负责每个工作阶段。随后请查看版本发布了解代码合并后如何在各环境中流转。