|
|
|
@@ -7,20 +7,25 @@
|
|
|
|
|
## Current Planning Gate
|
|
|
|
|
|
|
|
|
|
- 原候选 `174cb7a` 只包含撤回投影与 EXIF 尺寸修复,未覆盖已确认的非参与人草稿/驳回维护动作和服务端解绑资格问题,因此不再作为最终部署基线。
|
|
|
|
|
- `08-28-reimbursement-nonparticipant-readonly-projection` 已实施、只读复核并形成业务提交 `e8d6766`;本地部署候选固定为 `8c28e15`,包含该业务提交及元数据回填。候选尚未推送,不能视为已发布候选;后续候选固化文档提交不纳入部署。
|
|
|
|
|
- Requirements、Acceptance Criteria、`design.md` 与 `implement.md` 已写明回滚到 `f178aa0` 的触发条件/动作、迁移 pre/post status、公网角色和材料预览检查;本任务继续保持 `planning`,等待用户审查并另行批准推送/部署。
|
|
|
|
|
- `08-28-reimbursement-nonparticipant-readonly-projection` 已实施、只读复核并形成业务提交 `e8d6766`;部署工具只能以干净工作区的当前 `HEAD` 作为来源,因此旧口径 `8c28e15` 作候选失效。
|
|
|
|
|
- 本次 PRD 修订提交完成后,以当时最终 `HEAD` 冻结候选,并在外部审批记录中写死完整/短 SHA;冻结后到部署收口前不得再产生任何提交(包括文档提交)、untracked 文件或工作区修改。若 HEAD 或工作区变化,原审批失效,必须重新冻结和审查。
|
|
|
|
|
- Requirements、Acceptance Criteria、`design.md` 与 `implement.md` 已写明回滚到 `f178aa0` 的触发条件/动作、迁移 pre/post status、公网角色和材料预览检查;本任务继续保持 `planning`,等待用户先审查候选并单独批准推送,再单独批准生产部署。
|
|
|
|
|
- 当前未经批准不得推送、部署、写生产或归档 Task A。
|
|
|
|
|
|
|
|
|
|
## Scope
|
|
|
|
|
|
|
|
|
|
- 在 P0 只读投影修复完成并提交后,冻结包含两轮报销修复的候选 SHA;候选必须进入远端上游并通过来源校验。
|
|
|
|
|
- 在 P0 只读投影修复完成并提交后,以最终干净 `HEAD` 冻结包含两轮报销修复的候选 SHA;候选冻结后禁止任何仓库变化。
|
|
|
|
|
- 推送是独立、显式授权的发布门:取得单独推送批准后,只推送已冻结候选所在分支,再确认 upstream 包含该 SHA 且 provenance 未使用 unpublished override。推送成功不等于批准部署。
|
|
|
|
|
- 使用现有 `deploy/trialrun/deploy-existing.sh` 完成生产只读 preflight、existing 模式部署、init、迁移状态复核、运行时 smoke、构建标识和备份合同刷新。
|
|
|
|
|
- 部署后核验财务/管理员非参与人只读视图、owner 维护/撤回合同和材料合并预览;不把真实票据内容写入证据。
|
|
|
|
|
- 固定回滚基线为 `f178aa0`;部署切换后的任一必需门禁失败时执行同一正式入口回滚应用代码,不回退数据库 migration。
|
|
|
|
|
|
|
|
|
|
## Requirements
|
|
|
|
|
|
|
|
|
|
- 部署前必须显式复核候选提交范围、上游包含关系、生产身份、existing 数据目录、待迁移清单和回滚窗口;来源未发布、工作区不干净或身份不唯一时停止。
|
|
|
|
|
- 候选冻结时必须确认工作区完全干净,以当前分支 `HEAD` 作为唯一候选并记录 SHA;之后任何提交、tracked/untracked 变化或 HEAD 漂移都使候选失效。
|
|
|
|
|
- 推送必须另行获得明确批准。推送后必须确认当前分支有 upstream、候选是 upstream 的祖先,并以默认严格模式通过 `check-source-provenance.mjs`;不得使用 `allowUnpublished` 或接受 `overrideUsed: true`。
|
|
|
|
|
- 只有候选已推送且来源校验通过后,才可请求另一项独立的生产部署批准。部署批准不得从 PRD 审批或推送批准中推定。
|
|
|
|
|
- 部署前必须显式复核候选提交范围、生产身份、existing 数据目录、待迁移清单和回滚窗口;来源未发布、工作区不干净、HEAD 不等于已批准候选或身份不唯一时停止。
|
|
|
|
|
- 即使候选没有新增 migration,init 后仍必须显式运行并记录 Prisma migration status;不得因“无 schema 变更”跳过。
|
|
|
|
|
- `SYNC_ENV=0`,不覆盖生产环境文件;不 reset 数据库、不覆盖 DB/附件目录、不清理 `pdf-v2` 进程内缓存,应用重启自然失效。
|
|
|
|
|
- 公网 `/ready` 和前端 bundle marker 必须等于最终候选短 SHA;迁移、runtime/external smoke、备份合同刷新和角色化检查全部为必需门禁。
|
|
|
|
@@ -30,9 +35,12 @@
|
|
|
|
|
|
|
|
|
|
## Acceptance Criteria
|
|
|
|
|
|
|
|
|
|
- [x] 非参与人只读投影修复已实施、复核并提交为 `e8d6766`;本地部署候选已固定为 `8c28e15`,但尚未发布。
|
|
|
|
|
- [ ] 完整部署 PRD、设计、实施和回滚清单经用户审查批准。
|
|
|
|
|
- [ ] 最终候选已发布且 `/ready`、bundle marker、迁移状态、runtime/external smoke 和备份合同刷新全部通过。
|
|
|
|
|
- [x] 非参与人只读投影修复已实施、复核并提交为 `e8d6766`。
|
|
|
|
|
- [ ] 本次 PRD 修订提交完成后的最终干净 `HEAD` 已冻结,具体 SHA 已在外部审批记录中写死,且冻结后无任何仓库变化。
|
|
|
|
|
- [ ] 完整部署 PRD、设计、实施和回滚清单经用户审查;用户已单独批准推送冻结候选。
|
|
|
|
|
- [ ] 推送完成,upstream 包含冻结候选,严格 provenance 通过且 `overrideUsed` 不为 true。
|
|
|
|
|
- [ ] 用户在来源校验通过后另行明确批准生产部署。
|
|
|
|
|
- [ ] 最终候选的 `/ready`、bundle marker、迁移状态、runtime/external smoke 和备份合同刷新全部通过。
|
|
|
|
|
- [ ] 财务/管理员非参与人无报销人维护动作,owner 既有维护合同正常,材料合并预览可打开且页序和比例正常。
|
|
|
|
|
- [ ] 任一必需门禁失败时已按固定动作回滚到 `f178aa0` 并完成回滚后复核,未临场选择其他基线。
|
|
|
|
|
- [ ] 公网检查通过后才报告可测试并归档相关任务。
|
|
|
|
@@ -46,7 +54,8 @@
|
|
|
|
|
|
|
|
|
|
## Test Plan
|
|
|
|
|
|
|
|
|
|
- 部署前:候选范围/上游来源、`check-existing-deployment.sh`、production identity/preflight、期望待迁移清单和回滚窗口。
|
|
|
|
|
- 冻结与推送:干净工作区、当前分支 `HEAD`、外部审批记录中的固定 SHA、独立 push 批准、upstream 祖先关系和严格 provenance(禁止 unpublished override)。
|
|
|
|
|
- 部署前:独立部署批准、候选范围/上游来源、`check-existing-deployment.sh`、production identity/preflight、期望待迁移清单和回滚窗口。
|
|
|
|
|
- 部署入口:`deploy-existing.sh` 的 existing 模式、`SYNC_ENV=0`、init、pre/post Prisma status、runtime/external smoke、`/ready`、bundle marker 和合同 refresh。
|
|
|
|
|
- 公网角色:财务/管理员非参与人只读、owner 维护/撤回、材料合并预览与原件降级;只保留脱敏结论。
|
|
|
|
|
- 回滚演练:从受控干净来源发布 `f178aa0`,复核构建标识、迁移状态、运行 smoke、挂载和公网入口。
|
|
|
|
|