Files
ai-contract-platform/project-docs/V2-P1-07.2-on-call-slo-and-draft-evidence-2026-08-25.md
T
yuqei 1d85329a6a
Build and Test Quality Gate / Contract Web typecheck and build (pull_request) Successful in 9m12s
Build and Test Quality Gate / Isolated Alibaba and Tencent KMS gateway (pull_request) Failing after 4m53s
Build and Test Quality Gate / Python tests and Contract API migration (pull_request) Failing after 24m55s
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 8m42s
feat: deliver governed contract platform and async AI tasks
2026-08-26 12:53:47 +08:00

5.6 KiB
Raw Blame History

V2 P1-07.2 值班路由、SLO 与版本级起草证据实施说明

实施日期:2026-08-25
状态:已实现,进入发布门禁与隔离 UAT
适用角色:平台超级管理员、试点运营、产品经理、法务运营、SRE

1. 交付结论

P1-07.2 补齐了试点运营从“发现异常”到“有人负责、服务可观测、决策可解释”的闭环:平台可维护版本化值班轮换,并在扫描后自动路由未认领工单;扫描和外部升级通知形成可查询的成功率、新鲜度及 P95 延迟;可靠决策漏斗分别归因审查路径和模板起草路径;模板起草只有在生成事件绑定当前合同版本与正文哈希、用户完成四项显式核对、且核对后出现审批/下载/归档动作时,才形成不可变严格决策。

自动路由只写负责人和事件账本,不写 first_response_at。系统不会把机器分派伪装成人工响应,也不会替用户勾选起草核对项。

2. 产品口径

2.1 值班轮换

  • 平台级值班表包含时区、轮换锚点、班次分钟数、通用成员顺序、按队列覆盖成员和兜底负责人;
  • 支持失败任务、签署异常、人工复核三类队列分别计算当前值班人;
  • 只有值班表与自动分派同时启用,扫描才路由来源仍活跃、状态未结束且尚无负责人的工单;
  • 每次自动路由写入 pilot_operation_case_events.action=auto_routed,记录值班表版本、班次边界和 counts_as_first_response=false;
  • 自动路由不会改变工单状态,人工确认、分派或处理动作才记录首次响应。

2.2 扫描与通知 SLO

看板按可选观察周期展示:

  • 扫描运行总数、成功/失败数、终态成功率、P95 耗时、最近成功时间和新鲜度;
  • target_rate=99%,新鲜度目标为两倍扫描间隔且不小于 5 分钟;
  • 仅统计 pilot_operation_sla_escalated 对应的外部投递,展示送达、死信、待处理、终态成功率和 P95 送达耗时;
  • 无运行或无终态投递时显示“待验证”,不能按 100% 达标处理;
  • 指标用于试点运营治理,不自动形成客户赔付或正式服务等级承诺。

2.3 严格决策双路径

审查路径保持 P1-07.1 口径:合同版本、已完成审查、精确风险集合确认、确认后的审批/下载/归档。

模板起草路径必须同时满足:

  1. draft_generated 在服务端绑定当前租户合同、最新合同版本和 body_hash;
  2. 用户对同一版本显式确认合同主体、商业条款、签约/审批授权和完整最终正文;
  3. 确认之后出现审批通过、合同下载或归档证据;
  4. 扫描对账时版本、正文哈希和生成事件仍完全一致。

任一项缺失、事件属于其他租户、正文已形成新版本或下游动作早于确认,均不得生成严格决策。同一合同版本只形成一条最终决策;若审查和起草路径同时满足,审查路径优先,避免重复计数。

3. 数据与完整性

  • pilot_operation_on_call_schedules:平台值班轮换、队列成员和版本;
  • pilot_operation_scan_runs.auto_routed/duration_ms:自动路由计数和扫描耗时;
  • product_experience_events.contract_id/contract_version_id/contract_body_hash:版本级起草证据;
  • contract_draft_readiness_confirmations:四项人工核对、正文哈希和证据摘要;
  • reliable_contract_decisions.decision_path/draft_confirmation_id:review|draft 路径归因。

数据库检查约束保证 review 决策必须绑定审查任务和风险确认,draft 决策必须只绑定起草确认。外键保证起草事件、合同版本和确认记录不能悬空。

4. 接口与权限

  • GET|PUT /api/v1/admin/pilot-operations/on-call-schedule
  • GET /api/v1/admin/pilot-operations/insights?period_days=30
  • POST /api/v1/contracts/{contract_id}/reliable-decision/draft-confirmations
  • POST /api/v1/product-analytics/events 的 draft_generated 可携带 contract_id,回执返回版本和正文哈希绑定状态

前两个接口逐请求校验 platform_admin,普通租户管理员返回 403。起草确认要求 edit_contract 且受当前租户隔离。事件只接受当前租户合同,不接受客户端直接提交版本 ID 或正文哈希。

5. 前端交互

  • 试点运营后台新增值班轮换表、当前三类队列值班人、扫描/通知 SLO 卡片和双路径决策漏斗;
  • 扫描历史展示自动路由数量和耗时;
  • 合同详情的可靠决策面板同时解释审查与起草路径;
  • 起草路径展示绑定版本和正文摘要,四个复选框必须由用户逐项勾选,未全部勾选时提交按钮禁用;
  • 页面明确提示四项核对不等同于律师意见或正式审批,提交后仍要求完成审批、下载或归档。

6. 发布门禁

  • Alembic 达到 20260825_0067,并通过 0066 -> 0067 -> 0066 -> head 往返验证;
  • 运行时 OpenAPI 为 220 个路径、348 个 schema;人工契约为 141 个路径、225 个 schema,且无悬空 $ref;
  • 自动路由测试必须证明负责人已写入而 first_response_at 仍为空;
  • 起草测试必须证明四项核对缺一项返回 422、正文/版本不一致返回 409、确认前旧下游动作不计数;
  • 普通租户管理员访问值班表、SLO 和管理后台返回 403;
  • Contract API 全量测试、Web 测试、类型检查、生产构建及 Chrome UAT 通过。

7. 后续建议

下一阶段建议进入 P1-07.3:值班换班/请假例外、SLO 预算与多级告警、漏斗按租户与行业下钻、起草证据过期提醒,以及决策证据导出与外部审计验证。