# 开发路线图 ## 当前阶段:V2.1 — 服务端持久化第一阶段 业务流程仍保持 V1 的前端 store 形状,但业务数据主存储已切到 NestJS + PostgreSQL `app_data` 文档表。浏览器只保留登录态,不再保存产品、项目、版本、需求、版本详情、成员、任务类型等业务数据。 ### 已完成(按时间倒序) **2026-07-02** - `app_data` 读写增加乐观锁版本:`GET` 返回 `version`,前端保存携带最近版本,后端用 `key + updatedAt` 原子更新 - stale version / create race 返回 `409 APP_DATA_CONFLICT`,阻止多人同时编辑时的静默覆盖 - 新增后端 AppData 并发写入回归测试和前端 `server-data` 版本缓存测试 **2026-07-01** - 补齐云服务器生产部署基线:`Dockerfile.web`、`Dockerfile.server`、`docker-compose.prod.yml`、Nginx 反代模板和 `.env.production.example` - 补齐本地服务器/局域网部署基线:`docker-compose.local.yml`、`.env.local-server.example`、`deploy:local:*` 脚本 - 新增生产数据库初始化 migration,并提供 `pnpm db:deploy` / `pnpm --filter server db:deploy` - 新增 `pnpm deploy:verify` 校验生产部署文件完整性 - 新增 `docs/deployment.md`,覆盖本地开发、云服务器部署、升级、备份和排查流程 **2026-06-24** - 新增 NestJS `DataModule` + Prisma `AppData`,提供 `GET/PUT /api/v1/data/:key` - 产品/项目/版本树、需求池、调研/产品方案/UI、开发任务、测试用例、Bug 改为服务端持久化 - 成员/角色/部门、任务类型、任务工时日志、加班记录改为服务端持久化 - 登录改为读取服务端成员数据;浏览器只保留登录会话 **2026-06-16** - 项目模块顶部卡片(总版本数/已开发/需求数/Bug 总数) - 项目模块版本记录与版本详情数据联动(耗时 + 状态胶囊) - 4 份核心文档:architecture / decisions / workflow / roadmap **2026-06-15** - 与我相关:产品/项目/版本树筛选 + 红色待办徽标 - 与我相关:点击卡片打开 Drawer(PlanDetailDrawer 新建,DevTask/TestCase/Bug 复用) - 全局 Drawer 阴影统一 shadow-2xl + 顶部上下文条 - 测试用例提 Bug 流程:drawer 内点击 → BugCreateModal - DevTask + TestCase 转交功能(人员离职场景) - 需求池:录入人员自动取当前用户 + 状态列改名(业务状态 / 实际进度) - 产品页面:去掉规划中、项目名/版本胶囊可点击跳转 **2026-06-14** - 需求变更模块:变更人员/原因/概述/详细 + 概览统计(变更人员排名 + 原因占比饼图) - 计划任务转交(未开始/进行中可转交,从参与人员选) - 关联需求增强:描述列 hover 完整内容、需求类型/变更原因/添加日期列 - 计划时间精确到分钟(datetime-local)+ 到期自动开始 - 阶段耗时 + 个人耗时排名(涵盖调研/产品/UI/开发/测试 5 类工作) **2026-06-13** - DevTask 状态简化:去掉 done,submitted 是终态 - 实际工时改为精确时间戳计算(精确到 0.5h) - TestCase 主归属版本,requirement 改为可选标签 - Bug 直接挂版本(versionId 字段) - linkage-engine(需求 ↔ DevTask 派生) - workspace-engine(统一 WorkItem 聚合) **2026-06-12 及更早** - 完整模块:需求池/版本管理/计划任务(调研/产品/UI)/开发任务/测试用例/Bug - 加班记录 + 排名 + 原因占比饼图 - 健康度计算 + 风险标签 - 版本执行态自动推导 ### 进行中 - 项目详情页 VersionCard 状态胶囊数据联动(部分已完成) ## V2 — 后端接入 NestJS + Prisma + PostgreSQL 已开始接入。第一阶段先用 `app_data` JSONB 文档表承接现有 store 数据形状,避免浏览器清站点数据导致业务数据丢失;第二阶段再逐步拆成关系表。 ### 关键任务 1. **服务端文档层**:`app_data` + `/api/v1/data/:key`(第一阶段已实现) 2. **localStorage → API 切换**:业务主数据不再写浏览器(第一阶段已实现) 3. **运行 Prisma 同步/迁移**:本地和服务器数据库都需要创建 `app_data` 4. **关系化拆表**:把稳定模块从 JSONB 拆成 Product/Project/Version/Task 等领域表 5. **认证**:NextAuth.js + JWT 6. **权限**:RBAC(Owner/Admin/Member/Viewer),按项目/版本级别 7. **版本规则引擎收敛**:VersionPlan 完成条件、关联需求候选、TaskCategory 语义码、TestCase.categoryId 统一收束到规则层 ### 数据迁移策略 当前不做本地导入导出。清站点数据后浏览器旧数据无法恢复,后续新增数据直接写入 PostgreSQL。若以后需要迁移旧浏览器数据,再单独做管理员导入工具。 ## V3 — AI Agent 集成 详细 Agent 规范见 `agent-spec.md`。本节只列规划,不重复 Agent 实现细节。 ### V3.1 — Prototype Decompose Agent(首个 Agent) **目标**:从产品方案的原型 + 关联需求,拆解出开发任务草案 + 测试用例草案;原型中明确可拆但没有匹配到关联需求的内容,按无需求ID分组进入任务/用例,不补需求池。 **已完成的数据底座**(2026-06): - DevTask / TestCase 加 references[] + aiDraft + aiDraftAt - 创建表单加「原型批注」字段 - 列表中 AI 草案视觉区分(紫色边 + 徽章) - 编辑后自动清除 aiDraft 标记 - agent-spec.md / glossary.md 文档落地 - 约定:原型链接 = 产品方案 (VersionPlan type=product) 已完成计划的 resultUrl,不在 Version 上独立存储 **待实现**: 1. 后端 `AiGateway` + `PrototypeDecomposeService`(NestJS module) 2. 前端「AI 拆解任务和用例」按钮(产品方案 Tab) 3. 对账报告组件(弹窗呈现:完美对应 / 需求未见原型 / 无需求ID分组 / 含糊) 4. 用户确认后批量创建 DevTask + TestCase 草案 5. DevTask 增加 `versionId`,`requirementId` 改为可选,兼容旧数据通过需求反查版本 6. AiLog 表(调用记录、token 计量、用时) **MVP 范围限制**: - 不自动分配 assignee(留给用户在草案上手填) - 不做"上一版基准 diff"(按 decisions.md #17 决议) - 单 Agent 单 Round,不做多 Agent 编排 ### V3.2 — 小宝预警 / Risk Watch Agent 小宝预警以版本发版风险为核心,先通过规则引擎计算风险分、趋势、静默风险、预计可发日期和置信度,再由 Risk Watch Agent 自动解释高风险版本。第一版已落地页面触发模式:打开 `/xiaobao-warning` 时保存当天快照,并在满足触发条件时自动生成 AI 解读。 当前不做后台定时 Agent。后续如果需要主动通知,再在已有 `xiaobao-risk-snapshots` 和 `xiaobao-risk-insights` 基础上增加定时巡检与消息推送。 **Schedule Suggest Agent**:基于成员负载和历史耗时,建议下一阶段任务分配,仍作为后续候选。 **多 Agent 协作设计**:等 Risk Watch 与 Schedule Suggest 都稳定后再设计编排策略。 ### V3.3 — 其他场景候选 1. 需求智能分类(自动归档到产品 / 项目) 2. 健康度智能解读(数据指标 → 自然语言报告) 3. 需求转任务(需求采纳后一键生成 DevTask 草稿) ### 落地约束 - **不直接动数据**:所有 Agent 写入必须带 `aiDraft: true`,用户编辑后才转正 - **必须有引用**:所有 AI 产物带 references,用户能追溯到源头 - **必须有对账报告**:拆解类 Agent 输出前端展示结构化报告,让用户决策 - **不补需求池**:无需求ID分组只进入 DevTask/TestCase,不创建 Requirement,不加入关联需求列表 - **可降级**:原型不可达 / 输入数据不全 / 模型超时,明确告知用户失败原因,不写入任何数据 ## 不在路线图(明确不做) - **Jira/TAPD 替代品**:定位是产品/项目经理视角,不是开发任务管理 - **测试套件/测试计划**:测试用例是版本验收手段,不做完整测试管理 - **Gantt 甘特图**:现有的胶囊状态条 + 阶段耗时已经够用 - **看板视图**:DevTask 列表 + 筛选 + 状态流转已够用 - **回归测试**:测试用例不做版本间复用 - **客户/合同管理**:超出研发管理边界 ## 关键里程碑 | 节点 | 状态 | |------|------| | V1 业务流程打磨 | 进行中 | | V1 朋友试用反馈 | 持续中 | | V2 后端接入 | 进行中(V2.1 AppData 已实现) | | V3 AI 集成 | 等 V2 数据沉淀 | | 公开发布 | TBD | **2026-06-26** - Workspace daily report upgraded from manual worklog summary to mixed activity aggregation. - Added `work-activities` AppData key and a typed activity factory for VersionPlan, DevTask, TestCase, and Bug actions. - `/workspace` daily report now groups delivery/progress/creation/risk/progress-note records and flags in-progress work that needs today's progress update.