## 0. 七月迭代 28 线唯一总台账

状态口径：每条线同时记录“后端 / 前端 / 验证 / 发布”。`[x]` 只表示该行声明的范围已有仓库证据；`[ ]` 表示仍有实施、前端、人工、延期验证或发布工作。后续七月工作只从本文件领取，不再从分散 `.scratch` 目录直接启动。

- [x] 0.1 `JULY-TECH-FOUNDATION` TECH 七月公共开发基础｜来源 `.scratch/tech-public-foundation/`｜状态：已完成（PRD `completed`，12/12 Tickets 完成）｜主通道 Infrastructure，辅助 Application/Query｜发布：本仓公共基础已交付。
- [x] 0.2 `JULY-TECH-NOTIFICATION` TECH 公共站内通知｜来源 `.scratch/tech-inapp-notifications/`（8 Tickets）｜状态：后端代码与跨仓契约完成、验证延期｜主通道简单写 Application，辅助 Query/Infrastructure｜依赖：0.1。
- [ ] 0.3 `JULY-UR33` 套餐临期查询、Dashboard 与提醒｜来源 `.scratch/ur33-package-expiry-reminder/PRD.md`（由 PRD 直接转任务）｜状态：未开始｜主通道 Query，辅助 Application/Infrastructure｜依赖：0.2、0.9、0.14、0.26。
- [ ] 0.4 `JULY-UR34` 代理在线扫码充值与平台线下代充值｜来源 `.scratch/ur34-agent-recharge/PRD.md`｜状态：未开始｜主通道复杂写，辅助 Query/Payment/Approval Port｜业务核心依赖：2.8、2.29、2.57、2.9～2.12；测试环境开放线下代充入口另依赖 4.W14。
- [ ] 0.5 `JULY-UR35` 退款审批与整单终结｜来源 `.scratch/ur35-refund-wecom-approval/PRD.md`｜状态：未开始｜主通道复杂写，辅助 Query/Approval Port｜业务核心依赖：2.8、2.30、2.9～2.12；测试环境开放提交入口另依赖 4.W14。
- [ ] 0.6 `JULY-UR36` 批量订购套餐｜来源 `.scratch/ur36-bulk-package-purchase/`（11 Tickets）｜状态：未开始｜主通道 Application/Domain，辅助 Query/Infrastructure｜依赖：0.8、0.9。
- [ ] 0.7 `JULY-UR37` 企业微信审批公共能力｜来源 `.scratch/ur37-wecom-approval-foundation/`（14 Tickets）｜状态：未开始｜主通道 Application + Port/Infrastructure Adapter，辅助 Query｜顺序：先完成 2.9～2.12 渠道无关核心，UR34/UR35 业务核心完成后再执行 4.W1～4.W14 WeCom Adapter 与装配。
- [x] 0.8 `JULY-UR38` 代理主钱包信用额度｜来源 `.scratch/ur38-agent-main-wallet-credit/`（10 Tickets）｜状态：后端代码与测试环境切换契约完成、自动化/真实资金验证延期｜主通道复杂写，辅助简单写/Query｜依赖：0.1。
- [ ] 0.9 `JULY-UR40` 下架套餐历史用户续费｜来源 `.scratch/ur40-off-shelf-package-renewal/`（8 Tickets）｜状态：未开始｜主通道 Domain Policy，辅助 Query｜依赖：0.1。
- [ ] 0.10 `JULY-UR42` 统一导出与字段权限｜来源 `.scratch/ur42-unified-export-field-permissions/PRD.md`｜状态：未开始｜主通道 Query/DataSource，辅助简单写 Application｜依赖：0.3、0.4、0.5、0.12、0.14。
- [ ] 0.11 `JULY-UR43` 系列套餐批量授权｜来源 `.scratch/ur43-series-package-bulk-authorization/`（3 Tickets）｜状态：首次授权后端已完成，后续管理兼容契约修正待完成｜主通道复杂写，辅助 Query｜依赖：0.1。
- [ ] 0.12 `JULY-UR44` 列表提交人与审批摘要｜来源 `.scratch/ur44-list-submitter-approval-summary/PRD.md`｜状态：未开始｜主通道 Query，辅助简单写/迁移｜依赖：4.6、4.11、2.10、4.W9；业务列表基础字段不依赖企微专属投影。
- [x] 0.13 `JULY-UR45` 换货快照与新旧独立搜索｜来源 `.scratch/ur45-exchange-asset-search/`（2 Tickets）｜状态：后端完成、前端/人工待验收｜主通道复杂写 + Query。
- [x] 0.14 `JULY-UR46` 预计最终到期时间｜来源 `.scratch/ur46-estimated-final-expiry/`（4 Tickets）｜状态：后端完成、前端/人工未完成｜主通道 Query｜依赖 0.19 已满足。
- [ ] 0.15 `JULY-UR47` 卡片手动限速｜来源 `.scratch/ur47-manual-card-speed-limit/`（4 Tickets）｜状态：未开始｜主通道 Application + Port/Adapter，辅助 Infrastructure｜依赖：0.1。
- [ ] 0.16 `JULY-UR48` 按资产类型限制支付方式｜来源 `.scratch/ur48-asset-payment-methods/`（5 Tickets）｜状态：未开始｜主通道简单写 + 复杂写，辅助 Query｜依赖：0.1。
- [ ] 0.17 `JULY-UR49` 设备 CSV 批量分配｜来源 `.scratch/ur49-device-batch-allocation-csv/`（5 Tickets）｜状态：未开始｜主通道 Application，辅助 Infrastructure/Query｜依赖：0.6 的受控上传边界。
- [ ] 0.18 `JULY-UR53` 卡和设备实名状态筛选｜来源 `.scratch/ur53-asset-realname-filter/PRD.md`｜状态：未开始｜主通道 Query，辅助投影 Application/Infrastructure｜依赖：0.25。
- [x] 0.19 `JULY-UR55` 套餐生效条件覆盖与购买快照｜来源 `.scratch/ur55-package-expiry-base/`｜状态：5/5 Tickets 已完成；PRD 顶层状态滞后不影响代码完成证据｜主通道简单写 + 复杂写。
- [ ] 0.20 `JULY-UR57` 活跃退款资产禁止换货｜来源 `.scratch/ur57-block-exchange-active-refund/PRD.md`｜状态：未开始｜主通道复杂写，辅助批量 Query｜依赖：0.5。
- [x] 0.21 `JULY-UR60` 店铺联系电话精确查询｜来源 `.scratch/ur60-shop-phone-search/`（3 Tickets）｜状态：后端完成、前端联调/人工验收未完成｜主通道旧架构简单 Query。
- [ ] 0.22 `JULY-UR62` H5 购买与实名顺序配置｜来源 `.scratch/ur62-h5-realname-order/PRD.md`｜状态：未开始｜主通道 Domain/Application，辅助简单写/Query｜依赖：0.25。
- [ ] 0.23 `JULY-UR73` 按运营商实名能力控制复机｜来源 `.scratch/ur73-resume-realname-policy/PRD.md`｜状态：未开始｜主通道复杂写，辅助 Gateway/Outbox｜依赖：0.25。
- [x] 0.24 `JULY-UR86` 资产前代/后代换货链｜来源 `.scratch/ur86-asset-exchange-trace/`（2 Tickets）｜状态：后端完成、前端验收与历史抽样未完成｜主通道 Query。
- [x] 0.25 `JULY-UR94` 卡状态公共写入与运营商回调｜来源 `.scratch/ur94-card-state-events-callbacks/`（13 Tickets + 新增联通实名真实样例）｜状态：后端代码与测试环境装配完成、真实运营商/Gateway 验证延期｜主通道复杂写，辅助 Adapter/Query｜依赖：0.1。
- [x] 0.26 `JULY-UR96` 店铺业务员归属｜来源 `.scratch/ur96-shop-business-owner/`（6 Tickets）｜状态：后端代码完成、验证延期｜主通道简单写，辅助 Query/Port｜依赖：0.1。
- [ ] 0.27 `JULY-UR97` 钱包低余额预警｜来源 `.scratch/ur97-wallet-low-balance-alert/PRD.md`｜状态：未开始｜主通道复杂写，辅助 Query/Outbox/Notification｜依赖：0.2、0.8、0.26。
- [ ] 0.28 `JULY-UR98` 换货新资产继承店铺｜来源 `.scratch/ur98-exchange-inherit-shop/`（4 Tickets）｜状态：未开始｜主通道复杂写，辅助 Query/Infrastructure｜依赖：0.1。

