docs(plan): 补齐 A6 WBS 状态列
ci / 质量门禁 (push) Successful in 5m28s

背景: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 表列结构一致。
This commit is contained in:
Stev_Wang committed 2026-11-05 11:57:48 +08:00
1 parent 45467558ab
commit a164725e4a
1 file changed
+11 -11
@@ -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 → 完成 / 失败闭环;幂等与取消生效;队列隔离;进度落库可恢复。