8.0 KiB
独立任务协作登记
本文件登记用户可独立打开和查看的 Codex 总控与下属独立任务,不登记子代理。总控负责计划和调度,下属任务保留业务上下文并可自行使用子代理;任务名称始终只是展示标签。
启用门禁
默认对话是普通任务,不进入本登记流程。小任务直接在当前对话完成,不登记、不创建下属独立任务,也不因为任务看起来复杂就自行切换为总控。
只有以下任一条件成立时启用总控模式:
- 当前稳定
task_id已登记在下方“总控通道”。 - 用户或任务启动指令明确声明当前任务是总控,并授权其规划、拆分和调度;尚未登记时必须先核对稳定 ID 并补充总控记录。
“总控下属独立任务”中的任务默认只是执行任务,可以使用自己的子代理,但不能继续创建用户可见的下属独立任务或自行升级为总控。需要升级时必须由用户明确指定并登记。只有已登记总控创建或明确接管的独立任务才进入本表,其他普通对话不登记。普通任务认为需要长期编排时只能先建议切换,用户确认前不得启动本流程。
总控通道
总控通道持有整体计划、任务拆分、共享契约、结果汇总和后续调度。idle、active、blocked 都表示通道可复用;只有 archived 表示不可继续下发。同一 routing_key 只能保留一个未归档任务。
| routing_key | task_id | display_name | durable_scope | owner | status | last_update | notes |
|---|---|---|---|---|---|---|---|
admin-ui.control |
019fea7a-979f-7252-8963-70687563385f |
Admin UI 总控 | Admin 页面规范、公共组件、交互一致性和跨模块 UI 治理 | Admin UI 总控 | active | 2026-08-11 | 后续 Admin UI 规划、拆分与汇总统一复用此 ID |
phase3.control.release-acceptance |
019fdf57-2f16-7cf1-88f0-a75854ed7629 |
三期总控|发布与验收 | 三期发布、测试环境验收、阻断分类与最终汇总 | 三期总控 | idle | 2026-08-11 | 后续三期发布与验收规划、拆分和汇总统一复用此 ID |
finance.control |
019feaa3-9f10-7ab0-8023-4b121ff9662c |
财务总控 | 财务范围、跨端契约、后端/Admin/Client 协调与汇总 | 财务总控 | active | 2026-08-11 | 后续财务规划、拆分与跨端汇总统一复用此 ID |
phase3.acceptance.real-full.control |
019fdf0a-4933-7903-8a0c-10018c379f6f |
三期真实全量验收总控 | 三期测试环境真实 HTTP 全量验收、返工复验、结果汇总和后续调度 | 三期真实验收总控 | active | 2026-08-11 | 后续同范围验收规划、拆分和汇总统一复用此 ID |
总控编排规则
routing_key按长期职责确定,格式为<domain>.<unit>.<responsibility>;不包含序号、日期、批次、提交号或本轮动作。- 命中未归档总控后直接使用其
task_id通信;标题相同或不同均不影响寻址。总控开始新一轮工作时改为active,整体计划暂时没有待调度工作时回到idle。 - 总控通道不得使用
completed;一轮工作完成后回到idle,继续保留复用资格。 - 用户将任务指定为总控并授权其规划、拆分和执行后,总控可在已确认目标与范围内创建必要的下属独立任务,无需逐项再次确认;超出授权范围仍须用户确认。
- 永久停用才标记
archived。创建替代通道时,在新旧记录备注中互相写明 ID,不覆盖或复用旧 ID。
总控下属独立任务
下属独立任务负责稳定、可再次进入的业务边界。它可以自行创建和归档内部子代理,但必须由所属总控通过稳定 ID 下发,并将结果回传总控。任务一轮完成后改为 idle 并保留,不自动归档;旧功能修改、返工或补验重新激活原任务。
| routing_key | task_id | parent_routing_key | display_name | durable_scope | status | worktree/branch | last_update | notes |
|---|
当前暂无已登记的总控下属独立任务;后续只登记上述总控创建或明确接管的独立对话及其稳定职责。
下属任务生命周期
planned:已经规划和登记,尚未开始;active:正在执行或等待内部子代理;blocked:存在明确阻断;idle:本轮已回传并等待总控再次下发。- 独立任务回传后由总控验收并更新计划。验收通过只把该任务改为
idle,不删除登记、不归档聊天、不改写task_id。 - 总控发现旧任务需要修改时,直接向原
task_id下发并改为active;独立任务沿用已有上下文理解需求,内部子代理可根据本轮工作重新创建。 - 只有职责永久撤销、任务损坏、任务被明确替代或用户要求停用时才归档;归档前在备注中说明原因和替代 ID(如有)。
已归档任务恢复门禁
归档用于收起明确停用的对话,不等于删除任务或废弃其稳定 ID。准备创建独立任务时,在查询总控通道和下属任务之后、实际创建之前,必须先用本机 ~/.codex/session_index.jsonl、~/.codex/state_5.sqlite 和 ~/.codex/sessions/ 检查是否存在可恢复的已归档用户任务。
- 用户明确要求继续、返工或补验原任务,并且前序目标、交付物与上下文属于同一项工作时,取消归档原
task_id,把它重新加入“总控下属独立任务”并标记为active,再向原 ID 下发。 - 只是业务域相同但职责边界不同的新事项时,不占用历史任务;由总控复用其他匹配任务或在授权范围内创建新的下属独立任务。标题、关键词或模块相同不能单独作为恢复依据。
thread_source=subagent、已确认中止的子代理、已经被新任务明确替代的任务,以及损坏或无法读取的任务不得恢复为独立任务。- 恢复动作不得生成新 ID,也不得把旧 ID 转给另一项工作。恢复后仍沿用原任务的范围和上下文,本轮结束后回到
idle;只有满足明确停用条件时才再次归档。
创建前判定顺序固定为:确定总控与子任务 routing_key → 查询未归档总控和下属任务 → 本地检查已归档同任务 → 复用原任务、恢复原任务或判定无匹配 → 核对总控的范围内拆分授权 → 创建并登记 → 下发。
登记规则
- 总控和下属独立任务都必须登记稳定
routing_key;下属任务还必须登记parent_routing_key和可长期识别的durable_scope,并作为后续复用的强制路由。未由已登记总控创建或明确接管的普通对话不得登记。 - 本表只登记本机元数据为用户独立任务的线程;
thread_source=subagent不得登记,完成或中止后由父线程归档。 - 独立任务创建成功并获得平台返回的稳定 ID 后立即登记;没有稳定 ID 不得写入临时名称或自行生成替代 ID。
- 任务名称可以修改,
task_id不得复用、改写或转给另一项工作。独立任务本轮完成后保留登记并改为idle;后续原范围返工继续使用原 ID。重要业务结论必须写入对应业务、验收或进度文档。 - 跨任务共享契约由总控记录;独立任务回复必须带回自身
routing_key、task_id、parent_routing_key、状态、变更文件、验证结果、阻断项和建议下一步。
通信与汇总格式
总控下发消息至少包含:
role: controller | independent_task
routing_key: <长期职责键>
task_id: <已登记 ID>
parent_routing_key: <所属总控键;总控自身填 self>
目标: <单一交付目标>
范围: <目录/模块>
共享契约: <依赖的接口、模型或文件>
回传: <状态、变更文件、验证命令/结果、阻断项>
汇总时按 parent_routing_key → routing_key + task_id 聚合,不按 display_name 聚合;同一 ID 的最新状态覆盖旧状态,但保留重要阻断和验证记录。总控验收回传、更新整体计划后,再决定向原任务返工或安排下一项工作。