用途
codepatrol-sync-state 是一个内部状态同步技能,由 codepatrol 技能启动的子代理执行,不设想由用户直接调用。它把修复安全调查所发现问题而创建的 pull request 的实际状态,同步到分诊页面与调查报告中,使两者与实际状态保持一致。
修复工作由多个人与 AI 并行推进,页面记录会逐渐偏离实际状态:已 merge 却仍标记为待评审、他人已着手却未反映到页面、同一内容只出现在其中一个页面等。状态偏差若被保留,后续调查与分诊会把已处理的问题误认为未处理。
执行前提
- 不能向用户提问,判断不明的事项写入最终报告
- 不阅读代码
- 对 pull request 只读,不创建或编辑 pull request 及评论
- 仅处理写入目标为 Cosense 的情况;起点页面与 pull request 所在仓库服从控制方指示
- Cosense 的读写遵循 cosense 技能
对象页面
起点是控制方交接的分诊页面。报告对象为分诊页面各行所链接的内容。
动手前先阅读分诊页面开头写的编辑规则:状态图标的含义、可写与不可写的内容由该处规定;若与本流程书冲突,以页面描述为准。
没有分诊页面时,以 hub 页面汇总的各领域最新报告为对象。
状态图标对齐
对页面中 pull request 所在行,确认 pull request 的实际状态并对齐状态图标。图标表示的是 pull request 的状态,而非问题是否解决:
- 全部已 merge:完成
- 包含 draft:进行中
- 上述两者之外且为 open:待评审
同一 pull request 的行同时存在于分诊页面与报告时,两处都修正。只存在于其中一个页面的状态,要复制到另一个页面;仅复制由谁着手与 pull request 的状态,不复制讨论与交代事项。
没有表示未 merge 即 close 的 pull request 的图标;页面未列出时不新增。
查找页面未列出的 pull request
查找修复问题但未记录在页面上的 pull request,遗漏往往发生在此方向,因为实现者可能未写页面就提交修复。
未列出的 pull request 通过阅读概要栏判断是哪个问题的修复。若是问题修复,则加上状态图标,补入分诊页面与报告两处;若不是问题修复,则不添加。
上次同步的时间可作为缩小搜索范围的线索,但早于上次创建的 pull request 也可能之后成为问题修复。按日期筛选时注意时区,日期边界前后创建的 pull request 可能被遗漏。
完成后的遗留任务
对标记为完成的行,确认是否存在遗留任务。pull request 被 merge 并不代表问题全部解决,可能存在只修了一部分、留作其他课题、需要盘查既有数据、需要实环境确认等情况。遗留任务在保留完成标记的前提下,用一行摘要表示。
若报告的问题中写有遗留任务,则在分诊页面该 pull request 行下方补一行摘要;有多项也合并为一行。详情在报告里,摘要即可。
仅写在 pull request 概要栏中的工作,先复制到报告的问题中,写清是从概要栏复制,不写概要栏没有的内容,然后在分诊页面补上摘要。
若已有相同主旨的行,则不添加。
人类编写的行
人类会并行编辑页面。即使是人类编写的行,状态图标也要按实际状态修正,并报告修正情况。
不改动文案,但要删除与实际状态不符的措辞并报告删除情况,例如“仍为 draft”之类。
不带 pull request 链接的着手声明行,不做改动。
pull request 行末尾的署名属于实现者,不要改成自己的署名。
不修改而需报告的事项
遇到以下情况时不修改页面,向控制方报告:
- pull request 未 merge 即被 close,页面已列出的行是删除还是保留需要判断
- 遗留任务的摘要看似已被后续 pull request 解决,但工作是否完成无法仅从 pull request 确认
- 报告中出现了符合对象条件的新问题,是否需要向分诊页面新增行需要判断
- 报告判定为“无问题”的位置,却有修复 pull request 在进行
- 同一 pull request 在分诊页面与报告中关联到不同问题,且阅读 pull request 概要栏也无法确定
向控制方报告
分以下三类报告:
- 已修正的行
- 正确因而未触碰的行(列出未触碰的行可表明并非遗漏)
- 需要判断因而未修改而保留的事项
此外还需报告:新补入页面的 pull request 及其关联问题;判断为未列于页面但不属于问题修复的 pull request;已附加状态图标的行数与已确认的 pull request 数。
适用场景与限制
本技能适用于通过 Cosense 页面管理安全调查问题修复进度的场景,用于在多名人类与 AI 并行修复时维持页面与报告的准确性。限制包括:不可向用户提问,不阅读代码,对 pull request 只读,仅处理 Cosense 写入目标,无法判断的事项一律上报而不自行处理。关于具体支持的平台、收费、价格等信息,资料中暂未提供。