需求16保持排除：无对应复选框、实现任务、迁移或发布依赖；店铺业务员不得恢复分销或佣金语义。

## 1. 已完成后端证据与剩余元数据收口

- [x] 1.1 固化 TECH 公共基础完成证据：12 张 Ticket、Outbox/Relay、幂等、五态任务、受控配置、Access Log 安全能力、迁移与交接文档；明确它不等于通知、审计或业务消费者已完成。
- [x] 1.2 固化 UR55 后端完成证据：创建/编辑覆盖值、同步购买快照、自动购包快照、激活与排队只消费快照共 5 张 Ticket；不重复实现后端。
- [x] 1.3 固化 UR45 后端完成证据：统一换货资产快照和新旧资产独立搜索均已有代码/文档/提交；不回填历史快照、不顺带迁移 UR86/UR98。
- [x] 1.4 收口 UR45 原 PRD/Ticket 元数据并向前端交付新旧资产筛选契约；保持“后端完成、前端/人工待验收”，不得把元数据修正记为重新实现。
- [x] 1.5 固化 UR46 四个后端 Query 切片完成证据：后台详情、卡列表、设备列表、C 端资产信息；不写汇总表、不重复计算第二套到期字段。
- [x] 1.6 固化 UR60 后端完成证据：分页校验、联系电话 11 位精确过滤/索引、企业账号路由限制；保留前端与人工任务未完成。
- [x] 1.7 固化 UR86 后端完成证据：前代和后代 Query、权限投影与索引；不新建换货关系表、不修改换货状态机。
- [x] 1.8 冻结提交 `ff44305` 现有相关代码：保留 Integration Log 基础、离线 `cmd/audit-coverage`、Access Log 敏感字段判定复用和无外键迁移 `000167`；Audit Event 与审计中心移出本 Change，不作为测试环境或生产上线门禁，未来如需恢复另开独立 Change。

## 2. 第一批：共享核心与独立 frontier

### B1-01 公共站内通知（`JULY-TECH-NOTIFICATION`）

- [x] 2.1 映射原通知 Ticket 01：交付后台明确接收账号的通知写入、`event_id + recipient` 幂等、未读查询与单条已读完整纵向切片。【主：简单写 Application；辅：Query/Infrastructure｜边界：通知事实与当前账号读取｜不迁移：业务触发规则、WebSocket｜依赖：1.1】
- [x] 2.2 映射原 Ticket 02：交付后台通知筛选、分类汇总、稳定分页和全部/按分类已读。【主：Query；辅：简单写｜边界：当前接收人数据｜不迁移：业务列表｜依赖：2.1】
- [x] 2.3 映射原 Ticket 03：交付个人客户通知投递、简化列表与已读 API。【主：简单写 + Query｜边界：personal_customer 接收人｜不迁移：后台权限模型｜依赖：2.1】
- [x] 2.4 映射原 Ticket 04：交付店铺主账号、平台业务员及其他动态接收人的 Port/Adapter 解析。【主：Application + Port/Adapter｜边界：只解析稳定接收人，不复制业务触发｜不迁移：店铺层级｜依赖：2.1、2.63】
- [x] 2.5 映射原 Ticket 05：交付受控 `ref_type/ref_id/ref_key` 目标解析、跳转白名单与跳转后二次权限校验。【主：Query｜辅：Application｜边界：通知目标解析｜不迁移：任意 URL、业务权限实现｜依赖：2.1】
- [x] 2.6 映射原 Ticket 06：交付通知保留、分批清理、失败可观测与安全日志。【主：Infrastructure｜辅：Query｜边界：通知记录生命周期｜不迁移：Audit Event、外部消息渠道｜依赖：2.1】
- [x] 2.7 映射原 Ticket 07：冻结后台与 C 端通知页面、30 秒轮询、铃铛/抽屉/中心、加载/空态/失败与受控跳转契约，并更新 OpenAPI/中文文档。【主：Query/API 契约｜不迁移：前端框架选择｜依赖：2.2、2.3、2.5】
- [x] 2.8 映射原 Ticket 08 为测试环境发布检查：完成通知 Handler/路由/文档生成器、Worker/模板注册与生产组合根装配；仅执行本批格式化、必要生成、构建和部署检查，真实外部验收转 6.2；Audit Event 不属于本 Change。【主：Infrastructure｜依赖：2.2-2.7】

### B1-02 渠道无关审批核心（`JULY-UR37` 通用部分）

