{
  "title": "龙虾供应链配送系统上线阻断门禁",
  "updatedAt": "2026-04-27 05:38:02",
  "decision": "NO_GO",
  "summary": {
    "total": 9,
    "block": 2,
    "risk": 4,
    "decision": 1,
    "pass": 2
  },
  "source": {
    "readinessUpdatedAt": "2026-04-26 16:45",
    "note": "由当前 API production-readiness 数据源刷新生成；资料核验后可重新运行刷新脚本同步公网门禁。"
  },
  "pilotEvidence": {
    "title": "试运行日报证据",
    "status": "READY",
    "report": "https://xia.shenliu.cc/xia-pilot-daily-report/",
    "acceptance": "https://xia.shenliu.cc/xia-pilot-daily-report-acceptance/",
    "csv": "https://xia.shenliu.cc/xia-api/pilot-daily-records.csv",
    "api": "https://xia.shenliu.cc/xia-api/pilot-daily-records",
    "note": "试运行日报、CSV 导出、后台汇总和 API 同源记录已形成客户可验收证据链。"
  },
  "items": [
    {
      "key": "wechat-mini-program",
      "category": "客户资料",
      "title": "微信小程序 AppID 与发布资料",
      "owner": "客户 / 产品负责人",
      "status": "WAITING_CUSTOMER",
      "priority": "P0",
      "dueHint": "进入真机预览前必须提供",
      "evidence": "AppID、AppSecret、管理员扫码权限、体验成员名单、类目资质、隐私协议。",
      "risk": "无法完成微信登录、真机预览、上传审核和正式发布。",
      "nextAction": "客户提供小程序主体资料后，配置业务域名并接入登录态。",
      "materialRequirement": "微信 AppID、AppSecret、管理员权限、体验成员、隐私协议",
      "materialScore": 100,
      "materialStatus": "READY",
      "missingMaterials": [],
      "gate": "BLOCK"
    },
    {
      "key": "map-routing",
      "category": "第三方服务",
      "title": "腾讯地图路线规划 Key",
      "owner": "实施负责人",
      "status": "PLANNED",
      "priority": "P1",
      "dueHint": "配送路线联调前提供",
      "evidence": "腾讯地图 Key 申请资料已登记",
      "risk": "当前路线规划为演示口径，无法按真实地图距离计费。",
      "nextAction": "等待客户开通 WebService 调用额度。",
      "materialRequirement": "地图 Key、域名白名单、调用额度、计费主体",
      "materialScore": 50,
      "materialStatus": "PARTIAL",
      "missingMaterials": [
        "白名单",
        "计费"
      ],
      "gate": "RISK"
    },
    {
      "key": "sms-service",
      "category": "第三方服务",
      "title": "短信通知签名与模板",
      "owner": "客户 / 运营",
      "status": "WAITING_CUSTOMER",
      "priority": "P2",
      "dueHint": "上线提醒功能前提供",
      "evidence": "短信签名、模板 ID、服务商账号、欠费告警联系人。",
      "risk": "订单状态、逾期结算、异常签收无法短信提醒。",
      "nextAction": "确认短信触发场景和模板文案。",
      "materialRequirement": "短信签名、模板、服务商账号、告警联系人",
      "materialScore": 100,
      "materialStatus": "READY",
      "missingMaterials": [],
      "gate": "RISK"
    },
    {
      "key": "object-storage",
      "category": "第三方服务",
      "title": "签收图片对象存储",
      "owner": "客户 / 技术实施",
      "status": "WAITING_CUSTOMER",
      "priority": "P1",
      "dueHint": "签收凭证真实上传前提供",
      "evidence": "COS/OSS Bucket、地域、访问密钥、图片域名、生命周期策略。",
      "risk": "签收照片只能演示留存，无法长期安全保存。",
      "nextAction": "配置上传凭证、访问权限和图片压缩策略。",
      "materialRequirement": "Bucket、地域、访问密钥、图片域名、生命周期策略",
      "materialScore": 100,
      "materialStatus": "READY",
      "missingMaterials": [],
      "gate": "RISK"
    },
    {
      "key": "payment-collection",
      "category": "财务口径",
      "title": "支付或回款方式确认",
      "owner": "客户 / 财务",
      "status": "NEEDS_DECISION",
      "priority": "P1",
      "dueHint": "真实结算前必须确认",
      "evidence": "微信支付商户号或线下回款规则、银行流水导入格式、回调域名。",
      "risk": "门店预存款、账期结算和回款核销无法进入生产闭环。",
      "nextAction": "确认一期是否接支付，若不接则先走线下回款登记。",
      "materialRequirement": "商户号或线下回款规则、流水模板、回调域名",
      "materialScore": 100,
      "materialStatus": "READY",
      "missingMaterials": [],
      "gate": "DECISION"
    },
    {
      "key": "mysql-production",
      "category": "技术实施",
      "title": "生产 MySQL 与迁移脚本",
      "owner": "运维负责人",
      "status": "PLANNED",
      "priority": "P0",
      "dueHint": "真实数据试运行前完成",
      "evidence": "客户资料提交 MS20260427-001 已核验：生产 MySQL P0",
      "risk": "开发侧 DB 演练可复跑；生产放行仍必须拿到真实 MySQL 地址、账号权限、备份目录和恢复演练窗口。",
      "nextAction": "资料已接收，进入生产化配置和联调。",
      "materialRequirement": "MySQL 实例、账号权限、migration、备份恢复",
      "materialScore": 25,
      "materialStatus": "MISSING",
      "missingMaterials": [
        "账号",
        "migration",
        "备份"
      ],
      "gate": "BLOCK"
    },
    {
      "key": "rbac-audit",
      "category": "安全权限",
      "title": "真实 RBAC 与审计日志",
      "owner": "开发 / 运营负责人",
      "status": "DONE",
      "priority": "P0",
      "dueHint": "已完成接口守卫首轮；生产账号开通前继续复核按钮级权限",
      "evidence": "权限矩阵、登录态令牌、接口 requirePermission 守卫、数据范围声明、auth/audit-logs 操作审计、公开入口白名单审计。",
      "risk": "开发侧接口守卫已落地；进入真实运营前仍需客户确认账号名单和按钮级授权边界。",
      "nextAction": "客户提供真实账号名单后，按角色开通账号并复核按钮级权限；继续扩展财务高风险操作二次确认。",
      "materialRequirement": "账号体系、角色权限、按钮权限、接口数据范围、审计字段",
      "materialScore": 25,
      "materialStatus": "READY",
      "missingMaterials": [
        "账号体系",
        "角色权限",
        "按钮权限"
      ],
      "gate": "PASS"
    },
    {
      "key": "monitoring-backup",
      "category": "运维保障",
      "title": "监控告警与备份恢复",
      "owner": "运维 / 开发",
      "status": "PLANNED",
      "priority": "P1",
      "dueHint": "试运行前完成",
      "evidence": "API 错误告警、数据库备份、日志保留、恢复演练。",
      "risk": "生产异常无法及时发现，数据误操作缺少恢复路径。",
      "nextAction": "建立健康检查、日志轮转、错误告警和备份策略。",
      "materialRequirement": "错误告警、数据库备份、日志保留、恢复演练",
      "materialScore": 100,
      "materialStatus": "READY",
      "missingMaterials": [],
      "gate": "RISK"
    },
    {
      "key": "public-demo-quality",
      "category": "已完成基础",
      "title": "公网演示与自动巡检",
      "owner": "开发",
      "status": "DONE",
      "priority": "P1",
      "dueHint": "已完成",
      "evidence": "发布中心、验收清单、测试报告、环境检查、后台、供应商端、API health。",
      "risk": "无当前阻塞；需持续巡检公网 relay。",
      "nextAction": "每个阶段性成果继续纳入 smoke。",
      "materialRequirement": "发布中心、测试报告、后台、API health",
      "materialScore": 100,
      "materialStatus": "READY",
      "missingMaterials": [],
      "gate": "PASS"
    }
  ]
}
