diff --git a/plans/TASKLIST.md b/plans/TASKLIST.md new file mode 100644 index 0000000..0dbca8e --- /dev/null +++ b/plans/TASKLIST.md @@ -0,0 +1,121 @@ +# TASKLIST.md + +> 说明:如果某个进行中的 Task 没有完全完成,或者在执行过程中遇到 block,需要在该 Task 下继续拆分若干子 TODO item:本次开发中已经完成的部分标记为已完成,block / pending / 尚未完成的部分标记为未完成。 + +--- + +# TODOLIST + +- [ ] Task 1:整理并确认 Calendar / Proposal / Essential 的整体边界 + - [ ] 明确 Calendar 系统与 Proposal / Essential 结构调整的耦合边界 + - [ ] 确认哪些内容属于“本波开发必须实现” + - [ ] 确认哪些内容仅保留为设计备注或后续规划 + +- [ ] Task 2:设计 Calendar 数据模型 + - [ ] 设计 `TimeSlot` 表结构 + - [ ] 设计 `SchedulePlan` 表结构 + - [ ] 设计 `MinimumWorkload` 存储方案 + - [ ] 设计 `slot_id` / plan 虚拟 slot 的标识策略 + - [ ] 定义 `event_type` 与 `event_data` 的结构约束 + +- [ ] Task 3:设计 Agent 日程唤醒与状态流转 + - [ ] 定义插件心跳请求 / 响应格式 + - [ ] 定义待执行 slot 的筛选规则 + - [ ] 定义 Agent Idle / Busy / OnCall / Exhausted / Offline 的状态流转 + - [ ] 定义多 slot 冲突时的优先级与 deferred 规则 + - [ ] 定义 Exhausted 状态的进入条件与恢复策略 + +- [ ] Task 4:实现 Calendar 后端模型与数据库迁移 + - [ ] 新增 Calendar 相关模型 + - [ ] 新增数据库迁移或启动自修复逻辑 + - [ ] 处理 plan 物化与真实 slot 持久化逻辑 + - [ ] 处理不可编辑过去 slot 的限制 + +- [ ] Task 5:实现 Calendar 后端 API + - [ ] 实现单次日程创建接口 + - [ ] 实现日程查看接口 + - [ ] 实现日程编辑接口 + - [ ] 实现日程取消接口 + - [ ] 实现周期计划创建 / 编辑 / 取消 / 列表接口 + - [ ] 实现 overlap 检测 + - [ ] 实现 MinimumWorkload warning 机制 + +- [ ] Task 6:实现 Calendar CLI + - [ ] 实现 `hf calendar schedule` + - [ ] 实现 `hf calendar show` + - [ ] 实现 `hf calendar cancel` + - [ ] 实现 `hf calendar edit` + - [ ] 实现 `hf calendar date-list` + - [ ] 实现 `hf calendar plan-schedule` + - [ ] 实现 `hf calendar plan-list` + - [ ] 实现 `hf calendar plan-cancel` + - [ ] 实现 `hf calendar plan-edit` + +- [ ] Task 7:实现 Proposal 重命名为 Proposal 的后端改造 + - [ ] 将 `Propose` 概念统一重命名为 `Proposal` + - [ ] 调整后端模型 / schema / router 命名 + - [ ] 调整前端页面与 API 调用命名 + - [ ] 调整 CLI / 文档 / 测试中的命名 + - [ ] 处理兼容迁移策略(如旧接口别名或数据兼容) + +- [ ] Task 8:设计并实现 Essential 数据模型 + - [ ] 新增 `Essential` 实体 + - [ ] 定义 `Essential` 与 `Proposal` 的关系 + - [ ] 定义 `Essential.type` 枚举:`feature` / `improvement` / `refactor` + - [ ] 设计 `EssentialCode` 编码规则 + - [ ] 实现 `EssentialCode` 自动生成逻辑 + +- [ ] Task 9:实现 Proposal / Essential 后端 API + - [ ] 实现 Proposal 下 Essential 的创建接口 + - [ ] 实现 Proposal 下 Essential 的编辑接口 + - [ ] 实现 Proposal 下 Essential 的删除接口 + - [ ] 实现 Proposal 详情中 Essential 列表返回 + - [ ] 实现 Proposal Accept 时选择目标 Milestone 的能力 + +- [ ] Task 10:重构 Proposal Accept 工作流 + - [ ] 移除“Accept 后生成单个 `story/feature` task”的旧逻辑 + - [ ] 改为遍历 Proposal 下所有 Essential + - [ ] 按 Essential 类型生成对应 `story/*` task + - [ ] 将生成的 task 统一挂到选定 Milestone + - [ ] 记录 Proposal 与生成 task 的追踪关系 + - [ ] 处理 Accept 时的事务一致性与失败回滚 + +- [ ] Task 11:收紧 Story 创建规则 + - [ ] 将 `story` 整个大类设为 restricted + - [ ] 禁止通过通用 task create endpoint 直接创建任意 `story/*` + - [ ] 仅允许通过 `Proposal Accept` 创建 `story/*` + - [ ] 调整前端 Task 创建页面,隐藏或禁用 story 创建入口 + - [ ] 调整 CLI 创建逻辑与错误提示 + +- [ ] Task 12:实现 Calendar 前端页面 + - [ ] 设计日历页展示结构 + - [ ] 实现某日 slot 列表展示 + - [ ] 实现计划列表展示 + - [ ] 实现新增 / 编辑 / 取消日程交互 + - [ ] 实现 overlap / warning / deferred 状态提示 + +- [ ] Task 13:实现 Proposal / Essential 前端页面 + - [ ] 调整 Proposal 列表与详情页命名 + - [ ] 在 Proposal 详情页增加 Essential 列表区域 + - [ ] 支持新增 / 编辑 / 删除 Essential + - [ ] 在 Accept 流程中增加目标 Milestone 选择 + - [ ] 展示 Accept 后生成的 story task 结果 + +- [ ] Task 14:实现 acc-mgr 禁止修改密码的修复 + - [ ] 后端禁止修改 acc-mgr 密码 + - [ ] 前端隐藏 acc-mgr 修改密码入口 + - [ ] 补充测试覆盖该限制 + +- [ ] Task 15:补齐测试 + - [ ] 补充 Calendar 模型 / API / CLI 测试 + - [ ] 补充 Proposal / Essential 工作流测试 + - [ ] 补充 Story restricted 相关测试 + - [ ] 补充 Proposal Accept 批量生成 story task 测试 + - [ ] 补充 acc-mgr 密码限制测试 + +- [ ] Task 16:补齐文档与迁移说明 + - [ ] 更新后端开发文档 + - [ ] 更新前端交互说明 + - [ ] 更新 CLI 使用文档 + - [ ] 补充 Proposal / Essential / Story restricted 的迁移说明 + - [ ] 补充本波开发完成后的验收清单