Files
junhong_cmp_fiber/openspec/changes/complete-july-iteration-test-release/proposal.md
break 5c4d17e9fc
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled
收口七月卡状态回调与系列授权兼容契约
完成运营商实名回调、业务事件观测序列与受控配置装配,同时恢复 UR43 已交付的 packages[].remove 字段及旧响应兼容,统一更新 OpenSpec、OpenAPI 和交付文档。

Constraint: 七月测试环境里程碑不新增或运行自动化测试

Rejected: 以必填 operation_type 替换 packages[].remove | 会破坏已交付前端契约

Confidence: high

Scope-risk: broad

Directive: 后续修改系列套餐管理接口必须保持 packages[].remove 和 ShopSeriesGrantResponse 兼容

Tested: go run ./cmd/gendocs;go build -buildvcs=false ./...;openspec validate complete-july-iteration-test-release --strict;git diff --check

Not-tested: 按本 Change 约定未运行 go test,真实运营商与 Gateway 联调延期
2026-07-24 19:59:24 +08:00

6.3 KiB
Raw Blame History

Why

七月迭代的标准评审稿、28 条技术/业务线、已评审 PRD、既有 Tickets、代码完成证据和发布约束目前分散在多个 .scratch 目录及提交记录中,已出现“代码已落地但元数据未收口”“后端完成被误认为整体验收完成”和跨 PRD 阻塞仍引用已暂缓审计专项等状态漂移。为在 2026-07-27 前形成可部署到测试环境的唯一剩余实施入口,需要建立一个统一、可勾选且保留来源追溯的 OpenSpec Change。

本 Change功能 IDfeature-july-iteration-test-release)不重写既有 PRD也不实施业务代码它以已评审标准稿为冲突裁决来源将既有 PRD 冻结为业务事实来源,并统一状态、依赖、纵向任务、测试环境发布门槛和生产前延期治理项。

What Changes

  • 建立覆盖 28 条技术/业务线的唯一总台账,逐条记录稳定编号、来源 PRD/Ticket、主/辅助架构通道、具体上游任务、后端状态、前端状态、验证状态和发布状态。
  • 按真实证据预置状态TECH 七月公共开发基础和 UR55 标记已完成UR45 标记“后端完成、原 Ticket 元数据待收口”UR46、UR60、UR86 仅标记后端完成,保留前端与人工验收未完成;其余 22 条线保持未开始。
  • 将已有 Tickets 直接纳入统一执行契约;将 UR33、UR34、UR35、UR42、UR44、UR53、UR57、UR62、UR73、UR97 的冻结 PRD 转换为可独立实施和验证的纵向任务,不再创建新的 .scratch/issues
  • 按三批实施:共享核心与独立 frontier、共享核心下游、复杂业务最终收口已落地需求的前端契约、测试环境装配、迁移和人工验收准备。
  • 调整审批实施顺序:先定义由业务侧拥有的渠道无关 Approval Port 和标准决策,再完成退款、线下充值的金额、状态机与终态处理,最后接入企微作为首个 Adapter未来接入钉钉或其他审批平台时不得修改退款、充值、钱包、佣金和套餐核心规则。
  • 审批公共层只统一业务引用、标准状态、提交/同步 Port、终态事件和渠道标识不建设本地通用审批流引擎审批节点、审批人、会签/或签、意见和渠道附件仍由外部平台负责。
  • 将用户已确认的紧急交付决策写入契约:本里程碑目标是测试环境部署,不是生产验收;不新增 _test.go、不运行 go test、不执行真实 PostgreSQL/Redis/企微/支付/Gateway 自动验收,仅执行 gofmt、必要代码生成、按批次 go build ./... 与部署检查。
  • 将全局 Audit Event 专项移出本 Change 及本次实际上线范围:保留提交 ff44305 及既有代码、迁移和 Access Log 脱敏不继续开发审计中心、Audit Event 写入、历史投影或一次性审计发布门禁,也不把它们作为测试环境或生产上线阻塞项;未来如需恢复,必须另开独立 Change 重新评审。
  • 保留 Integration Log、Outbox、Domain Ledger、幂等、事务和外部调用恢复能力它们继续作为业务可靠性设施不因 Audit Event 移出范围而删除、回滚或绕过。
  • 永久排除已于 2026-07-14 移出本期的需求16不得创建分销码、代理申请、分销关系、佣金提现相关表、API、页面、领域目录或迁移。
  • 统一接口与工程约束Fiber、GORM、PostgreSQL、Redis、Asynq、Viper、Zap、sonic复杂写、简单写、Query 三通道触碰式迁移;统一响应 {code,msg,data,timestamp};错误使用 pkg/errors;列表默认 20、最大 100数据权限、幂等、无外键和文档生成器更新继续遵守项目标准。
  • BREAKING:按冻结 PRD 和标准评审稿实施时,退款与平台线下充值将停机切换到渠道无关审批契约,并以企微作为本期首个交付 Adapter下线旧本地审批/入账动作接口。系列授权不属于本次破坏性切换范围,必须继续兼容已交付的 packages[].remove 请求字段及其删除语义。

Capabilities

New Capabilities

  • july-iteration-master-ledger: 定义 28 条线的唯一稳定编号、来源权威、真实完成状态、具体依赖和需求16排除规则。
  • july-iteration-delivery-contract: 定义冻结业务来源、DDD 三通道、渠道无关审批 Port/Adapter、API/权限/分页/错误契约、可靠性设施及前后端纵向交付边界。
  • july-iteration-test-release-gate: 定义测试环境发布豁免、Audit Event 排除边界、部署与回滚顺序、状态真实性以及仍需完成的生产发布门禁。

Modified Capabilities

无。本 Change 不直接改写 openspec/specs/ 中现有能力规格;七月业务行为以标准评审稿和各冻结 PRD 为来源,由上述三个总控能力约束统一实施与发布。

Impact

  • 规划与权威关系:后续七月迭代只从本 Change 的 tasks.md 领取剩余工作;原 .scratch PRD/Tickets 保留溯源和业务细节,不废弃、不另行扩展。冲突时依次以用户本次确认、七月标准评审稿、冻结 PRD、既有 Ticket 为准。
  • 后端:后续实施将触及资产、套餐、钱包、订单、退款、充值、渠道无关审批核心、企微首个 Adapter、通知、导出、Gateway、运营商回调、异步任务、系统配置及相关迁移、API/Worker 组合根;本次提案本身不修改这些业务代码。
  • 前端:涉及后台管理端、代理端和 C 端 H5/公众号的页面、状态、上传、轮询、审批、支付、导出和人工验收契约;当前仓库无前端源码,只交付框架无关契约与联调清单。
  • 外部系统:企业微信是本期首个审批 Adapter钉钉等未来渠道通过同一 Approval Port 扩展另涉及微信支付、支付宝、Gateway、运营商回调、对象存储、PostgreSQL、Redis/Asynq。本测试环境里程碑仅完成装配与人工验收准备真实外部验收延期。
  • 性能与安全:继续要求 API P95 < 200ms、P99 < 500ms、数据库查询 < 50ms列表分页、批量查询避免 N+1Access Log 脱敏继续生效,敏感配置和底层错误不得对外泄露。
  • 文档后续每个纵向切片仍需同步中文功能文档、README 索引、OpenAPI 文档生成器及跨仓前端契约;本 Change 作为七月迭代唯一总台账和剩余实施入口。