refactor #22
@@ -3,18 +3,18 @@
|
|||||||
## A. CSM / Discussion Callback
|
## A. CSM / Discussion Callback
|
||||||
|
|
||||||
### A1. 需求与方案冻结
|
### A1. 需求与方案冻结
|
||||||
- [ ] 通读并确认 `plans/CSM.md` 中的 MVP 范围、非目标和边界条件
|
- [. ] 通读并确认 `plans/CSM.md` 中的 MVP 范围、非目标和边界条件
|
||||||
- [ ] 确认 CSM 第一版只新增一条对外工具:`discuss-callback`
|
- [. ] 确认 CSM 第一版只新增一条对外工具:`discuss-callback`
|
||||||
- [ ] 确认 `discord_channel_create` 仅做参数扩展,不改变普通建频道行为
|
- [. ] 确认 `discord_channel_create` 仅做参数扩展,不改变普通建频道行为
|
||||||
- [ ] 确认讨论结束后的 session 级 no-reply 覆盖继续沿用现有插件机制
|
- [. ] 确认讨论结束后的 session 级 no-reply 覆盖继续沿用现有插件机制
|
||||||
- [ ] 确认 `summaryPath` 的合法范围仅限发起讨论 Agent 的 workspace
|
- [. ] 确认 `summaryPath` 的合法范围仅限发起讨论 Agent 的 workspace
|
||||||
- [ ] 确认 discussion metadata 是否仅做内存态,还是需要落盘恢复
|
- [. ] 确认 discussion metadata 是否仅做内存态,还是需要落盘恢复
|
||||||
|
|
||||||
### A2. 模块拆分与落点确认
|
### A2. 模块拆分与落点确认
|
||||||
- [ ] 确认 `plugin/tools/register-tools.ts` 负责:
|
- [. ] 确认 `plugin/tools/register-tools.ts` 负责:
|
||||||
- [ ] 扩展 `discord_channel_create`
|
- [. ] 扩展 `discord_channel_create`
|
||||||
- [ ] 注册 `discuss-callback`
|
- [. ] 注册 `discuss-callback`
|
||||||
- [ ] 确认 `plugin/core/` 下新增 discussion metadata 管理模块
|
- [. ] 确认 `plugin/core/` 下新增 discussion metadata 管理模块
|
||||||
- [ ] 确认 `plugin/core/moderator-discord.ts` 继续负责 moderator 发消息能力
|
- [ ] 确认 `plugin/core/moderator-discord.ts` 继续负责 moderator 发消息能力
|
||||||
- [ ] 确认 `plugin/turn-manager.ts` 仅负责 turn 状态与轮转,不直接承担业务文案拼接
|
- [ ] 确认 `plugin/turn-manager.ts` 仅负责 turn 状态与轮转,不直接承担业务文案拼接
|
||||||
- [ ] 确认 discussion 业务编排逻辑应放在新模块,而不是散落到多个 hook 中
|
- [ ] 确认 discussion 业务编排逻辑应放在新模块,而不是散落到多个 hook 中
|
||||||
@@ -133,16 +133,16 @@
|
|||||||
- [x] 确保 session 生命周期结束后相关缓存可清理
|
- [x] 确保 session 生命周期结束后相关缓存可清理
|
||||||
|
|
||||||
### A8. `plugin/core/identity.ts` / `plugin/core/channel-members.ts` / `plugin/core/turn-bootstrap.ts`
|
### A8. `plugin/core/identity.ts` / `plugin/core/channel-members.ts` / `plugin/core/turn-bootstrap.ts`
|
||||||
- [ ] 梳理 initiator identity 的可获取路径
|
- [. ] 梳理 initiator identity 的可获取路径
|
||||||
- [ ] 确认 callback 时如何稳定识别 initiator account/session
|
- [. ] 确认 callback 时如何稳定识别 initiator account/session
|
||||||
- [ ] 确认 discussion channel 创建后 turn order 是否需立即 bootstrap
|
- [. ] 确认 discussion channel 创建后 turn order 是否需立即 bootstrap
|
||||||
- [ ] 确认 discussion participant 的成员集合获取方式是否可直接复用现有逻辑
|
- [. ] 确认 discussion participant 的成员集合获取方式是否可直接复用现有逻辑
|
||||||
|
|
||||||
### A9. `plugin/index.ts`
|
### A9. `plugin/index.ts`
|
||||||
- [ ] 注入新增 discussion metadata/service 模块依赖
|
- [. ] 注入新增 discussion metadata/service 模块依赖
|
||||||
- [ ] 将 discussion service 传入工具注册逻辑
|
- [. ] 将 discussion service 传入工具注册逻辑
|
||||||
- [ ] 将 discussion 相关辅助能力传入需要的 hooks
|
- [. ] 将 discussion 相关辅助能力传入需要的 hooks
|
||||||
- [ ] 保持插件初始化结构清晰,避免在 `index.ts` 中堆业务细节
|
- [. ] 保持插件初始化结构清晰,避免在 `index.ts` 中堆业务细节
|
||||||
|
|
||||||
### A10. moderator 消息模板整理
|
### A10. moderator 消息模板整理
|
||||||
#### A10.1 kickoff message
|
#### A10.1 kickoff message
|
||||||
@@ -152,9 +152,9 @@
|
|||||||
- [x] 模板中明确 `discuss-callback(summaryPath)` 调用要求
|
- [x] 模板中明确 `discuss-callback(summaryPath)` 调用要求
|
||||||
|
|
||||||
#### A10.2 idle reminder
|
#### A10.2 idle reminder
|
||||||
- [ ] 定稿 discussion idle 模板
|
- [. ] 定稿 discussion idle 模板
|
||||||
- [ ] 模板中提醒 initiator:写总结文件并 callback
|
- [. ] 模板中提醒 initiator:写总结文件并 callback
|
||||||
- [ ] 避免提醒文案歧义或像自动总结器
|
- [. ] 避免提醒文案歧义或像自动总结器
|
||||||
|
|
||||||
#### A10.3 origin callback message
|
#### A10.3 origin callback message
|
||||||
- [x] 定稿发回原工作 channel 的结果通知模板
|
- [x] 定稿发回原工作 channel 的结果通知模板
|
||||||
@@ -163,8 +163,8 @@
|
|||||||
- [x] 模板中明确“继续基于该总结文件推进原任务”
|
- [x] 模板中明确“继续基于该总结文件推进原任务”
|
||||||
|
|
||||||
#### A10.4 closed reply
|
#### A10.4 closed reply
|
||||||
- [ ] 定稿 closed channel 固定回复模板
|
- [. ] 定稿 closed channel 固定回复模板
|
||||||
- [ ] 明确 channel 已关闭,仅做留档使用
|
- [. ] 明确 channel 已关闭,仅做留档使用
|
||||||
|
|
||||||
### A11. `discuss-callback` 详细校验任务
|
### A11. `discuss-callback` 详细校验任务
|
||||||
- [x] 校验当前 channel 必须是 discussion channel
|
- [x] 校验当前 channel 必须是 discussion channel
|
||||||
@@ -187,10 +187,10 @@
|
|||||||
|
|
||||||
### A13. 测试与文档收尾
|
### A13. 测试与文档收尾
|
||||||
#### A13.1 工具层测试
|
#### A13.1 工具层测试
|
||||||
- [ ] 测试普通 `discord_channel_create` 不带新参数时行为不变
|
- [. ] 测试普通 `discord_channel_create` 不带新参数时行为不变
|
||||||
- [ ] 测试 `discord_channel_create` 带 `callbackChannelId` 但缺 `discussGuide` 时失败
|
- [. ] 测试 `discord_channel_create` 带 `callbackChannelId` 但缺 `discussGuide` 时失败
|
||||||
- [ ] 测试 discussion 模式 channel 创建成功
|
- [. ] 测试 discussion 模式 channel 创建成功
|
||||||
- [ ] 测试 `discuss-callback` 注册成功并可调用
|
- [. ] 测试 `discuss-callback` 注册成功并可调用
|
||||||
|
|
||||||
#### A13.2 metadata / service 测试
|
#### A13.2 metadata / service 测试
|
||||||
- [x] 测试 discussion metadata 创建成功
|
- [x] 测试 discussion metadata 创建成功
|
||||||
@@ -199,10 +199,10 @@
|
|||||||
- [x] 测试重复 callback 被拒绝
|
- [x] 测试重复 callback 被拒绝
|
||||||
|
|
||||||
#### A13.3 turn / hook 测试
|
#### A13.3 turn / hook 测试
|
||||||
- [ ] 测试 discussion channel 空转后发送 idle reminder
|
- [. ] 测试 discussion channel 空转后发送 idle reminder
|
||||||
- [ ] 测试普通 channel 空转逻辑不受影响
|
- [. ] 测试普通 channel 空转逻辑不受影响
|
||||||
- [ ] 测试 callback 成功后 discussion channel 不再 handoff
|
- [. ] 测试 callback 成功后 discussion channel 不再 handoff
|
||||||
- [ ] 测试 closed discussion channel 新消息不会继续唤醒 Agent
|
- [. ] 测试 closed discussion channel 新消息不会继续唤醒 Agent
|
||||||
|
|
||||||
#### A13.4 路径校验测试
|
#### A13.4 路径校验测试
|
||||||
- [x] 测试合法 `summaryPath` 通过
|
- [x] 测试合法 `summaryPath` 通过
|
||||||
@@ -212,27 +212,27 @@
|
|||||||
- [x] 测试绝对路径越界失败
|
- [x] 测试绝对路径越界失败
|
||||||
|
|
||||||
#### A13.5 回调链路测试
|
#### A13.5 回调链路测试
|
||||||
- [ ] 测试 callback 成功后 moderator 在 origin channel 发出通知
|
- [. ] 测试 callback 成功后 moderator 在 origin channel 发出通知
|
||||||
- [ ] 测试 origin channel 收到路径后能继续原工作流
|
- [. ] 测试 origin channel 收到路径后能继续原工作流
|
||||||
- [ ] 测试 discussion channel 后续只保留留档行为
|
- [. ] 测试 discussion channel 后续只保留留档行为
|
||||||
|
|
||||||
#### A13.6 文档交付
|
#### A13.6 文档交付
|
||||||
- [ ] 根据最终代码实现更新 `plans/CSM.md`
|
- [. ] 根据最终代码实现更新 `plans/CSM.md`
|
||||||
- [ ] 为 `discord_channel_create` 新增参数补文档
|
- [. ] 为 `discord_channel_create` 新增参数补文档
|
||||||
- [ ] 为 `discuss-callback` 补工具说明文档
|
- [. ] 为 `discuss-callback` 补工具说明文档
|
||||||
- [ ] 补 discussion metadata 与状态机说明
|
- [. ] 补 discussion metadata 与状态机说明
|
||||||
- [ ] 补开发/调试说明
|
- [. ] 补开发/调试说明
|
||||||
- [ ] 输出 MVP 验收清单
|
- [. ] 输出 MVP 验收清单
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## B. Multi-Message Mode / Shuffle Mode
|
## B. Multi-Message Mode / Shuffle Mode
|
||||||
|
|
||||||
### B1. 方案整理
|
### B1. 方案整理
|
||||||
- [ ] 通读并确认 `plans/CHANNEL_MODES_AND_SHUFFLE.md`
|
- [. ] 通读并确认 `plans/CHANNEL_MODES_AND_SHUFFLE.md`
|
||||||
- [ ] 确认 Multi-Message Mode 与 Shuffle Mode 的 MVP 范围
|
- [. ] 确认 Multi-Message Mode 与 Shuffle Mode 的 MVP 范围
|
||||||
- [ ] 确认两项能力是否都只做 channel 级 runtime state,不立即落盘
|
- [. ] 确认两项能力是否都只做 channel 级 runtime state,不立即落盘
|
||||||
- [ ] 明确它们与 discussion channel / waiting-for-human / dormant 的优先级关系
|
- [. ] 明确它们与 discussion channel / waiting-for-human / dormant 的优先级关系
|
||||||
|
|
||||||
### B2. 配置与 schema
|
### B2. 配置与 schema
|
||||||
#### B2.1 `plugin/openclaw.plugin.json`
|
#### B2.1 `plugin/openclaw.plugin.json`
|
||||||
@@ -240,7 +240,7 @@
|
|||||||
- [x] 增加 `multiMessageEndMarker`
|
- [x] 增加 `multiMessageEndMarker`
|
||||||
- [x] 增加 `multiMessagePromptMarker`
|
- [x] 增加 `multiMessagePromptMarker`
|
||||||
- [x] 为新增配置设置默认值:`↗️` / `↙️` / `⤵️`
|
- [x] 为新增配置设置默认值:`↗️` / `↙️` / `⤵️`
|
||||||
- [ ] 评估是否需要增加 shuffle 默认配置项
|
- [. ] 评估是否需要增加 shuffle 默认配置项
|
||||||
|
|
||||||
#### B2.2 `plugin/rules.ts` / config 类型
|
#### B2.2 `plugin/rules.ts` / config 类型
|
||||||
- [x] 为 multi-message mode 相关配置补类型定义
|
- [x] 为 multi-message mode 相关配置补类型定义
|
||||||
@@ -316,29 +316,29 @@
|
|||||||
|
|
||||||
### B10. 测试
|
### B10. 测试
|
||||||
#### B10.1 Multi-Message Mode
|
#### B10.1 Multi-Message Mode
|
||||||
- [ ] 测试 human 发送 start marker 后进入 multi-message mode
|
- [. ] 测试 human 发送 start marker 后进入 multi-message mode
|
||||||
- [ ] 测试 multi-message mode 中 Agent 被 no-reply 覆盖
|
- [. ] 测试 multi-message mode 中 Agent 被 no-reply 覆盖
|
||||||
- [ ] 测试每条 human 追加消息都触发 prompt marker
|
- [. ] 测试每条 human 追加消息都触发 prompt marker
|
||||||
- [ ] 测试 human 发送 end marker 后退出 multi-message mode
|
- [. ] 测试 human 发送 end marker 后退出 multi-message mode
|
||||||
- [ ] 测试退出后 moderator 正确 handoff 给下一位 Agent
|
- [. ] 测试退出后 moderator 正确 handoff 给下一位 Agent
|
||||||
- [ ] 测试 moderator prompt marker 不会触发回环
|
- [. ] 测试 moderator prompt marker 不会触发回环
|
||||||
|
|
||||||
#### B10.2 Shuffle Mode
|
#### B10.2 Shuffle Mode
|
||||||
- [ ] 测试 `/turn-shuffling on/off` 生效
|
- [. ] 测试 `/turn-shuffling on/off` 生效
|
||||||
- [ ] 测试 shuffling 关闭时 turn order 不变
|
- [. ] 测试 shuffling 关闭时 turn order 不变
|
||||||
- [ ] 测试 shuffling 开启时每轮结束后会 reshuffle
|
- [. ] 测试 shuffling 开启时每轮结束后会 reshuffle
|
||||||
- [ ] 测试上一轮最后 speaker 不会成为下一轮第一位
|
- [. ] 测试上一轮最后 speaker 不会成为下一轮第一位
|
||||||
- [ ] 测试双 Agent 场景行为符合预期
|
- [. ] 测试双 Agent 场景行为符合预期
|
||||||
- [ ] 测试单 Agent 场景不会异常
|
- [. ] 测试单 Agent 场景不会异常
|
||||||
|
|
||||||
#### B10.3 兼容性测试
|
#### B10.3 兼容性测试
|
||||||
- [ ] 测试 multi-message mode 与 waiting-for-human 的边界
|
- [. ] 测试 multi-message mode 与 waiting-for-human 的边界
|
||||||
- [ ] 测试 multi-message mode 与 mention override 的边界
|
- [. ] 测试 multi-message mode 与 mention override 的边界
|
||||||
- [ ] 测试 shuffle mode 与 dormant 状态的边界
|
- [. ] 测试 shuffle mode 与 dormant 状态的边界
|
||||||
- [ ] 测试 shuffle mode 与 mention override 的边界
|
- [. ] 测试 shuffle mode 与 mention override 的边界
|
||||||
|
|
||||||
### B11. 文档收尾
|
### B11. 文档收尾
|
||||||
- [ ] 根据最终实现更新 `plans/CHANNEL_MODES_AND_SHUFFLE.md`
|
- [. ] 根据最终实现更新 `plans/CHANNEL_MODES_AND_SHUFFLE.md`
|
||||||
- [ ] 为新增配置项补文档
|
- [. ] 为新增配置项补文档
|
||||||
- [ ] 为 `/turn-shuffling` 补使用说明
|
- [. ] 为 `/turn-shuffling` 补使用说明
|
||||||
- [ ] 输出 Multi-Message Mode / Shuffle Mode 的验收清单
|
- [. ] 输出 Multi-Message Mode / Shuffle Mode 的验收清单
|
||||||
|
|||||||
Reference in New Issue
Block a user