- [x] 2.9 定义业务侧 Approval Port、通用审批实例与标准决策 `approved/rejected/cancelled/deleted/revoked_after_approved`；实例只持有业务类型/ID、真实提交人、`provider`、`external_ref`、标准状态、请求/决策快照和关联 ID。【主：Application + Port/Domain｜边界：渠道无关审批事实｜不迁移：企微 Token、`sp_no`、模板/控件、节点、审批人、会签/或签｜依赖：1.1】
- [x] 2.10 交付通用审批 Query 和权限投影，输出稳定业务摘要、提交人、provider、标准状态与处理摘要；渠道专属节点、意见和附件仅由 Adapter 可选扩展，代理不得看到内部审批信息。【主：Query｜边界：通用审批读模型｜不迁移：业务列表、实时外部查询｜依赖：2.9】
- [x] 2.11 交付渠道回传决策的统一同步用例、状态条件更新、首次终态 Outbox、处理租约与幂等分发；业务消费者不得 import 企微/钉钉 SDK、DTO、状态码、模板控件 ID 或 `sp_no`。【主：Application + Outbox｜边界：标准决策进站和终态分发｜不迁移：退款/充值终态规则｜依赖：2.9】
- [x] 2.12 交付新审批申请的原子创建契约：业务用例在同一事务固化业务单、通用审批实例与提交 Outbox；有效 Adapter/场景/发起身份不可用时在上述事实写入前失败关闭。【主：Application + Port｜边界：申请创建与可用性契约｜不迁移：金额、钱包、佣金、套餐规则，不建本地审批流引擎｜依赖：2.9、2.11】

### B1-03 代理主钱包信用额度（`JULY-UR38`）

- [x] 2.23 映射原 UR38-01：扩展主钱包信用字段、CHECK/索引/版本与 Wallet Domain 不变量；迁移前核对现有约束和异常数据。【主：复杂写 Domain｜辅：Infrastructure｜不迁移：员工/佣金/资产钱包｜依赖：1.1】
- [x] 2.24 映射原 UR38-02：交付客户角色“仅新建店铺使用”的默认信用模板、权限与 API/前端契约。【主：简单写 Application｜辅：Query｜不迁移：已有钱包追溯更新｜依赖：2.23】
- [x] 2.25 映射原 UR38-03：新建店铺事务内原子复制默认角色信用快照到代理主钱包。【主：复杂写 Application｜边界：店铺 + 钱包创建事务｜不迁移：其他店铺创建规则｜依赖：2.24】
- [x] 2.26 映射原 UR38-04：交付既有店铺实际额度调整、版本冲突、降低/关闭边界和变更前后投影；`shop:credit-limit:manage` 仅控制前端按钮显示，后端本期不校验该权限或账号类型。【主：复杂写 Domain｜辅：Query｜依赖：2.23】
- [x] 2.27 映射原 UR38-05：统一代理订单、代购和钱包支付扣款用例，使用有效信用、版本/锁、唯一流水和同事务事实。【主：复杂写 Domain｜不迁移：无关订单创建｜依赖：2.23】
- [x] 2.28 映射原 UR38-06：统一代理主钱包冻结/解冻，维持 `balance-frozen+credit>=0` 与幂等流水。【主：复杂写 Domain｜不迁移：佣金冻结｜依赖：2.23、2.27】
- [x] 2.29 映射原 UR38-07：统一充值入账与人工调整用例，按唯一业务号、版本和流水幂等；只提供 UR34 可复用能力。【主：复杂写 Domain｜不迁移：支付/企微/通知｜依赖：2.23】
- [x] 2.30 映射原 UR38-08：统一代理订单退款回充，仅按原扣款流水定位原主钱包并幂等回溯。【主：复杂写 Domain｜不迁移：渠道退款/资产钱包退款｜依赖：2.27、2.29】
- [x] 2.31 映射原 UR38-09：资金概况 Query 返回信用开关、额度、现金可用、总可用、欠款和版本，前端不得自行计算。【主：Query｜不迁移：钱包写入｜依赖：2.23、2.26】
- [x] 2.32 映射原 UR38-10 为测试环境停机切换：完成所有主钱包写入口接入、迁移/API/前端契约/组合根装配与本批构建部署检查；并发/真实资金验收转 6.1/6.3。【主：Infrastructure/Application 收口｜依赖：2.24-2.31】

### B1-04 卡状态公共写入与运营商回调（`JULY-UR94`）

- [x] 2.33 映射原 UR94-01：扫描 19 位 ICCID 冲突并交付未删除范围部分唯一索引与发布前异常清单。【主：Infrastructure｜不迁移：ICCID 归一化｜依赖：1.1】
- [x] 2.34 映射原 UR94-02：交付实名观测的唯一 `ApplyCardObservation` 写入闭环、锁/条件更新、领域事实与 Outbox。【主：复杂写 Domain/Application｜不迁移：轮询调度｜依赖：2.33】
- [x] 2.35 映射原 UR94-03：将流量观测收口到同一公共写入用例并保持已有周期/资格语义。【主：复杂写 Domain｜不迁移：套餐轮询｜依赖：2.34】
- [x] 2.36 映射原 UR94-04：将网络状态观测收口到同一用例并保持停复机业务边界。【主：复杂写 Domain｜不迁移：复机资格（由 3.2 负责）｜依赖：2.34】
- [x] 2.37 映射原 UR94-05：一次性切换三个现有轮询结果写入口到公共用例，保持 PostgreSQL 配置、Redis 分片、间隔、开关和失败重排不变。【主：Application/Infrastructure｜不迁移：轮询调度｜依赖：2.34-2.36】
- [x] 2.38 映射原 UR94-06：交付同场景可合并的立即/3/5 分钟观测序列、单次请求互斥、最小间隔与 Integration Log。【主：Application｜辅：Asynq/Adapter｜不迁移：自动退避状态｜依赖：2.34-2.36】
- [x] 2.39 映射原 UR94-07：在查询资产、获取实名链接等成功边界接入观测序列，不新增显式同步 API。【主：Application Adapter｜不迁移：读取 Query 业务｜依赖：2.38】
- [x] 2.40 映射原 UR94-08：在停复机、购包和套餐激活成功边界接入观测序列，仅负责触发不复制业务资格。【主：Application Adapter｜不迁移：UR73/套餐规则｜依赖：2.38】
- [x] 2.41 映射原 UR94-09：在切卡、重启等设备控制成功边界接入观测序列并解析最终卡。【主：Application Adapter｜不迁移：设备控制规则｜依赖：2.38】
- [x] 2.42 映射原 UR94-10：交付电信实名回调 Translator、19/20 位精确路由、幂等入站 Integration Log 和成功应答。【主：Infrastructure Adapter｜辅：Application｜依赖：2.33、2.34、2.38】
- [x] 2.43 映射原 UR94-11：交付移动实名成功回调的对应防腐层与公共写入接入。【主：Infrastructure Adapter｜依赖：2.33、2.34、2.38】
- [x] 2.44 映射原 UR94-12：交付联通解除实名回调的留痕与约定成功应答，不修改本地实名状态。【主：Infrastructure Adapter｜边界：Integration Log only｜依赖：2.33】
- [x] 2.44A 根据新增来源材料 `docs/7月迭代/来源材料/realname.go` 补充联通实名成功回调：解析与解除实名一致的双层 JSON，按 19/20 位精确定位并接入公共实名观测；禁止 20 位截断、旧 `inner_callback`、第三方推送和 Gateway 二次确认。【主：Infrastructure Adapter｜辅：Application｜依赖：2.33、2.34、2.38】
- [x] 2.45 映射原 UR94-13 为测试环境发布检查：通过受控 `system_config` 为电信实名、移动实名、联通实名及联通解除实名提供默认关闭的独立开关；装配四个回调 Handler/路由/文档生成器、观测 Worker、Gateway Adapter 与配置，执行格式化、必要生成、构建和部署检查；真实运营商/Gateway验证转 6.4。【主：Infrastructure｜依赖：2.37-2.44A】

