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

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