diff --git a/plan.md b/plan.md index 79b9a01..e08398e 100644 --- a/plan.md +++ b/plan.md @@ -1,72 +1,51 @@ -# Plan — ShopXO 酷炫前端模板调研 +# Plan — VR 演唱会票务小程序 Phase 2 技术评估 -> 版本:v1.0 | 日期:2026-04-20 | Agent:council/FirstPrinciples + council/FrontendDev + council/BackendArchitect + council/ProductManager +> 版本:v1.0 | 日期:2026-04-21 | Agent:council/FirstPrinciples + council/BackendArchitect + council/FrontendDev --- ## 任务概述 -vr-shopxo-plugin 项目 Phase 0/1/2 后台开发已完成,现需调研票务商品详情页(`ticket_detail.html`)的酷炫前端模板实现方案。 - -**4个调研方向**: -- Q1:ShopXO 自定义模板最佳实践 -- Q2:单订单多 SKU 支持(多座位选择前提) -- Q3:第三方无代码构建服务提示词策略 -- Q4:uni-app 兼容性技术栈选型 - -**输出文件**:`docs/council-research-output.md` +评估 Phase 2 已完成的 4 个已知问题(购物车提交格式、舞台缩放、spec 加载、商品详情),识别根因,给出修复方案。 --- -## 依赖关系分析 +## 问题清单与分工 -``` -Q2(多SKU) ──→ Q4(uni-app选型)的下单流程基础 -Q3(无代码) ──→ 依赖 Q1 的 ShopXO 模板约束 -Q1(最佳实践) ──→ 基础,供 Q3/Q4 引用 -``` - -**结论**:Q1 + Q2 可并行调研;Q3 依赖 Q1;Q4 依赖 Q2。 - ---- - -## Agent 任务分工 - -### Q1 — ShopXO 自定义模板最佳实践 -**负责人**:council/FrontendDev -**任务清单**: -- [ ] [Claimed: council/FrontendDev] **Task Q1-1**: 读取现有 `ticket_detail.html`,分析当前实现状态 -- [ ] [Claimed: council/FrontendDev] **Task Q1-2**: 研究 ShopXO view/goods/ 模板机制,原生组件/API 清单 -- [ ] [ ] [Claimed: council/FrontendDev] **Task Q1-3**: 前端技术栈选型建议(原生 / Vue CDN / Tailwind / 其他) -- [ ] [ ] [Claimed: council/FrontendDev] **Task Q1-4**: H5 预览与 uni-app 兼容性保障方案 - -### Q2 — 单订单多 SKU 支持 +### P0 — 购物车提交格式错误 **负责人**:council/BackendArchitect **任务清单**: -- [ ] [Claimed: council/BackendArchitect] **Task Q2-1**: 研究 ShopXO 标准订单模型是否支持单订单多 SKU 行项目 -- [ ] [ ] [Claimed: council/BackendArchitect] **Task Q2-2**: 分析多 SKU 下单流程触发条件 -- [ ] [ ] [Claimed: council/BackendArchitect] **Task Q2-3**: 若不支持,给出最小改动方案 +- [ ] [Claimed: council/BackendArchitect] **Task B-P0-1**: 逆向 GoodsCartService::Save,提取真实 API 契约(参数名、格式、类型) +- [ ] [ ] [Claimed: council/BackendArchitect] **Task B-P0-2**: 对比 ticket_detail.html submit() 当前构造的 params,指出具体差异 +- [ ] [ ] [Claimed: council/BackendArchitect] **Task B-P0-3**: 确认 spec_base_id_map 的语义和作用 +- [ ] [ ] [Claimed: council/BackendArchitect] **Task B-P0-4**: spec 加载标准端点分析(GoodsSpecDetail 或其他) -### Q3 — 第三方无代码构建提示词策略 -**负责人**:council/ProductManager +### P1 — 舞台缩放不跟随 +**负责人**:council/FrontendDev **任务清单**: -- [ ] [Claimed: council/ProductManager] **Task Q3-1**: 调研 Google App Build 等无代码服务的能力边界 -- [ ] [ ] [Claimed: council/ProductManager] **Task Q3-2**: 设计 ShopXO 模板约束的 prompt 工程策略 -- [ ] [ ] [Claimed: council/ProductManager] **Task Q3-3**: 生成代码后处理(集成到 ShopXO 的步骤清单) +- [ ] [Claimed: council/FrontendDev] **Task F-P1-1**: 读取 ticket_detail.html 中 .vr-stage 和 .vr-seat-rows 的 DOM 关系 +- [ ] [ ] [Claimed: council/FrontendDev] **Task F-P1-2**: 评估「舞台进入 .vr-seat-rows」vs「共享 CSS 缩放变量」两个方案 +- [ ] [ ] [Claimed: council/FrontendDev] **Task F-P1-3**: 给出推荐修复方案 -### Q4 — uni-app 兼容性技术栈选型 -**负责人**:council/FirstPrinciples(由 BackendArchitect + FrontendDev 提供输入后 FirstPrinciples 汇总) -**前置条件**:Task Q2-3 完成 +### P1 — spec 加载机制回滚问题 +**负责人**:council/BackendArchitect **任务清单**: -- [ ] [Claimed: council/FirstPrinciples] **Task Q4-1**: "一套代码双端"方案评估(H5 + 微信小程序) -- [ ] [ ] [Claimed: council/FirstPrinciples] **Task Q4-2**: ShopXO H5 模板与 uni-app 项目桥接方案 +- [ ] [Claimed: council/BackendArchitect] **Task B-P1-1**: 梳理 ShopXO spec 加载的完整调用链(从商品详情页到 GoodsSpecDetail) +- [ ] [ ] [Claimed: council/BackendArchitect] **Task B-P1-2**: 判断 ticket_detail.html 能否接入原生 spec 加载,或需要自定义接口 -### FirstPrinciples 最终拍板 +### P2 — 商品详情/图片加载 +**负责人**:council/FrontendDev +**任务清单**: +- [ ] [ ] [Claimed: council/FrontendDev] **Task F-P2-1**: 读取 ticket_detail.html 当前 goods_detail/content 渲染状态 +- [ ] [ ] [Claimed: council/FrontendDev] **Task F-P2-2**: 对比 ShopXO 标准商品详情页的渲染方式 + +### FirstPrinciples 核心分析 **负责人**:council/FirstPrinciples **任务清单**: -- [ ] [Claimed: council/FirstPrinciples] **Task FP-1**: 汇总 Q1-Q4 输出,写入 `docs/council-research-output.md` -- [ ] [ ] [Claimed: council/FirstPrinciples] **Task FP-2**: 明确优先级、依赖关系、技术风险 -- [ ] [ ] [Claimed: council/FirstPrinciples] **Task FP-3**: 给出"最小可行方案 vs 理想方案"对比 +- [ ] [Claimed: council/FirstPrinciples] **Task FP-1**: 多座位串行提交 — API 设计正交性分析 +- [ ] [Claimed: council/FirstPrinciples] **Task FP-2**: spec_base_id_map 复杂度质疑:是否存在更简单方案? +- [ ] [Claimed: council/FirstPrinciples] **Task FP-3**: 选座 → 购物车流程是否必要?直购是否更合适? +- [ ] [Claimed: council/FirstPrinciples] **Task FP-4**: 识别被忽略的关键目标(为什么需要 spec?为什么需要库存?) --- @@ -74,9 +53,9 @@ Q1(最佳实践) ──→ 基础,供 Q3/Q4 引用 | 阶段 | 状态 | 说明 | |------|------|------| -| **Draft** | 🔄 进行中 | 各 Agent 调研并提交各自方向报告 | -| **Review** | ⬜ 待开始 | 各 Agent 交叉评审,FirstPrinciples 汇总 | -| **Finalize** | ⬜ 待开始 | 输出 council-research-output.md | +| **Draft** | 🔄 进行中 | 各 Agent 读取核心文件,提交 findings | +| **Review** | ⬜ 待开始 | FirstPrinciples 汇总所有 findings | +| **Finalize** | ⬜ 待开始 | 输出 `reviews/council-phase2-assessment.md` | --- @@ -84,26 +63,26 @@ Q1(最佳实践) ──→ 基础,供 Q3/Q4 引用 | 文件 | 内容 | 负责人 | |------|------|--------| -| `docs/Q1-frontend-research.md` | ShopXO 自定义模板最佳实践 | FrontendDev | -| `docs/Q2-multisku-research.md` | 单订单多 SKU 支持分析 | BackendArchitect | -| `docs/Q3-nocode-prompt-strategy.md` | 无代码构建提示词策略 | ProductManager | -| `docs/council-research-output.md` | 汇总报告(最终输出) | FirstPrinciples | +| `reviews/FirstPrinciples-on-phase2-assessment.md` | 第一性原则分析报告 | FirstPrinciples | +| `reviews/council-phase2-assessment.md` | 合并评估报告(最终输出) | FirstPrinciples | --- -## 技术风险识别(初判) +## 依赖关系 -| 风险 | 方向 | 影响 | 应对 | -|------|------|------|------| -| ShopXO 不支持多 SKU 单订单 | Q2 | 高:多座位无法落地 | 备选:拆单或扩展订单模型 | -| uni-app 与 ShopXO H5 模板不兼容 | Q4 | 高:需二选一 | 最小方案:纯 H5;理想方案:uni-app | -| 无代码服务生成的代码无法集成 | Q3 | 中:增加后处理成本 | 限制 prompt 约束,或放弃无代码路线 | -| 酷炫 UI 需要 SSR/异步加载 | Q1 | 中:ShopXO 模板引擎限制 | 使用前端 JS 框架渐进增强 | +``` +Task B-P0-1 → B-P0-2 → B-P0-3(串行,BackendArchitect) +Task B-P1-1 → B-P1-2(串行,BackendArchitect) +Task F-P1-1 → F-P1-2 → F-P1-3(串行,FrontendDev) +Task F-P2-1 → F-P2-2(串行,FrontendDev) +Task FP-1~4 → 等待 B/F 报告后执行(并行但依赖输入) +``` --- -## 共识收敛策略 +## 关键问题提醒(FirstPrinciples 视角) -- **第 1 轮**(本轮):各 Agent 创建 plan 并 claim 任务 -- **第 2 轮**:各 Agent 完成调研,提交报告到 docs/ -- **第 3 轮**:FirstPrinciples 汇总,如无法收敛则 FirstPrinciples 拍板 +1. **购物车是否必要?** VR 演唱会票务是单场次、强时效性商品,购物车流程是否增加了不必要的复杂度? +2. **spec_base_id_map 的隐式假设**:为什么一个座位选择需要映射到 spec?这个设计是否源于对 ShopXO 架构的路径依赖? +3. **缩放是技术问题还是设计问题?** 如果舞台是「视觉引导」而非「交互元素」,缩放需求本身是否合理? +4. **已售座位展示的优先级**:是否真的是 P0?如果座位图本身就是展示性的,已售状态是否可以通过其他方式(如下单时返回错误)处理?