# 10 — 完成信用钱包停机切换与发布门禁

**What to build:** 发布负责人能够在停机窗口确认代理主钱包所有已触碰写入端、查询接口和数据库约束已经同时理解信用额度，再安全开放授信配置。发布检查能阻止旧现金条件、异常钱包、未投递事件或不安全回滚进入生产。

**Blocked by:**

- `.scratch/ur38-agent-main-wallet-credit/issues/02-role-default-credit-template.md` — 02 — 配置客户角色的新建代理默认信用模板
- `.scratch/ur38-agent-main-wallet-credit/issues/03-atomic-shop-credit-snapshot.md` — 03 — 新建店铺原子复制角色信用模板
- `.scratch/ur38-agent-main-wallet-credit/issues/04-manage-shop-credit-limit.md` — 04 — 授权平台人员调整店铺实际信用额度
- `.scratch/ur38-agent-main-wallet-credit/issues/05-unified-agent-wallet-debit.md` — 05 — 统一代理订单、代购与钱包支付扣款
- `.scratch/ur38-agent-main-wallet-credit/issues/06-unified-agent-wallet-reservation.md` — 06 — 统一代理主钱包冻结与解冻
- `.scratch/ur38-agent-main-wallet-credit/issues/07-unified-agent-wallet-credit-posting.md` — 07 — 统一代理主钱包充值入账与人工调整
- `.scratch/ur38-agent-main-wallet-credit/issues/08-unified-agent-wallet-refund.md` — 08 — 统一代理订单退款回充
- `.scratch/ur38-agent-main-wallet-credit/issues/09-fund-summary-credit-query.md` — 09 — 资金概况返回信用、总可用金额与欠款
- `.scratch/tech-public-foundation/issues/12-foundation-release-gate-and-integration-contract.md` — 12 — 建立公共基础发布门禁和下游接入契约
- `.scratch/tech-global-audit/issues/19-one-time-audit-cutover-gate.md` — 19 — 执行一次性审计切换与停机发布门禁

**Status:** ready-for-agent

**架构通道:** 主通道为 Infrastructure，辅助通道为 Application 集成与 Query 验收。

**完整业务边界:** 本票收口 UR#38 的停机切换、旧写入口契约收缩、数据库验证、文档和发布回滚门禁。明确不迁移佣金钱包、资产钱包或未被本需求触碰的旧模块；不实现仓库外前端，只交付完整接口与交互验收契约。

- [ ] 静态盘点和集成测试证明代理主钱包扣款、冻结、解冻、充值、退款、人工调整及 UR#36 可消费的扣款接缝均使用统一 Wallet Domain/Application，不再存在旧现金条件写入口。
- [ ] 停机迁移前后检查目标库真实约束、字段、索引、非法开关组合、冻结异常、总可用金额异常和历史信用关闭状态，任何异常以中文安全摘要阻断发布。
- [ ] 端到端验收覆盖普通现金支付、信用扣款、冻结与解冻、充值清偿、退款回充、调额、创建店铺快照、并发冲突、幂等和可靠事件投递。
- [ ] 开放普通访问前保持所有历史钱包信用关闭，并验证资金概况、角色模板、店铺调额接口权限及 OpenAPI 文档与真实路由一致。
- [ ] 中文功能总结、README、数据库发布步骤、监控指标、异常处理和联调清单齐全；交互契约覆盖角色提示、按钮权限、金额精确显示、降额失败和版本冲突刷新。
- [ ] 回滚说明区分未产生负余额时的安全回退与已产生负余额后的禁止回退条件；后者只能先清偿欠款或继续保留理解信用的资金逻辑。
- [ ] 旧钱包写接缝仅在全部调用方完成迁移后收缩或删除，CI、真实 PostgreSQL/Redis/Asynq 集成测试和迁移检查全部通过后方可完成本票。
