| name | edict-orchestrator |
| description | 三省六部任务状态机执行入口——唯一允许推进状态、追加 flow_log/progress_log 的 skill;所有变更通过 edict_tasks_api.py 完成 |
| version | 0.1.0 |
| tags | ["edict","scheduler","state-machine"] |
Edict Orchestrator
你是三省六部任务编排的执行入口。任何对任务状态、流转记录、进展汇报的修改都必须通过本 skill 所规定的 edict_tasks_api.py 子命令完成,不得直接使用 write_file 修改 .edict/edict-tasks.json。
- 只读查看:可用
read_file 读取 .edict/edict-tasks.json 查看当前任务列表与状态。
- 任何写入/推进:一律在项目根目录执行
python .edict/scripts/edict_tasks_api.py <子命令> ...(脚本由 edict 插件复制到当前项目 .edict/scripts/,或来自 edict-opencode 仓库)。
状态与负责人
| 任务 state | 负责 agent(caller_agent) | 可执行操作 |
|---|
| Pending | taizi | advance → Taizi |
| Taizi | taizi | advance → Zhongshu |
| Zhongshu | zhongshu | advance → Menxia;progress |
| Menxia | menxia | review approve/reject |
| Assigned | shangshu | advance → Doing;progress |
| Doing/Next | 由 task.org 对应六部 | advance → Review;progress |
| Review | shangshu | advance → Done;progress |
权限:只有当前状态的负责 agent 才能对该任务执行 advance/review;progress 由当前负责该任务的 agent 汇报。跨 agent 调用需符合 agent_config.json 的 allowAgents(可用 can_dispatch_to 子命令校验)。
子命令与用法
在项目根目录执行(以下 TASK_ID、CALLER 等为占位,替换为实际值)。
1. create — 创建任务(下旨)
2. advance — 按状态机推进
- 何时用:当前负责 agent 完成本阶段工作,将任务推进到下一状态(如太子分拣完 → Zhongshu,中书起草完 → Menxia)。
- 命令:
python .edict/scripts/edict_tasks_api.py advance TASK_ID CALLER_AGENT [--remark "说明"]
- 约束:
CALLER_AGENT 必须与任务当前 state 的负责人一致(见上表),否则脚本返回错误。
- 示例:
python .edict/scripts/edict_tasks_api.py advance JJC-20260311-001 taizi --remark "分拣完毕,转中书省"
python .edict/scripts/edict_tasks_api.py advance JJC-20260311-001 zhongshu --remark "方案已提交门下审议"
3. review — 门下审议(准奏/封驳)
4. flow — 仅追加流转记录(不改 state)
5. progress — 汇报进展(追加 progress_log)
- 何时用:当前负责 agent 汇报工作进展、或更新待办快照(todos)。
- 命令:
python .edict/scripts/edict_tasks_api.py progress TASK_ID CALLER_AGENT "进展说明文本" [--todos "1.事项一|2.事项二|3.事项三"]
- todos 格式:用
| 分隔多项;可用 ✅/completed、🔄/in-progress 等表示状态,例如 1.需求分析✅|2.方案设计🔄|3.待审议。
- 示例:
python .edict/scripts/edict_tasks_api.py progress JJC-20260311-001 zhongshu "已完成需求分析,拟定三层方案" --todos "1.需求分析✅|2.方案设计✅|3.待门下审议"
6. stop — 叫停(可恢复)
7. resume — 恢复
8. cancel — 取消(不可恢复)
9. can_dispatch_to — 权限校验
执行流程建议
- 先读任务:
read_file 查看 .edict/edict-tasks.json,确认目标任务的 id、state、org。
- 确认身份:确认你当前扮演的 agent(caller_agent)是否与该 state 的负责人一致;若需调用其他 agent,先运行
can_dispatch_to 当前 目标 校验。
- 执行一次变更:根据用户意图或本阶段完成情况,选择上述一个子命令,在项目根目录执行。
- 根据输出:脚本打印 OK 或状态变化;若报错,根据 stderr 修正(如 caller 不符、state 已终态等)。
禁止行为
- 不要用
write_file 或任何方式直接修改 .edict/edict-tasks.json 的 state、flow_log、progress_log、_scheduler。
- 不要跳过门下审议:中书完成方案后必须 advance 到 Menxia,由 menxia 执行 review,不能直接 advance 到 Assigned。
- 不要越权:advance/review 的 caller_agent 必须与当前状态负责人一致;跨 agent 派发需在 allowAgents 内。