### B1-05～B1-09 独立 frontier

- [x] 2.46 `JULY-UR43` 映射原 Ticket 01：首次系列授权在同一事务创建系列授权和至少一条套餐授权，复用现有套餐 Query，已授权项置灰。【主：复杂写；辅：Query｜不迁移：授权模型/候选 API｜依赖：1.1】
- [ ] 2.47 `JULY-UR43` 映射原 Ticket 02：在保留已交付 `packages:[{package_id,cost_price,remove}]` 契约的前提下，完成最多 100 项的原子批量新增、改价与移除；`remove=true` 继续表示软删除，禁止以必填 `operation_type` 替代或移除该字段，并补齐同价幂等、异价冲突和下级授权保护。【主：复杂写｜不迁移：既有请求字段与响应结构｜依赖：2.46】
- [ ] 2.48 `JULY-UR43` 映射原 Ticket 03：交付首次/后续管理前端契约、`packages[].remove` 删除语义、OpenAPI/文档生成器与兼容部署检查；旧前端请求必须继续可用，不得要求与后端同批切换到新命令字段。【主：API/Query 契约｜依赖：2.46、2.47】
- [ ] 2.49 `JULY-UR47` 映射原 Ticket 01：修复同一设备多当前卡并建立部分唯一约束，异常数据先入清单。【主：Infrastructure｜不迁移：绑定历史｜依赖：1.1】
- [ ] 2.50 `JULY-UR47` 映射原 Ticket 02：交付语义化 `speed_level` 到账号/运营商渠道 `code` 的 Gateway Adapter、能力校验与 Integration Log。【主：Port/Adapter｜不迁移：自动限速｜依赖：2.49】
- [ ] 2.51 `JULY-UR47` 映射原 Ticket 03：交付统一资产手动限速 API，设备解析当前卡，区分不限速与 0kbps，外部结果未知可恢复；Audit Event 不属于本 Change 且不阻塞上线。【主：Application｜辅：Adapter｜不迁移：套餐限速｜依赖：2.49、2.50】
- [ ] 2.52 `JULY-UR47` 映射原 Ticket 04：交付卡/设备详情限速能力、固定档位、失败状态、OpenAPI/文档生成器与测试环境配置/构建检查；真实 Gateway 验收转 6.4。【主：Query/API 契约｜依赖：2.49-2.51】
- [ ] 2.53 `JULY-UR48` 映射原 Ticket 01：复用受控系统配置读取/更新，向资产展示允许支付方式并提供安全默认值。【主：简单写 + Query｜不迁移：通用配置中心｜依赖：1.1】
- [ ] 2.54 `JULY-UR48` 映射原 Ticket 02：限制普通资产钱包充值为资产允许集合与微信/支付宝交集，钱包不得作为充值渠道。【主：复杂写 Policy｜不迁移：C 端全部充值｜依赖：2.53】
- [ ] 2.55 `JULY-UR48` 映射原 Ticket 03：订单创建时必填并固化支付方式快照，强充按同一方式拉起且钱包不能给自身强充。【主：复杂写 Domain｜不迁移：其他订单状态｜依赖：2.53】
- [ ] 2.56 `JULY-UR48` 映射原 Ticket 04：支付时只执行订单快照方式并按最新资产配置二次校验，需要换方式时取消旧单重建。【主：复杂写 Domain｜不迁移：支付方式替换接口｜依赖：2.53、2.55】
- [ ] 2.57 `JULY-UR48` 映射原 Ticket 05：交付后台配置、C 端支付页/强充/取消重建契约、OpenAPI/文档生成器与测试环境构建部署检查；真实支付验证转 6.3。【主：API/前端契约｜依赖：2.54-2.56】
- [x] 2.58 `JULY-UR96` 映射原 Ticket 01：为店铺增加 nullable 平台业务员字段、索引与启用平台账号约束，不回填历史。【主：Infrastructure｜不迁移：店铺层级/分销｜依赖：1.1】
- [x] 2.59 `JULY-UR96` 映射原 Ticket 02：平台创建店铺时显式设置或按规则继承业务员，并在同一用例保存快照。【主：简单写 Application｜不迁移：信用模板（由 UR38）｜依赖：2.58】
- [x] 2.60 `JULY-UR96` 映射原 Ticket 03：代理创建直属下级店铺时安全继承当前业务员，不允许代理指定其他平台账号。【主：简单写｜不迁移：店铺权限｜依赖：2.59】
- [x] 2.61 `JULY-UR96` 映射原 Ticket 04：交付业务员编辑权限、停用/删除后的历史保留和重绑；Audit Event 不属于本 Change 且不阻塞上线。【主：简单写｜不迁移：账号生命周期｜依赖：2.58】
- [x] 2.62 `JULY-UR96` 映射原 Ticket 05：店铺创建/编辑/列表/详情/筛选返回业务员投影、候选账号与手机号摘要。【主：Query｜不迁移：数据范围｜依赖：2.58】
- [x] 2.63 `JULY-UR96` 映射原 Ticket 06：交付主账号与可用业务员接收人解析 Port、OpenAPI/前端契约与测试环境构建部署检查。【主：Port/Adapter + Query｜不迁移：通知触发规则｜依赖：2.59-2.62】
- [ ] 2.64 `JULY-UR98` 映射原 Ticket 01：建立换货分配记录与目标资产归属校正基础，目标已属其他店铺时拒绝。【主：Infrastructure/Domain｜不迁移：历史回填｜依赖：1.1】
- [ ] 2.65 `JULY-UR98` 映射原 Ticket 02：换货完成事务内让新资产继承旧店铺并保留旧资产归属，钱包/套餐迁移仍只受 `migrate_data` 控制。【主：复杂写 Domain/Application｜不迁移：整个换货模块｜依赖：2.64】
- [ ] 2.66 `JULY-UR98` 映射原 Ticket 03：创建/发货/完成接口投影继承店铺和只读展示信息，禁止前端提交目标店铺。【主：Query/API 契约｜依赖：2.65】
- [ ] 2.67 `JULY-UR98` 映射原 Ticket 04：交付前端展示、迁移/路由/文档生成器、测试环境构建与部署检查；人工换货链验证转 5.5/6.6。【主：Infrastructure/API 契约｜依赖：2.65、2.66】
- [ ] 2.68 第一批批次检查：对本批修改执行 `gofmt`、必要代码生成、`go build ./...`，核对迁移所有权、Handler 文档生成器、API/Worker/Relay 组合根和配置样例；不新增/运行测试。

