ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes P29-0,P29执行合同建档与切换边界冻结,创建并校验替代验收与切换治理执行合同 CSV 并冻结本轮共存 迁移 切换 回滚边界,CSV 通过校验且明确本期以 dry-run 共存 切换和回滚手册为主 不直接覆盖线上旧 OA 数据,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-21_09-50-00-p29-replacement-readiness.csv,manual,TODO,TODO,TODO,issues/2026-03-21_09-50-00-p29-replacement-readiness.csv|deploy/trialrun/runbook.md|docs/feature-matrix.md,[],P29 以可切换 可回滚 可审计为目标 不追求一次性全量替换 P29-1,旧 OA 共存与数据映射清单,梳理旧 OA 与 hyb-oa 的用户 组织 单据 状态 编号 附件映射并形成可审计清单,映射清单覆盖用户 组织 单据 状态 编号 附件且可支撑试点范围共存与核对,git diff --check,manual,TODO,TODO,TODO,docs/migration-mapping.md|docs/integration-boundaries.md|issues/2026-03-21_09-50-00-p29-replacement-readiness.csv,"[""P29-0""]",映射清单只描述映射规则和差异 不直接导入真实生产数据 P29-2,迁移工具与 dry-run,新增 dry-run 导入 对账 差异报告和回滚清单能力用于替代前演练,迁移工具支持 dry-run 差异报告 正式导入前校验和回滚清单导出且不直接覆盖源系统数据,cd server && npm test -- tests/unit/services/integrations/outbox.test.js tests/unit/services/erpMasterData.test.js && git diff --check,manual,TODO,TODO,TODO,server/src/routes/migrationRuns.js|server/src/scripts|server/src/services/integrations|docs/migration-mapping.md|deploy/trialrun/runbook.md,"[""P29-1""]",所有迁移先 dry-run 后正式导入 正式导入必须有备份与回滚清单 P29-3,试点切换控制台,提供按部门 法体 业务域粒度启停新旧入口与回退开关的控制台,可按部门 法体 域启停新旧入口并记录切换审计 且不允许一次性全量切换,cd server && npm test -- tests/unit/services/featureFlags.test.js tests/unit/routes/ai.test.js && cd ../client && npm run typecheck && npm run build,manual,TODO,TODO,TODO,server/src/routes/cutover.js|server/src/routes/featureFlags.js|client/src/pages/CutoverConsolePage.tsx|client/src/api/featureFlags.ts|client/src/router/index.tsx,"[""P29-2""]",切换控制优先复用现有 feature flags 和审计能力 不单建配置中心 P29-4,替代验收脚本与 Runbook 补齐,补齐试点验收 灰度切换 故障回退 审计取证和备份恢复手册与脚本,形成可执行的试点验收清单 切换步骤 回退步骤 审计取证说明和备份恢复演练入口,cd server && ./scripts/regression-all.sh && git diff --check,manual,TODO,TODO,TODO,deploy/trialrun/runbook.md|deploy/trialrun/checklist.md|server/scripts/regression-all.sh|docs/ops/slo.md|issues/2026-03-21_09-50-00-p29-replacement-readiness.csv,"[""P29-3""]",回滚优先配置回退和备份恢复 不做 destructive 数据回滚 P29-5,文档矩阵与规格书收口,同步替代准备阶段到规格书 Feature Matrix 集成边界和运维文档事实源,文档可完整描述共存 迁移 切换 回滚与替代验收边界且事实源一致,python3 scripts/validate-feature-matrix.py && git diff --check,manual,TODO,TODO,TODO,docs/requirements-specification.md|docs/feature-matrix.md|docs/integration-boundaries.md|deploy/trialrun/runbook.md|issues/2026-03-21_09-50-00-p29-replacement-readiness.csv,"[""P29-4""]",只同步已承诺的切换治理与 runbook 不提前承诺全量替代完成态 P29-6,P29六个月最终验收,完成共存 映射 dry-run 切换 回滚和试点替代后的六个月最终验收收口,试点范围旧 OA 新单停用 新平台接管主链路且审计 SLO 回归 备份恢复 切换演练均留痕,cd server && npm test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build && git diff --check,manual,TODO,TODO,TODO,issues/2026-03-21_09-50-00-p29-replacement-readiness.csv|deploy/trialrun/runbook.md|deploy/trialrun/checklist.md|server/scripts/regression-all.sh,"[""P29-5""]",P29 完成标准以试点范围可切换 可回滚 可审计为准