Files
vmall/openspec/MIGRATION-PLAN.md
T

59 lines
3.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tigshop → VMall Migration Plan
> 临时跟踪文档:每实现并验证一个 change(tasks 全勾、`openspec archive` 完成、`openspec validate --all --strict` 全绿)后,更新本文档状态表。**8 个 change 全部归档后删除本文件。**
来源:对 `/Users/chengdzhang/github/jamyun/tigshop`(Admin + Uniapp + PHP 后端)的只读盘点。迁移的是领域模型与信息架构,不是代码。
## 明确排除(不迁移)
- 微信小程序专属能力(wx.login / requestPayment / 订阅消息 / 分享 / 企业客服)
- 供应商(vendor)三层体系 —— 架构级决策,非功能迁移
- 分销(tigshop 自身半成品)、完整拖拽装修器、电子卡密/虚拟商品、直播、打印、内置 IM
## 依赖图
```
P6 content-admin-ui ──┐(无依赖,热身)
P1 product-reviews ───┤(无依赖,可并行)
P5 onboarding ────────┤(无依赖,可并行)
P7 membership ────────┤(无依赖,可并行)
│
P0 aftersale ─────────┤
│ │
├─→ P3 wallet-settlement(结算需扣减退款,硬依赖 P0 的 aftersales 表)
│ │
└────────┴─→ P4 mobile-h5(售后/钱包页面消费 P0/P3 API;核心链路只依赖现有 API,可与 P3 并行起步)
P2 freight ───────────┘(改 checkout/order totals,与 P0 同触 order 模块,建议与 P0 串行)
```
## 推荐实施波次
| 波次 | Changes | 说明 |
|---|---|---|
| Wave 1 | P6 → P0 → P2 → P1 | P6 热身(纯前端);P0/P2 都动 order 模块故串行;P1 任意位置插入 |
| Wave 2 | P3、P5、P7 | P3 必须在 P0 归档后启动;P5/P7 随时可插 |
| Wave 3 | P4 | 移动 H5 收尾,消费前面所有 API;P0/P3 未完成时对应页面降级 Coming soon |
## 状态跟踪
| # | Change | 依赖 | 状态 | 归档日期 |
|---|---|---|---|---|
| P0 | `add-aftersale-refunds` | — | archived | 2026-09-23 |
| P1 | `add-product-reviews` | — | proposed | — |
| P2 | `add-freight-templates` | —(与 P0 串行) | proposed | — |
| P3 | `add-wallet-settlement` | P0 | proposed | — |
| P4 | `add-mobile-h5` | P0、P3(软) | proposed | — |
| P5 | `add-merchant-onboarding` | — | proposed | — |
| P6 | `add-content-admin-ui` | — | archived | 2026-09-23 |
| P7 | `add-membership-messaging` | — | proposed | — |
状态取值:`proposed` → `implementing` → `verified`(tasks 全勾 + 测试/构建/smoke 通过)→ `archived`。
## 更新规则
1. 开始实现某 change:状态改 `implementing`。
2. 实现并验证完成(含 `cargo test -p vmall-api` 连跑两次全绿、受影响前端 build、浏览器 smoke):状态改 `verified`。
3. `openspec archive <name> --yes` 且 `openspec validate --all --strict` 全绿:状态改 `archived`,填归档日期。
4. 实施中发现新的跨 change 依赖:先更新本文件依赖图,再继续。
5. 全部 `archived` 后:删除本文件。