## 3. 第二批：共享核心下游

### B2-01 UR40 统一套餐可售策略

- [ ] 3.1 映射原 UR40-01：建立统一套餐可售决策与真实历史资格，禁用永不可买、下架仅资产所有人凭有效历史续费。【主：Domain Policy｜不迁移：订单全模块｜依赖：1.1】
- [ ] 3.2 映射原 UR40-02：正常套餐商城 Query 只展示在售可购项。【主：Query｜不迁移：购买写入｜依赖：3.1】
- [ ] 3.3 映射原 UR40-03：当前套餐投影提供 `renew_only` 续费入口与原因。【主：Query｜依赖：3.1】
- [ ] 3.4 映射原 UR40-04：历史套餐投影按真实使用资格提供续费入口。【主：Query｜依赖：3.1】
- [ ] 3.5 映射原 UR40-05：C 端订单创建重新校验续费资格、资产所有权和套餐状态。【主：复杂写 Domain/Application｜依赖：3.1】
- [ ] 3.6 映射原 UR40-06：后台代购、自动购包等非个人入口统一禁止下架套餐绕过。【主：复杂写 Policy 接入｜不迁移：入口其他规则｜依赖：3.1】
- [ ] 3.7 映射原 UR40-08：交付跨入口 API/前端契约、OpenAPI/文档生成器与构建部署检查；原 Ticket 07 Audit Event 移出本 Change，不阻塞上线。【主：API/发布契约｜依赖：3.2-3.6】

### B2-02～B2-05 卡状态与钱包下游

- [ ] 3.8 `JULY-UR73` 统一所有后台/OpenAPI 复机入口的资格用例：`realname_link_type=none` 不要求实名，`template/gateway` 必须已实名，未知配置拒绝且不调用 Gateway。【主：复杂写 Domain/Application｜不迁移：其他风险/套餐/保护期规则｜依赖：2.45】
- [ ] 3.9 `JULY-UR73` 复机成功后写 Integration Log、可靠触发 0/3/5 观测并由公共卡状态收敛；Gateway 成功不直接改本地网络状态。【主：Application + Adapter/Outbox｜不迁移：观测实现｜依赖：3.8、2.38】
- [ ] 3.10 `JULY-UR73` 交付复机失败中文错误、API/前端契约、OpenAPI/文档生成器与构建部署检查；真实 Gateway 验收转 6.4。【主：API 契约｜依赖：3.8、3.9】
- [ ] 3.11 `JULY-UR53` 建立设备实名可重建投影、历史初始化和卡实名/绑定/解绑/换卡事件消费者；任一有效绑定卡实名即设备实名。【主：Application 投影｜辅：Outbox/Infrastructure｜不迁移：卡实名真相｜依赖：2.34】
- [ ] 3.12 `JULY-UR53` 为卡/设备列表增加可区分未传与显式 0 的实名状态过滤、字段与索引，保持权限/分页。【主：Query｜依赖：3.11】
- [ ] 3.13 `JULY-UR53` 交付前端筛选、OpenAPI/文档生成器、投影 Worker 装配和构建部署检查；历史/事件真实验证转 6.1。【主：API/Infrastructure｜依赖：3.11、3.12】
- [ ] 3.14 `JULY-UR62` 建立“运营商能力 + 资产视角 + realname_policy”的统一有效策略与购买/实名资格用例；设备 before-order 要求全部有效卡实名。【主：Domain/Application｜不迁移：运营商配置协议｜依赖：2.45】
- [ ] 3.15 `JULY-UR62` 交付卡/设备 1～500 条批量策略更新，全量校验后事务内全成全败，并扫描冲突数据。【主：简单写 Application｜不迁移：新字段｜依赖：3.14】
- [ ] 3.16 `JULY-UR62` 扩展 C 端 asset info 和所有充值/订单/实名入口只消费统一有效策略，交付前端流程、OpenAPI/文档生成器与构建部署检查。【主：Query + Application 接入｜不迁移：前端自行推断｜依赖：3.14、3.15】
- [ ] 3.17 `JULY-UR97` 在所有代理主钱包写入口完成前后现金可用快照，只有 `before>10000 && after<=10000` 产生稳定低余额事件，持续低位不重复、回升后重布防。【主：复杂写 Wallet Domain｜不迁移：信用/佣金/资产钱包｜依赖：2.32】
- [ ] 3.18 `JULY-UR97` 同事务保存钱包/流水/Outbox，消费事件并向店铺主账号和可用业务员按事件/接收人幂等通知。【主：Application + Outbox/Notification｜不迁移：外部通知｜依赖：2.8、2.63、3.17】
- [ ] 3.19 `JULY-UR97` 扩展资金概况 `cash_available/low_balance_warning` 与前端提示，不提供阈值配置。【主：Query/API 契约｜依赖：3.17】
- [ ] 3.20 `JULY-UR97` 完成钱包入口接入清单、Worker/模板、OpenAPI/文档生成器和构建部署检查；并发/通知真实验证转 6.1/6.6。【主：Infrastructure 收口｜依赖：3.17-3.19】

### B2-06 UR36 批量订购套餐

- [ ] 3.21 映射原 UR36-01：交付统一资产解析后的批次内唯一资产识别，跨不同标识仍按资产类型+ID 判重。【主：Application/Domain｜不迁移：资产解析白名单｜依赖：1.1】
- [ ] 3.22 映射原 UR36-02：交付 `purpose=bulk_purchase` 受控预签名上传、对象归属/类型/10MB 校验和稳定 file_key。【主：Infrastructure/Application｜不迁移：通用对象存储框架｜依赖：1.1】
- [ ] 3.23 映射原 UR36-04：复用 `3.1` 的统一后台套餐可售策略并按结算代理重新校验授权/成本价。【主：Domain Policy｜依赖：3.1】
- [ ] 3.24 映射原 UR36-05：提供可复用单资产套餐订购命令，订单、钱包/线下支付、流水和套餐使用保持一个业务单元。【主：复杂写 Domain/Application｜不迁移：批次状态｜依赖：2.27、3.23】
- [ ] 3.25 映射原 UR36-06：幂等创建批量任务，固化请求指纹、套餐/支付/凭证/文件快照并可靠投递处理事件。【主：Application + Outbox｜不迁移：同步解析 CSV｜依赖：3.22】
- [ ] 3.26 映射原 UR36-07：Worker 校验 UTF-8/BOM、固定表头/未知列/语法/空文件/1000 行，合法后持久化逐行明细，文件错误整体失败。【主：Infrastructure/Application｜不迁移：逐行业务｜依赖：3.21、3.25】
- [ ] 3.27 映射原 UR36-08：按行号独立事务完成 offline 行订购，整批凭证快照、部分成功与失败明细可追踪。【主：复杂写｜不迁移：财务核销｜依赖：3.24、3.26】
- [ ] 3.28 映射原 UR36-09：wallet 批次严格按行号逐行扣各资产结算代理主钱包，租约/幂等支持恢复且余额不足只失败当前行。【主：复杂写｜不迁移：整批预占｜依赖：2.27、3.27】
- [ ] 3.29 映射原 UR36-10：交付任务/明细 Query、五态、计数摘要、失败详情、轮询与前端四阶段契约。【主：Query/API 契约｜不迁移：创建人隔离新规则｜依赖：3.28】
- [ ] 3.30 映射原 UR36-11 为测试环境装配：完成迁移、上传/任务 Handler、Worker/Outbox、OpenAPI/文档生成器和构建部署检查；原 UR36-03 集成 Harness、真实依赖/全链门禁转 6.1/6.3。【主：Infrastructure｜依赖：3.21-3.29】

