From a164725e4a8cb8bd12b041e79674e4ddce3830a2 Mon Sep 17 00:00:00 2001 From: Stev_Wang <304865932@qq.com> Date: Thu, 5 Nov 2026 11:57:48 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20=E8=A1=A5=E9=BD=90=20A6=20WBS=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景:A6 阶段完成状态已在计划头部、批次总表、§6.7 执行状态、§7.6 与 M0 清单标注,但 §6.7 的 WBS 明细表沿用了 A2 表的旧格式、缺少「状态」列,容易被误读为未标注完成。 改动:§6.7 WBS 表新增「状态」列,9 项 A6-BE-01~05 / A6-INF-01 / A6-FE-01~02 / A6-QA-01 全部置为 ✅。 影响面:仅文档;无代码行为变化。 回滚:撤销提交恢复原表。 验证:pnpm format:check 通过;与相邻 A0/A1/A3/A4/A5 WBS 表列结构一致。 --- .../灵犀_信息流素材生产平台_开发计划_V0.1.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md b/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md index 23f355e..293085b 100644 --- a/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md +++ b/docs/开发计划/灵犀_信息流素材生产平台_开发计划_V0.1.md @@ -643,17 +643,17 @@ PRD §7 把 **M-27(素材元素级拆解)** 与「自动字幕 → TTS 配 > **执行状态:✅ 已完成(2026-11-05)**。以下 9 项 WBS 全部交付并实测;前端按用户选定 **方案 A · 经典管理台** 落地;实现记录、验收证据与遗留见 [A6 实施报告](./灵犀_A6任务中心与队列骨架_实施报告_V0.1.md)。 -| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD | -| --- | --- | --- | --- | --- | --- | --- | -| A6-BE-01 | 任务协议与状态机 | BE | `media_tasks` / `media_items` 基表;状态机**对齐架构 §3.6 九态**(排队 / 生成中 / 部分失败 / 待预览 / 已勾选 / 已导出 / 已入库 / 失败 / 已取消),M0 先点亮排队 / 生成中 / 部分失败 / 失败 / 已取消,其余状态由 B3 / M1 点亮;提交返回 `{taskId, estimatedItems, estimatedCost, estimatedSeconds}`;`Idempotency-Key` 24 小时去重 | A0-BE-02、A0-SH-01 | 重复提交返回同一任务;缺预估字段拒绝提交;状态枚举与架构 §3.6 一致;流转有单测 | 1.0 | -| A6-BE-02 | 队列骨架 | BE | BullMQ 队列组(`script` / `image` / `video` / `export` / `verify`,共 9 个具体队列);worker 按 `QUEUE` 启动;重试与退避、死信、并发上限;scheduler 与 Redis 锁 | A0-BE-02 | 五个队列组可独立启停;单队列积压不影响其他队列 | 1.0 | -| A6-BE-03 | 进度推送 | BE | SSE `/media-tasks/{id}/events`(心跳、断线重连、Last-Event-ID)+ 轮询兜底;进度落库而非只在内存 | A6-BE-01 | 断网后轮询可恢复;进程重启进度不丢 | 1.0 | -| A6-BE-04 | 任务中心接口 | BE | 跨类型任务列表 / 详情(按客户、状态、类型、时间筛选)、取消、仅重试失败项、失败明细行号 | A6-BE-02 | 取消只影响未开始项;重试不重复成功项 | 0.5 | -| A6-BE-05 | Outbox 事件 | BE | `outbox_events` 写入与投递(至少一次 + 幂等消费);业务写入与事件同事务 | A0-BE-02 | 事务回滚不产生事件;重复投递不重复处理 | 0.5 | -| A6-INF-01 | 队列监控 | INF | 队列长度 / 等待时长 / 失败率指标、告警规则、worker 健康检查 | A6-BE-02 | 积压与失败率可看;阈值告警可触发 | 0.5 | -| A6-FE-01 | 任务中心 | FE | 列表(类型 / 状态 / 客户 / 时间)、详情(进度条、逐项状态、失败明细、重试 / 取消) | A0-FE-02 | 任务可筛选;失败项可单独重试;取消有确认 | 0.5 | -| A6-FE-02 | 进度组件与角标 | FE | 可复用 SSE 进度组件、全局任务角标、断线降级为轮询、完成通知 | A6-FE-01 | 组件可被后续批次直接复用;断网提示清晰 | 0.5 | -| A6-QA-01 | 幂等 / 取消 / 断线用例 | QA | 重复提交、取消、重试、断线恢复、进程重启恢复 | A6-BE-04 | 用例全绿;无重复产物 | 0.5 | +| 编号 | 任务 | 端 | 内容与产出 | 依赖 | 验收要点 | EPD | 状态 | +| --- | --- | --- | --- | --- | --- | --- | --- | +| A6-BE-01 | 任务协议与状态机 | BE | `media_tasks` / `media_items` 基表;状态机**对齐架构 §3.6 九态**(排队 / 生成中 / 部分失败 / 待预览 / 已勾选 / 已导出 / 已入库 / 失败 / 已取消),M0 先点亮排队 / 生成中 / 部分失败 / 失败 / 已取消,其余状态由 B3 / M1 点亮;提交返回 `{taskId, estimatedItems, estimatedCost, estimatedSeconds}`;`Idempotency-Key` 24 小时去重 | A0-BE-02、A0-SH-01 | 重复提交返回同一任务;缺预估字段拒绝提交;状态枚举与架构 §3.6 一致;流转有单测 | 1.0 | ✅ | +| A6-BE-02 | 队列骨架 | BE | BullMQ 队列组(`script` / `image` / `video` / `export` / `verify`,共 9 个具体队列);worker 按 `QUEUE` 启动;重试与退避、死信、并发上限;scheduler 与 Redis 锁 | A0-BE-02 | 五个队列组可独立启停;单队列积压不影响其他队列 | 1.0 | ✅ | +| A6-BE-03 | 进度推送 | BE | SSE `/media-tasks/{id}/events`(心跳、断线重连、Last-Event-ID)+ 轮询兜底;进度落库而非只在内存 | A6-BE-01 | 断网后轮询可恢复;进程重启进度不丢 | 1.0 | ✅ | +| A6-BE-04 | 任务中心接口 | BE | 跨类型任务列表 / 详情(按客户、状态、类型、时间筛选)、取消、仅重试失败项、失败明细行号 | A6-BE-02 | 取消只影响未开始项;重试不重复成功项 | 0.5 | ✅ | +| A6-BE-05 | Outbox 事件 | BE | `outbox_events` 写入与投递(至少一次 + 幂等消费);业务写入与事件同事务 | A0-BE-02 | 事务回滚不产生事件;重复投递不重复处理 | 0.5 | ✅ | +| A6-INF-01 | 队列监控 | INF | 队列长度 / 等待时长 / 失败率指标、告警规则、worker 健康检查 | A6-BE-02 | 积压与失败率可看;阈值告警可触发 | 0.5 | ✅ | +| A6-FE-01 | 任务中心 | FE | 列表(类型 / 状态 / 客户 / 时间)、详情(进度条、逐项状态、失败明细、重试 / 取消) | A0-FE-02 | 任务可筛选;失败项可单独重试;取消有确认 | 0.5 | ✅ | +| A6-FE-02 | 进度组件与角标 | FE | 可复用 SSE 进度组件、全局任务角标、断线降级为轮询、完成通知 | A6-FE-01 | 组件可被后续批次直接复用;断网提示清晰 | 0.5 | ✅ | +| A6-QA-01 | 幂等 / 取消 / 断线用例 | QA | 重复提交、取消、重试、断线恢复、进程重启恢复 | A6-BE-04 | 用例全绿;无重复产物 | 0.5 | ✅ | **本批门禁**:提交 → SSE → 完成 / 失败闭环;幂等与取消生效;队列隔离;进度落库可恢复。