# 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 的迁移说明 - [ ] 补充本波开发完成后的验收清单