### B2-07 UR49 设备 CSV 批量分配

- [ ] 3.31 映射原 UR49-01：基于 `3.22` 受控上传和公共五态建立设备批量任务/失败明细/租约基础，一任务只允许 `assign_shop` 或 `assign_series`。【主：Application/Infrastructure｜不迁移：通用批量平台｜依赖：3.22、3.30】
- [ ] 3.32 映射原 UR49-02：交付 CSV 批量分配代理完整切片，批量查设备、平台库存/直属下级权限、已是目标幂等、其他店铺拒绝。【主：Application｜不迁移：回收流程｜依赖：3.31】
- [ ] 3.33 映射原 UR49-03：交付 CSV 批量分配套餐系列完整切片，校验归属和有效授权，已是目标幂等且不修改 shop_id。【主：Application｜不迁移：套餐授权模型｜依赖：3.31】
- [ ] 3.34 映射原 UR49-04：冻结前端双入口、上传/进度/失败明细契约，补 OpenAPI/文档生成器。【主：API/前端契约｜依赖：3.32、3.33】
- [ ] 3.35 映射原 UR49-05 为测试环境装配：完成迁移、Handler、Worker、路由、对象存储用途与构建部署检查；真实链路/自动化门禁转 6.1/6.3。【主：Infrastructure｜依赖：3.31-3.34】
- [ ] 3.36 第二批批次检查：执行 `gofmt`、必要代码生成、`go build ./...`，核对迁移、Handler 文档生成器、Worker/Outbox/Integration Log、配置和跨批依赖；不新增/运行测试。

## 4. 第三批：审批业务先行、渠道后置与组合 Query

### B3-01 UR34 代理充值

- [ ] 4.1 交付在线/线下充值共用的状态模型、幂等指纹、支付/审批/处理三套状态、迁移与 Query 投影。【主：复杂写 + Query｜不迁移：C 端支付全模块｜依赖：2.32】
- [ ] 4.2 交付代理当前店铺可用支付方式与在线充值创建：100 元～100 万元、新 request_id 新业务单/支付单、微信 Native/支付宝 PreCreate、结果未知恢复和 qr_content 原样返回。【主：复杂写 + Payment Adapter｜不迁移：二维码图片/多通道池｜依赖：2.29、2.57】
- [ ] 4.3 交付支付回调与受控查单共用确认用例：渠道/配置/金额/交易号/业务关联校验，迟到成功优先，支付事实与入账 Outbox 同事务。【主：复杂写｜辅：Integration Log/Outbox｜不迁移：前端轮询触发查单｜依赖：4.2】
- [ ] 4.4 交付钱包入账 Worker：唯一流水、版本、处理租约、状态恢复和目标主账号/真实提交人到账通知，支付已成功时失败不得回滚收款事实。【主：复杂写 Wallet Application｜不迁移：人工重复入账｜依赖：2.29、2.8、4.3】
- [ ] 4.5 交付平台/超管线下代充值业务核心：后端计算固定金额、保存 1～5 付款凭证原件和请求快照，通过 Approval Port 创建通用审批实例；消费标准决策完成通过入账、拒绝/删除/撤销终结和通过后撤销分流，旧 offline-pay/reject 仅在渠道装配可用后停机下线。【主：复杂写 Application/Domain｜辅：Approval Port/Worker｜边界：线下代充规则和终态处理｜不迁移：企微 SDK/DTO/`sp_no`/状态码，不建本地审批流引擎或操作密码｜依赖：2.9～2.12、2.29、4.1、4.4】
- [ ] 4.6 交付充值列表/详情/payment-status、代理店铺层级权限、前端二维码/轮询/标准审批/处理状态、OpenAPI/文档生成器和业务核心构建检查；渠道专属字段仅作可选扩展，线下代充入口在 4.W14 前保持关闭，真实支付/审批验收转 6.2/6.3。【主：Query/API 契约｜依赖：4.2～4.5】

### B3-02 UR35 退款

- [ ] 4.7 交付退款固定申请金额、业务凭证、真实提交人、唯一通用审批实例与申请/审批/处理三套状态迁移；创建前校验无其他活跃退款。【主：复杂写｜辅：Approval Port｜边界：退款申请和审批关联｜不迁移：企微 SDK/DTO/`sp_no`/状态码，不建本地审批流引擎或旧原单重提｜依赖：2.9～2.12】
- [ ] 4.8 交付退款创建纵向切片：后端读取实收金额、保存 1～5 本地权威凭证和申请快照，通过 Approval Port 原子写通用实例与提交 Outbox；删除 approve/reject/return/resubmit/manual-complete 路由。【主：复杂写 Application｜不迁移：渠道自动退款、外部审批附件权威化｜依赖：4.7】
- [ ] 4.9 交付标准审批终态消费与退款处理租约：`rejected/cancelled/deleted` 终结；`approved` 后按支付类型处理资金；`revoked_after_approved` 按资金事实分流。代理主钱包只按原扣款流水回溯，非代理资金由人工退款事实确认。【主：复杂写｜边界：退款决策和资金处理｜不迁移：渠道状态翻译、资产钱包自动回充｜依赖：2.11、2.30、4.8】
- [ ] 4.10 交付整单终结的订单、已发放/未发放佣金、全部有效套餐、下一套餐激活或停止资产的持久化步骤幂等与失败恢复。【主：复杂写 Domain/Application｜不迁移：未触碰订单/佣金模块｜依赖：4.9、2.40】
- [ ] 4.11 交付退款列表/详情、店铺层级权限、代理最小审批投影、处理失败摘要和前端只读状态；更新 OpenAPI/文档生成器。【主：Query/API 契约｜依赖：4.7-4.10】
- [ ] 4.12 完成退款业务核心、标准决策消费者、Worker/迁移和 API 的构建检查；未装配有效 Adapter 时新提交失败关闭且不写业务单/实例/Outbox，测试环境开放退款入口另依赖 4.W14；资金/佣金/套餐人工验收及自动化转 6.1/6.2/6.3。【主：Infrastructure/Application 收口｜依赖：4.8～4.11】

