# Bucket I — 审批引擎补遗

**优先级**：P1-P2 混合
**估时**：3 天

## 范围

### I1. 批量审批（#116，P1）
- 后端：批量 approve/reject API（接受 taskId 数组）
- 前端：列表页多选 + 批量操作按钮
- 风险：批量审批的事务粒度（单个失败是否回滚整批？）

### I2. 减签（#117 / M20，P2）
- 后端 API 实现：会签节点中移除某个加签人 → 子任务 CANCELLED
- 设计器/运行时 UI

### I3. 流程暂停/恢复（#118，P2）
- 后端 Temporal signal 实现暂停/恢复
- 管理员 UI

### I4. 超时提醒（#119，P2）
- Temporal cron 检测超时任务
- 触发通知（Bucket E 的通知通道）

### I5. 强制通过/驳回 + targetUser 持久化（#136，P2，A5/F7）
- 当前管理员强制通过/驳回时 targetUser 信息丢失
- 需要在 task_logs / instance.metadata 中持久化代为执行的目标用户

### I6. 幂等键 X-Idempotency-Key（#141，P1）
- 文档承诺（A3/M4）但未实现
- 后端：幂等中间件 + Redis SETNX 短期缓存请求结果
- 影响所有写 API（不仅审批）—— **可能要拆出独立 PR 跨模块做**

### I7. approvalStatus 类型修正（F9，P2）
- approval-center/06-data-model.md 已标注 String 而非 enum（PR #208 文档已对齐）
- 实施层：考虑改为真正的 enum 还是接受 String？决策点

## 决策点

- **I1（批量审批）单独完成**最有价值
- **I6（幂等键）影响面太大**，建议跨模块 PR
- I2-I5 可以挑 1-2 项打包

## 完成条件

- 选定子项实现 + L1/L2 验证
- 删除本文件（或仅保留未做项）
