直接修正三条基础假设:
| 对象 | 直接修正 | 依据 |
|---|---|---|
| 构建、配置、模块加载、日志与健康检查 | 进入最小内核;端侧骨架可复用,导航和工作台布局归应用组合层 | 同技术栈支持工程复用,但材料未证明三端业务结构一致 |
| 订单、支付、退款 | 先作为可版本化交易模块,通过接口供业务调用;支付渠道采用适配器 | 同名页面不足以证明订单状态机、库存、价格、退款和资金规则一致,具体规则『材料未涉及』 |
| 商户入驻、审核、工作台、账单 | 归商户模块,不强制所有实例加载 | 两实例有商户,不代表第三实例必然有商户;账单还依赖交易与结算语义 |
| 核销、评价、消息 | 拆开:核销与评价归业务模块;消息分发接口和渠道适配可进入平台能力,业务触发规则留模块 | 三者生命周期和依赖不同,材料没有必须打包的依据 |
| 用户、地址、设置、隐私 | 身份标识、认证与授权接口进入内核;地址归可选资料模块;设置与隐私采用版本化配置及流程 | 地址不一定适用于所有业务;隐私涉及采集与授权行为,不只是页面文案 |
| “鉴权三通道+JWT” | 抽身份提供方、会话验证、授权与审计契约,不固化为三通道;JWT 为实现选项 | 两实例登录入口不同,未证明三通道是通用模型 |
| 归因引擎 | 暂留归因模块,统一事件和查询契约后再判断能否共享实现 | attribution.py 与扫码事件字段不能证明归因窗口、去重和结算规则一致 |
| 上传与对象存储 | 接口、安全校验机制进入内核;存储供应商、桶和访问策略通过适配器配置 | 材料存在不同上传和域名实现,适合隔离供应商差异 |
| AGENTS/TASKS/docs/cron | AGENTS、文档模板归工程工具链;cron 的调度机制与业务任务分离 | 团队管理文件不是运行时业务内核,目录同构不等于必须一起发布 |
| wallet/vouchers/credits/会员/分销等 | 保留为模块;明确资金、积分、券之间的接口和所有权,不因“两边都有”自动升格 | 这些能力有独立业务规则,具体账务、清结算要求『材料未涉及』 |
| 潮汐、海拔、气象、地理及时区 | 品牌地点归配置;时区、单位、坐标约定归公共配置;计算、告警及数据源归业务模块或适配器 | 海拔与潮汐不只是文案,会影响数据解释和业务行为 |
应补进内核的不是更多业务,而是模块治理机制:模块依赖检查、配置校验、版本兼容、迁移执行接口、事件契约、可观测性和授权执行机制。
依据:材料已有“模块开关”,但未定义关闭后如何处理接口、权限、任务、依赖及历史数据。
每个模块增加 module.manifest,至少声明:
模块标识/版本/依赖
API与事件契约
权限与数据归属
迁移与种子版本
页面、后台入口与定时任务
启停约束与兼容范围
规则:模块开关不等于隐藏页面,更不等于允许删除数据。依据:订单、退款、账单等存在跨模块生命周期;材料尚未给出停用策略。
固定代码版本、数据库迁移版本、关键 API 契约及回归用例。
依据:持续迭代条件下,没有基线就无法区分原有缺陷、业务变更和抽取回归。
建议从配置加载、品牌注入、构建产物或存储适配切入;暂不从订单状态机和支付退款开刀。
依据:后者影响交易闭环,且其差异与测试保障『材料未涉及』。
对破坏性变更设评审入口,以适配器兼容;安全修复和线上故障修复保留例外通道。
依据:全项目冻结会阻塞两个现有实例;契约冻结能缩小协调范围。
一个实例通过验证后,另一个再接入;不让两个实例自动追随内核最新版本。
依据:模式 A 是单租户复制,适合独立发布和故障隔离,而非强制同步升级。
先新增兼容结构,再切换读写,最后清理旧结构;涉及写入语义变化时验证数据恢复或前向修复。
依据:“代码可回滚”不代表已写入的数据可以回滚,材料对此无方案。
将原 5—8 天全面抽取改为:
5—8 天完成边界盘点、一个低风险切片、两个实例的契约验证及一次回滚演练;后续按实测结果估算。此为建议时间盒,不是保证工期。
依据:现有材料只有目录级比较,不足以支撑全面迁移的工期判断。kailash 可以先行验证,但不能以“小而全”为由默认它是领域标准;“全”的证据『材料未涉及』。
建议拆成四类:实例声明、环境覆盖、密钥引用、版本化种子数据。
| 配置块 | 必补要素 | 依据 |
|---|---|---|
identity | 稳定实例 ID、配置 schema 版本、负责人引用 | 品牌名可能变化,不能承担稳定身份;材料无 schema 演进机制 |
release | 内核版本、模块锁定清单、配置版本、兼容要求 | 独立实例需要可重现构建和独立升级 |
environments | 开发/测试/生产环境、API 地址、回调域名、合法域名及部署目标 | 一个域名和 appid 不足以区分环境及调用链 |
brand | 名称、图标、主题、资产地址、端侧展示信息 | 材料已涉及,但需结构化并校验资产完整性 |
modules | 模块版本、依赖、业务参数、启停与数据保留策略 | 布尔开关无法表达模块兼容和停用后行为 |
navigation | 各端页面注册、菜单、入口和路由绑定 | 材料提出页面注册表,却未进入 tenant.yaml 清单 |
authorization | 角色—权限绑定、数据范围、身份关联规则 | “居民/领队”只是角色名称,不能直接决定可访问数据 |
integrations | 支付、消息、存储、地图及外部数据源的适配器配置和密钥引用 | 上传、支付、气象等已出现,但供应商与接入差异未建模 |
locale | 时区、语言、币种、计量单位、坐标约定、业务区域 | 材料将地理差异降为内容,遗漏计算和展示语义 |
privacy | 主体信息引用、隐私政策版本、采集能力声明、保留与删除策略 | 材料有隐私页面,但未定义实例级数据处理差异 |
data | DB/缓存/存储资源引用、迁移版本、种子版本、幂等初始化规则 | 独立 DB 不等于所有资源都已隔离,也不保证重复初始化安全 |
operations | 健康检查、告警归属、备份恢复策略、审计及回滚配置引用 | “验证 health”不足以支持长期交付 |
delivery | 小程序发布身份引用、目标环境、构建与交付验收项 | “10 分钟出新小程序”混淆生成产物与平台发布 |
补充两条约束:
secretRef。依据:配置需要复制和版本管理,支付密钥、数据库密码等不应随模板传播。原“校验 9 项→生成 9 项”应改为具名、可自动执行的校验与产物清单;具体九项内容『材料未涉及』,不能据此验收。
直接修正:第三实例选“有真实负责人、明确最小闭环、至少一项结构差异”的独立需求,不选纯换皮品牌。具体品牌『材料未涉及』,不能指定。
筛选条件:
依据:第三实例的价值是发现两实例共同遗漏的变化维度,而不是再次证明名称和主题可替换。
同时明确:
| 验证对象 | 可以证明什么 | 不能证明什么 |
|---|---|---|
| 虚构品牌 | 初始化、构建、配置校验、部署冒烟 | 真实业务适配与商业交付能力 |
| YOS 迁移 | 旧系统兼容性、迁移完整性 | 第三个独立需求的泛化能力 |
| 真实第三需求 | 新业务下的边界稳定性与交付成本 | 尚未覆盖的全部行业通用性 |
没有真实需求时,先做虚构样板,但验收名称改为“初始化流水线验证”。
“10 分钟”仅作为前置资源已齐备后的自动生成/部署目标;账号准备、证书、数据接入、平台审核时长等『材料未涉及』,不得计为已经解决。
当前灰度进度、提审日期、阻断缺陷及审核状态均『材料未涉及』。因此采用以下默认排序,不假定当前已到某一阶段。
当前版本业务闭环与合规检查 → 灰度验收 → 提审基线冻结 → 提审及发布验证 → 分切片迁移 → 真实第三实例验证。
依据:白标化抽取会同时改变构建、配置和业务路径;与当前提审版本混合,会扩大回归范围并削弱故障定位能力。
可并行做与必须后置的工作分别是:
| 可并行,不侵入当前发布基线 | 默认后置 |
|---|---|
| 两实例契约盘点、schema 设计、模板生成器、回归测试、独立环境原型 | 替换订单/支付/退款实现、改身份权限模型、破坏性数据库迁移、两个实例同步升级 |
依据:前者可以独立验证,后者直接改变线上行为和数据兼容性。
冈子 miniprogram-v2 可以立即内建配置入口、适配器接口和模块注册机制,但不要因此要求 YOS 同期迁移。
依据:材料说明 v2 正在重做,适合低成本预留接口;没有证据表明两项目必须同步切换。
若白标化中的某项修改确实是当前提审的必要条件,只合入满足发布的最小修复,单独回归,不捆绑整套内核重构。
依据:发布阻断应按实际依赖处理,而不是让平台化目标扩大当前版本范围。
在不扩大当前发布风险的前提下,完成最小内核与模块契约定义;以一个低风险切片证明两实例可固定版本、独立升级、可验证回退;以真实第三需求检验泛化能力。初始化速度只衡量自动化链路,不代替业务验收与提审上线。
依据:这套目标分别验证了复用、迁移安全和新实例适配,避免用“目录相似、生成成功、工期完成”替代架构有效性。