### B3-03 UR37 WeCom Adapter 与首个渠道装配

- [ ] 4.W1 映射原 UR37-01：在 UR34/UR35 业务核心已可独立构建后，交付企微连接状态、Token 缓存/锁、安全 Viper 配置与 WeCom Adapter；所有外部尝试接入 Integration Log。【主：Infrastructure Adapter｜不迁移：Approval Port 与退款/充值规则｜依赖：1.1、2.9、4.6、4.12】
- [ ] 4.W2 映射原 UR37-02：交付平台/超管五分钟扫码绑定会话、本人查询/解绑与超管强制解绑；代理不绑定。【主：复杂写 Application/Domain｜辅：Query｜边界：WeCom userid 绑定｜不迁移：组织模型、通用审批实例｜依赖：4.W1】
- [ ] 4.W3 映射原 UR37-03：交付稳定场景、不可变企微模板版本、控件映射校验与首次发布。【主：复杂写｜辅：Adapter/Query｜边界：WeCom 模板配置事实｜不迁移：本地审批节点/审批人/会签或签｜依赖：4.W1】
- [ ] 4.W4 映射原 UR37-04：实现 WeCom Adapter 对 Approval Port 的可用性检查和发起身份解析，将企微身份作为渠道快照，不泄漏到业务 Domain/Application。【主：Infrastructure Adapter｜边界：WeCom 发起前置｜不迁移：业务单创建事务｜依赖：2.12、4.W2、4.W3】
- [ ] 4.W5 映射原 UR37-05：保持本地业务附件为权威原件，交付企微副本上传、异步 `applyevent`、`external_ref=sp_no` 绑定、结果未知和 Integration Log。【主：Application/Infrastructure Adapter｜边界：一次 WeCom 技术提交｜不迁移：业务附件权限与内容｜依赖：2.12、4.W4】
- [ ] 4.W6 映射原 UR37-06：交付场景暂停、提交租约、企微模板换版/指纹验证、原子恢复与失效告警；暂停只阻断新提交，不中断存量实例。【主：复杂写｜辅：Scheduled Job｜不迁移：业务终态｜依赖：4.W3、4.W5】
- [ ] 4.W7 映射原 UR37-07：交付企微加密回调验签解密、权威 `getapprovaldetail` 同步和 Translator，将企微状态翻译为 2.9 标准决策后调用 2.11，不直接执行退款/充值规则。【主：Infrastructure Adapter｜辅：Application｜边界：WeCom 入站防腐层｜不迁移：终态业务处理｜依赖：2.11、4.W5】
- [ ] 4.W8 映射原 UR37-08：交付两分钟轮询补偿，与回调共用 4.W7 Translator 和 2.11 同步用例，按至少一次语义恢复。【主：Application/Infrastructure｜辅：Worker｜不迁移：退款/充值 Worker｜依赖：4.W7】
- [ ] 4.W9 映射原 UR37-09：在 2.10 通用 Query 之上交付企微节点、审批人、内部意见和附件的受权扩展投影；代理仅获取通用最小摘要。【主：Query｜边界：WeCom 详情扩展｜不迁移：业务列表、实时调企微｜依赖：2.10、4.W2、4.W3、4.W7】
- [ ] 4.W10 映射原 UR37-10：交付提交结果未知的“绑定已有 `sp_no`”和“确认未创建后重发”受控恢复，保留每次技术尝试与 Integration Log。【主：复杂写｜辅：Adapter/Query｜不迁移：新业务申请和通用决策｜依赖：4.W5、4.W7、4.W9】
- [ ] 4.W11 映射原 UR37-11：消费 2.11 首次标准终态事件，向真实业务提交人发送审批结果通知，按实例/接收人防重。【主：Application｜辅：Notification Adapter｜不迁移：业务到账通知｜依赖：2.8、2.11】
- [ ] 4.W12 映射原 UR37-12：交付存量审批迁移契约、`provider=legacy` 只读投影、平台绑定/代理固定账号前置检查与异常清单，不伪造历史企微实例。【主：Application/Infrastructure｜辅：Query｜不迁移：历史业务规则｜依赖：2.9、4.W2～4.W7】
- [ ] 4.W13 映射原 UR37-13：冻结企微配置页、个人绑定、审批运行/详情/恢复与业务摘要的跨仓契约，明确通用字段和 WeCom 扩展字段，补 OpenAPI、文档生成器和中文文档。【主：API/Query 契约｜不迁移：前端技术栈与本地流程编排｜依赖：4.W2、4.W3、4.W9、4.W10】
- [ ] 4.W14 映射原 UR37-14 的测试环境部分：在 4.6/4.12 业务核心已完成后，装配 WeCom Adapter、模板/回调/轮询 Worker、路由和组合根，使线下代充/退款可用且无效 Adapter 仍失败关闭；执行本批构建/部署检查，真实企微门禁整体转 6.2。【主：Infrastructure 组合根｜边界：首个渠道接入和入口开放｜不迁移：业务规则或其他审批渠道｜依赖：4.6、4.12、4.W1～4.W13】

### B3-04～B3-07 下游业务

