This commit is contained in:
2026-08-11 19:35:21 +08:00
parent 2efcf8c959
commit 5d39ba70c1
3 changed files with 68 additions and 43 deletions
+56 -31
View File
@@ -1,60 +1,85 @@
# 独立任务协作登记
> 本文件登记用户可独立打开和查看的 Codex 任务/对话,不登记子代理。长期复用通道负责创建前路由,当前执行任务只保留未结束工作;任务名称始终只是展示标签。
> 本文件登记用户可独立打开和查看的 Codex 总控与下属独立任务,不登记子代理。总控负责计划和调度,下属任务保留业务上下文并可自行使用子代理;任务名称始终只是展示标签。
## 长期复用通道
## 启用门禁
总控下发独立工作前必须先查本表。`idle`、`active`、`blocked` 都表示通道可复用;只有 `archived` 表示不可继续下发。同一 `routing_key` 只能保留一个未归档任务。
默认对话是普通任务,不进入本登记流程。小任务直接在当前对话完成,不登记、不创建下属独立任务,也不因为任务看起来复杂就自行切换为总控。
只有以下任一条件成立时启用总控模式:
- 当前稳定 `task_id` 已登记在下方“总控通道”。
- 用户或任务启动指令明确声明当前任务是总控,并授权其规划、拆分和调度;尚未登记时必须先核对稳定 ID 并补充总控记录。
“总控下属独立任务”中的任务默认只是执行任务,可以使用自己的子代理,但不能继续创建用户可见的下属独立任务或自行升级为总控。需要升级时必须由用户明确指定并登记。只有已登记总控创建或明确接管的独立任务才进入本表,其他普通对话不登记。普通任务认为需要长期编排时只能先建议切换,用户确认前不得启动本流程。
## 总控通道
总控通道持有整体计划、任务拆分、共享契约、结果汇总和后续调度。`idle`、`active`、`blocked` 都表示通道可复用;只有 `archived` 表示不可继续下发。同一 `routing_key` 只能保留一个未归档任务。
| routing_key | task_id | display_name | durable_scope | owner | status | last_update | notes |
|---|---|---|---|---|---|---|---|
| `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 | Finance一期最终验收FAIL;正在协调11个一期P0 operation返工与独立复验 |
| `database-comments.control` | `019fef70-b644-7071-8b76-975b8940985c` | 数据库注释治理 | 数据库中文注释规范、模块分派、统一 SQL 集成与总体验收 | 数据库注释总控 | idle | 2026-08-11 | 本地 MySQL 8.4 全场景验收 PASS;开发 MySQL 8.0.45 已执行统一 SQL 并取得唯一 PASS,九库表/字段中文注释缺口均为0;后续工作继续复用此 ID |
| `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`,继续保留复用资格。
- 用户未明确要求新增独立对话时,未命中通道也不自动创建;使用当前任务或子代理完成工作。
- 命中未归档总控后直接使用其 `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` → 查询未归档总控和下属任务 → 本地检查已归档同任务 → 复用原任务、恢复原任务或判定无匹配 → 核对总控的范围内拆分授权 → 创建并登记 → 下发。
## 登记规则
- 下表只临时保存 `planned`、`active`、`blocked` 的一次性独立任务,不作为新任务的复用路由;可长期复用的职责必须登记到上方“长期复用通道”。
- 总控和下属独立任务都必须登记稳定 `routing_key`;下属任务还必须登记 `parent_routing_key` 和可长期识别的 `durable_scope`,并作为后续复用的强制路由。未由已登记总控创建或明确接管的普通对话不得登记。
- 本表只登记本机元数据为用户独立任务的线程;`thread_source=subagent` 不得登记,完成或中止后由父线程归档。
- 独立任务创建成功并获得平台返回的稳定 ID 后立即登记;没有稳定 ID 不得写入临时名称或自行生成替代 ID。
- 任务名称可以修改,`task_id` 不得复用、改写或转给另一项工作。一次性任务完成或被替代后,先归档聊天,再删除本表记录;重要业务结论必须已写入对应业务、验收或进度文档。
- 跨任务共享契约由总控记录在备注中;独立任务回复必须带回自身 `task_id`、状态、变更文件、验证结果和阻断项。
## 当前执行状态值
`planned`、`active`、`blocked`。完成和归档不是表内常驻状态。
## 当前执行任务
以下仅保留当前仍在执行或受阻的任务;已完成或已替代的一次性任务从本表移除,对应聊天可在 Codex 归档中恢复。
| task_id | display_name | scope | owner | status | worktree/branch | last_update | notes |
|---|---|---|---|---|---|---|---|
| 019ff034-87cb-7d32-8c93-3e8aa992b082 | 三期最终脚本与全量收口 | `baiyue-firstleg/scripts/admin-test-env-*` 状态断言、finalize实际柜次关联、定向与默认全量 | 三期总控 | completed | 后端 `test` | 2026-08-11 | `8a65f18`已推送;完整三期生产者链398/398 PASS、契约8/8、deploymentBlockers=0,已回收到三期长期通道 |
| 019fdf0a-4933-7903-8a0c-10018c379f6f | 后台真实全量测试 | `baiyue-firstleg/scripts/admin-test-env-*` 与测试环境真实 HTTP 验收 | 三期总控 | active | 后端 `test` | 2026-08-11 | 当前基线复跑与下一批 PDA batch/Admin 终验分两轮执行;禁止 mock、放宽断言或 gap 伪装 PASS |
| 019febc3-704f-7c72-8e82-dc317f69dc9b | Finance 后端与数据库 | `baiyue-firstleg/finance`、Finance 依赖的 `file/firstleg/gateway/iam` 契约、模块 SQL 与统一 SQL | 财务总控 | active | 共享工作区 | 2026-08-11 | 一期财务后端与数据库实现及专项门禁 |
| 019febc3-7c39-7ec2-8051-a4cce8d5f104 | Finance F1 接口契约 | `docs/财务管理/` 的 OpenAPI、接口契约、门禁和状态文档 | 财务总控 | active | 共享工作区 | 2026-08-11 | 一期财务接口与验收契约 |
| 019febc3-89f3-7991-b7eb-6c697fd9f032 | Admin 人工财务模块 | `apps/admin-web/src/modules/finance/` 及其路由、权限和测试 | 财务总控 | active | Admin 当前工作区 | 2026-08-11 | 一期 Admin 财务页面与真实接口交互 |
| 019febc3-9519-7982-81dd-bc048819bf48 | Client 财务只读模块 | `apps/client-web/src/modules/finance/` 及财务权限映射和测试 | 财务总控 | active | Client 当前工作区 | 2026-08-11 | 一期 Client 财务只读专项,禁止修改范围外文件 |
- 任务名称可以修改,`task_id` 不得复用、改写或转给另一项工作。独立任务本轮完成后保留登记并改为 `idle`;后续原范围返工继续使用原 ID。重要业务结论必须写入对应业务、验收或进度文档。
- 跨任务共享契约由总控记录;独立任务回复必须带回自身 `routing_key`、`task_id`、`parent_routing_key`、状态、变更文件、验证结果、阻断项和建议下一步。
## 通信与汇总格式
总控下发消息至少包含:
```text
role: controller | independent_task
routing_key: <长期职责键>
task_id: <已登记 ID>
parent_routing_key: <所属总控键;总控自身填 self>
目标: <单一交付目标>
范围: <目录/模块>
共享契约: <依赖的接口、模型或文件>
回传: <状态、变更文件、验证命令/结果、阻断项>
```
汇总时按 `routing_key + task_id` 聚合,不按 display_name 聚合;同一 ID 的最新状态覆盖旧状态,但保留重要阻断和验证记录。
汇总时按 `parent_routing_key → routing_key + task_id` 聚合,不按 display_name 聚合;同一 ID 的最新状态覆盖旧状态,但保留重要阻断和验证记录。总控验收回传、更新整体计划后,再决定向原任务返工或安排下一项工作。