{"success":true,"data":{"module":"production-p0-customer-handoff","marker":"productionP0CustomerHandoff","generatedAt":"2026-04-29 15:52:03","title":"生产化 P0 清零客户移交包","decision":"CUSTOMER_HANDOFF_READY_NOT_PRODUCTION_GO_LIVE","publicSmoke":"244/244 PASS","consistency":"117/117 PASS","handoffUrl":"https://xia.shenliu.cc/xia-production-p0-customer-handoff/","archiveUrl":"https://xia.shenliu.cc/xia-production-p0-clearance-archive/","commandUrl":"https://xia.shenliu.cc/xia-production-p0-clearance-command/","apiUrl":"https://xia.shenliu.cc/xia-api/system/production-p0-customer-handoff","summary":{"sections":6,"archiveRecords":8,"totalP0":2,"openBlockers":2,"customerActionItems":2,"canRequestGoLiveReview":false},"customerActions":[{"materialKey":"wechat-mini-program","title":"微信小程序 AppID 与发布资料","owner":"客户产品负责人","statusLabel":"未提交","missingRequired":["appId","adminName","privacyUrl"],"requiredAction":"客户尚未提交该 P0 资料，请从资料提交页登记。","runbook":"https://xia.shenliu.cc/xia-wechat-runbook/"},{"materialKey":"mysql-production","title":"生产 MySQL 与迁移脚本","owner":"客户运维/开发","statusLabel":"未提交","missingRequired":["host","database","backupWindow"],"requiredAction":"客户尚未提交该 P0 资料，请从资料提交页登记。","runbook":"https://xia.shenliu.cc/xia-mysql-runbook/"}],"handoffSections":[{"code":"HAND-01","title":"先确认当前版本可测试","owner":"客户测试负责人","url":"https://xia.shenliu.cc/xia-test-acceptance-command-center/","expected":"可按客户测试验收总控台继续测试，测试通过不等于生产上线。"},{"code":"HAND-02","title":"查看 P0 清零指挥","owner":"客户负责人 / 项目负责人","url":"https://xia.shenliu.cc/xia-production-p0-clearance-command/","expected":"确认微信小程序资料与生产 MySQL 是当前生产上线 P0 阻断。"},{"code":"HAND-03","title":"执行或复核 P0 演练","owner":"开发/测试/运营","url":"https://xia.shenliu.cc/xia-production-p0-clearance-rehearsal/","expected":"P0R-01 至 P0R-06 均有执行说明和预期结果。"},{"code":"HAND-04","title":"归档证据","owner":"项目负责人","url":"https://xia.shenliu.cc/xia-production-p0-clearance-archive/","expected":"P0A-00 至 P0A-07 可作为客户会议材料附件。"},{"code":"HAND-05","title":"补齐真实生产资料","owner":"客户产品/运维","url":"https://xia.shenliu.cc/xia-material-submit/","expected":"提交真实 AppID、管理员、隐私协议、生产 MySQL、备份窗口等资料。"},{"code":"HAND-06","title":"生产放行另行确认","owner":"双方负责人","url":"https://xia.shenliu.cc/xia-production-go-live-decision/","expected":"真实 AppID、真实 MySQL、生产预检、回滚和值班未完成前仍为 NO-GO。"}],"archiveRecords":[{"id":"P0A-00","sourceCode":"BASELINE","title":"公网预检与一致性基线","owner":"开发/测试","evidenceType":"BASELINE_REPORT","evidenceUrl":"https://xia.shenliu.cc/xia-public-preflight-summary/","command":"pnpm preflight:public","expected":"入口 13/13 PASS，完整公网冒烟 244/244 PASS，一致性 117/117 PASS。","archiveRule":"每次归档前必须保留最新 summary.json、report.json 和 consistency report。"},{"id":"P0A-01","sourceCode":"P0R-01","title":"公网与 API 基线复核","owner":"开发/测试","evidenceType":"SYSTEM_CHECK","evidenceUrl":"https://xia.shenliu.cc/xia-public-preflight-summary/","command":"pnpm preflight:public","expected":"入口 13/13 PASS，完整公网冒烟 244/244 PASS，NEXUS relay=pc1。","archiveRule":"保留页面截图、API 返回、执行人和执行时间；真实生产上线前需用真实资料复跑。"},{"id":"P0A-02","sourceCode":"P0R-02","title":"读取 P0 清零指挥 API","owner":"开发/测试","evidenceType":"SYSTEM_CHECK","evidenceUrl":"https://xia.shenliu.cc/xia-production-p0-clearance-command/","command":"curl -s https://xia.shenliu.cc/xia-api/system/production-p0-clearance-command","expected":"返回 productionP0ClearanceCommand，items=2，steps=6，decision 非生产上线放行。","archiveRule":"保留页面截图、API 返回、执行人和执行时间；真实生产上线前需用真实资料复跑。"},{"id":"P0A-03","sourceCode":"P0R-03","title":"微信小程序资料演练","owner":"客户产品负责人","evidenceType":"OPERATION_REHEARSAL","evidenceUrl":"https://xia.shenliu.cc/xia-material-submit/","command":"打开 xia-material-submit，按 wechat-mini-program 提交 AppID/管理员/隐私协议演练资料。","expected":"生成 MS 编号；后台资料队列可核验，未接真实 AppID 前仍保持 P0 阻断。","archiveRule":"保留页面截图、API 返回、执行人和执行时间；真实生产上线前需用真实资料复跑。"},{"id":"P0A-04","sourceCode":"P0R-04","title":"生产 MySQL 资料演练","owner":"客户运维/开发","evidenceType":"OPERATION_REHEARSAL","evidenceUrl":"https://xia.shenliu.cc/xia-mysql-runbook/","command":"打开 xia-material-submit，按 mysql-production 提交 host/database/backupWindow 演练资料。","expected":"生成 MS 编号；后台资料队列可核验，未接真实 MySQL 前仍保持 P0 阻断。","archiveRule":"保留页面截图、API 返回、执行人和执行时间；真实生产上线前需用真实资料复跑。"},{"id":"P0A-05","sourceCode":"P0R-05","title":"后台首屏核验","owner":"运营负责人","evidenceType":"OPERATION_REHEARSAL","evidenceUrl":"https://xia.shenliu.cc/xia-admin/","command":"登录 xia-admin，查看生产化 P0 清零状态卡和执行演练入口。","expected":"后台首页可见 P0 阻断数、readyForReview、implementationReady、清零步骤和演练包按钮。","archiveRule":"保留页面截图、API 返回、执行人和执行时间；真实生产上线前需用真实资料复跑。"},{"id":"P0A-06","sourceCode":"P0R-06","title":"上线边界复述","owner":"项目负责人","evidenceType":"DECISION_BOUNDARY","evidenceUrl":"https://xia.shenliu.cc/xia-production-go-live-decision/","command":"在客户群同步 P0R 结论：测试验收可继续，生产上线仍 NO-GO。","expected":"客户确认 P0 资料、真实环境预检、回滚和值班未完成前不触发上线。","archiveRule":"保留页面截图、API 返回、执行人和执行时间；真实生产上线前需用真实资料复跑。"},{"id":"P0A-07","sourceCode":"NO-GO-BOUNDARY","title":"生产上线边界确认","owner":"项目负责人 / 客户负责人","evidenceType":"SIGNOFF_BOUNDARY","evidenceUrl":"https://xia.shenliu.cc/xia-production-go-live-decision/","command":"会议纪要中复述：P0 清零证据归档不代表生产上线放行。","expected":"客户确认真实 AppID、真实 MySQL、生产预检、回滚演练和值班确认完成前仍为生产 NO-GO。","archiveRule":"该记录必须随客户会议纪要一并归档。"}],"passRules":["客户移交包用于统一测试验收、P0 清零资料和证据归档入口，不代表生产上线放行。","客户必须补齐真实微信小程序资料和生产 MySQL 资料后，才能进入生产预检和放行会。","生产上线结论只以生产放行纪要为准。"]},"meta":null}