- [ ] 4.13 `JULY-UR57` 在换货创建完整用例的任何副作用前，批量判定活跃退款（状态 1/历史 4，或状态 2 且处理未成功）并以统一禁止错误拒绝；不新增预检查 API、不改退款/换货状态机。【主：复杂写；辅：Query｜依赖：4.7】
- [ ] 4.14 `JULY-UR57` 更新换货 API/前端错误契约、中文文档和构建部署检查；拒绝路径 Audit Event 不属于本 Change 且不阻塞上线。【主：API 契约｜依赖：4.13】
- [ ] 4.15 `JULY-UR33` 交付复用 UR46 的 0～15 天临期 Query、3 天内置顶、列表/Dashboard/C 端/续费投影；只接受可准确推算事实。【主：Query｜不迁移：到期算法第二套实现｜依赖：1.5、3.7、2.63】
- [ ] 4.16 `JULY-UR33` 交付每日扫描、15/7/3 最近节点、防重记录与 Outbox/通知消费；漏跑不补多条，站内通知失败不修改套餐事实。【主：Application/Infrastructure｜不迁移：短信/企微提醒｜依赖：2.8、4.15】
- [ ] 4.17 `JULY-UR33` 接入 `expiring_asset` 导出输入契约、前端临期页/Dashboard/高亮/续费与 OpenAPI/文档生成器；实际 DataSource 实现在 4.23。【主：Query/API 契约｜依赖：4.15】
- [ ] 4.18 `JULY-UR33` 完成迁移、定时任务、Worker/模板、路由与测试环境构建部署检查；时间边界/通知真实验证转 6.1/6.6。【主：Infrastructure｜依赖：4.15-4.17】
- [ ] 4.19 `JULY-UR44` 为退款、充值、换货新增提交人不可变快照和历史回填（含软删除账号，缺失显示未知），新建时同事务冻结。【主：简单写/迁移｜不迁移：业务状态机｜依赖：4.1、4.7】
- [ ] 4.20 `JULY-UR44` 扩展三类列表，以本页通用审批实例批量投影 approval_source/provider/status/current_approver/processing；业务列表基础字段只依赖 2.10，WeCom 节点摘要是 4.W9 的可选扩展，代理当前审批人固定为空，换货固定 none。【主：Query｜不迁移：实时调用企微或将业务列表绑定单一渠道｜依赖：2.10、4.W9、4.19】
- [ ] 4.21 `JULY-UR44` 交付前端列/状态/权限、OpenAPI/文档生成器和构建部署检查。【主：API 契约｜依赖：4.20】
- [ ] 4.22 `JULY-UR42` 交付代码字段 Registry、角色 Scene 字段授权全量替换、超管全目录、普通账号并集交集和零字段拒绝。【主：简单写 Application｜辅：Query｜不迁移：菜单/行权限｜依赖：1.1】
- [ ] 4.23 `JULY-UR42` 创建导出任务时快照字段/表头/过滤/数据范围/脱敏级别，扩展各 Scene DataSource，Count/Fetch 条件一致且无 N+1。【主：Query/DataSource｜辅：Application｜不迁移：第二套导出框架｜依赖：4.6、4.11、4.17、4.20、1.5】
- [ ] 4.24 `JULY-UR42` 交付稳定不可枚举 attachment_ref、前端登录恢复落地页和按当前业务权限生成短期下载 URL；不得输出对象 Key/media_id/预签名 URL，导出只使用本地权威附件，不依赖企微副本。【主：Query/Infrastructure｜不迁移：公开 Bucket 或渠道附件权威化｜依赖：4.5、4.8、4.23】
- [ ] 4.25 `JULY-UR42` 交付角色字段配置、导出入口/任务/失败/附件页面契约，更新 OpenAPI/文档生成器和中文文档。【主：API/前端契约｜依赖：4.22-4.24】
- [ ] 4.26 `JULY-UR42` 完成权限表/附件引用迁移、Export Worker/对象存储/配置装配和测试环境构建部署检查；文件内容/性能/权限自动化转 6.1/6.3。【主：Infrastructure｜依赖：4.22-4.25】
- [ ] 4.27 第三批批次检查：执行 `gofmt`、必要代码生成、`go build ./...`，核对资金/审批/支付/导出迁移、Handler 文档生成器、Worker/Outbox/Integration Log、旧路由下线与配置；不新增/运行测试。

## 5. 最终收口与测试环境部署

- [ ] 5.1 收口 UR45：修正 PRD/Ticket 元数据，向前端交付新旧资产独立搜索并完成页面/人工验收；后端不重复实现。
- [ ] 5.2 收口 UR46：完成后台详情、卡/设备列表和 C 端预计最终到期字段的前端展示与人工一致性验收；后端四票保持“已完成”。
- [ ] 5.3 收口 UR60：完成联系电话精确筛选前端、加载/空态/非法参数展示与浏览器人工联调；维护窗口确认索引部署。
- [ ] 5.4 收口 UR86：完成前代/后代标签与受控跳转前端验收，并在维护窗口抽样历史数据；不得因未抽样把后端状态回退。
- [ ] 5.5 联合收口 UR98/UR45/UR86：确认换货新资产继承店铺、旧资产保留归属、新旧搜索和双向链路契约在同一前后端版本一致。
- [ ] 5.6 冻结测试环境版本、迁移清单、API/Worker/Relay/前端版本、配置样例和回滚负责人；确认需求16无代码/迁移/入口。
- [ ] 5.7 进入维护模式，停止相关写入与旧 Worker；执行增量迁移和前置数据清单，失败时保持维护且不开放访问。
- [ ] 5.8 发布 API、Relay/Worker、匹配前端版本，装配企微、支付、Gateway、运营商、对象存储与 Redis/Asynq 测试环境配置；线下代充/退款入口仅在 4.W14 完成且 WeCom Adapter/场景/身份配置有效后开放。
- [ ] 5.9 执行最终允许门禁：`gofmt` 检查、必要代码生成、`go build ./...`、迁移版本、路由/OpenAPI、Worker 注册、配置就绪和前后端版本一致性检查；不运行 `go test` 或真实依赖自动验收。
- [ ] 5.10 恢复 Worker 与测试环境访问，记录每条线实际状态；未完成 4.W14 时必须继续关闭线下代充/退款新提交入口，且只能标记“后端代码完成”或“测试环境已部署/待人工验收”，不得标记生产验收完成。
- [ ] 5.11 发布后若产生审批、支付、资金、Outbox、Integration Log、通知或部分成功任务事实，回滚仅暂停异常入口并前向修复，不清表、不恢复旧 Writer、不要求重复付款。

## 6. 延期验证与生产发布门禁

- [ ] 6.1 恢复并完成所有单元、集成、HTTP、业务流程、并发、迁移、权限、性能与回归自动化；补齐本轮未新增的 `_test.go`，运行完整 `go test ./...` 并保留最终代码证据。
- [ ] 6.2 完成真实企业微信模板、平台本人绑定、代理固定成员、附件、提交、加密回调、轮询、同意/拒绝/撤销/删除/结果未知恢复，以及退款和线下充值终态验收。
- [ ] 6.3 完成真实 PostgreSQL、Redis/Asynq、对象存储、微信 Native、支付宝 PreCreate/TradeQuery/回调、支付成功未入账恢复与导出文件验收。
- [ ] 6.4 完成真实 Gateway 限速账号/运营商档位、设备当前卡、失败/结果未知，以及移动/联通/电信运营商回调和 19/20 位 ICCID 验收。
- [x] 6.5 明确全局 Audit Event 治理移出本 Change：不实现 Writer、业务覆盖、历史投影、审计中心、敏感读取/导出/保留或一次性切换门禁，不阻塞本次实际上线；未来如需建设另开独立 Change。
- [ ] 6.6 完成后台、代理端、C 端全部页面与真实人工验收矩阵，包括异步部分成功、权限空态、通知、临期、换货历史抽样、余额预警和状态展示。
- [ ] 6.7 完成生产存量数据核对、进行中退款/充值迁移、企微模板与账号准备、支付/Gateway配置、停机发布与回滚演练、性能/安全/Access Log 脱敏门禁。
- [ ] 6.8 只有 6.1～6.7 全部具备真实证据后，才可把生产发布和七月迭代验收标记完成；测试环境豁免不得继承到生产。
