6.2 KiB
V2 P1-07.1 试点运营自动化、SLA 与可靠决策实施说明
实施日期:2026-08-25
状态:已实现,进入发布门禁与隔离 UAT
适用角色:平台超级管理员、试点运营、产品经理、法务运营、SRE
1. 交付结论
P1-07.1 将原先依赖人工刷新的试点后台升级为可持续值守的运营控制面:异常发现由带租约的定时任务执行;首次响应截止时间按平台工作日历计算;超时事件复用经过握手验证的邮件/Webhook 通知适配器;队列采用稳定游标分页并支持最多 100 条批量分派;“可靠合同决策”不再使用审批状态或审查完成数作为代理,而只统计完整证据链形成后的不可变事件。
这次变更保持旁路治理原则:扫描、SLA 和通知不会静默修改合同、审查任务、电子签署或归档源状态。
2. 产品口径
2.1 平台 SLA
- 默认时区:
Asia/Shanghai; - 默认工作时间:周一至周五 09:00–18:00;
- 默认首次响应目标:30 个工作分钟;
- 支持配置工作日、工作时间、节假日、扫描周期和回看周期;
- 策略变更会递增版本,并重算所有活跃、尚未首次响应工单的截止时间;
- 每个工单记录
due_policy_version和due_policy_source,历史报表可以解释截止时间来源。
工作日历关闭时回退为自然分钟,页面会显示对应口径,不能把两种口径混为一组 SLA 报告。
2.2 严格“可靠合同决策”
只有同时满足以下四个条件,才写入 reliable_contract_decisions 并计入后台指标:
- 存在明确的合同版本;
- 存在已完成审查任务;
- 当前审查风险集合与确认时完全一致:已应用修复的风险自动计入处置,其余风险必须逐项显式确认;无风险结果也必须显式确认“未发现重大风险”;
- 风险确认之后,出现审批通过、合同下载或归档证据。
证据事件包含合同版本、审查任务、风险确认、下游动作和 SHA-256 摘要。后续审查风险集合变化时,旧确认不会被用于新的决策。单纯“审查完成”“合同已审批”或“合同已签署”均不再单独计数。
当前严格口径最初只覆盖已有合同的审查决策旅程。P1-07.2 已增加与合同版本及正文哈希绑定的 draft_generated 证据和四项人工核对;新增口径见《V2 P1-07.2 值班路由、SLO 与版本级起草证据实施说明》。
3. 系统设计
Playbook Governance Worker
-> 领取平台扫描租约
-> 扫描失败任务、签署异常、人工复核
-> 幂等刷新运营工单
-> 对账风险确认与后续动作,写入可靠决策证据
-> 查找工作日历 SLA 超时且未响应工单
-> 写入站内通知和外部投递队列
-> 既有通知 worker 投递、重试和死信
调度复用 playbook_governance_worker,避免新建第二套轮询、租约、通知重试和死信基础设施。强制手工扫描也经过同一租约和扫描运行证据表,不绕过审计。
3.1 新增数据
pilot_operation_policies:平台工作日历、扫描和外部升级策略;pilot_operation_scan_runs:每次调度的领取者、状态、发现/创建/关闭/决策/升级计数;contract_risk_disposition_confirmations:绑定审查风险集合哈希和合同版本的显式确认;reliable_contract_decisions:不可变的最终决策证据;pilot_operation_cases新增策略版本、截止时间来源和升级投递标识。
3.2 接口
GET|PUT /api/v1/admin/pilot-operations/policyGET /api/v1/admin/pilot-operations/scan-runsPOST /api/v1/admin/pilot-operations/run-scheduled-scanPOST /api/v1/admin/pilot-operations/cases/bulk-assignGET /api/v1/admin/pilot-operations/dashboard?case_cursor=...GET /api/v1/contracts/{contract_id}/reliable-decision/evidencePOST /api/v1/contracts/{contract_id}/reliable-decision/risk-confirmations
管理接口仍逐请求校验 platform_admin。合同证据接口分别校验合同查看和编辑权限,并强制租户隔离。
4. 外部升级通知
外部升级复用企业 Playbook 通知通道。只有同时满足以下条件的邮件或 Webhook 通道才会出现在策略选择器中:
- 通道已启用;
- 握手测试通过;
- 订阅事件
pilot_operation_sla_escalated; - Webhook 密钥状态满足既有轮换规则。
投递载荷只包含工单标识、租户标识、队列/严重级别、截止时间和后台链接;不包含合同正文、签署账号、临时链接、供应商原始响应或密钥。每条工单只会入队一次,失败由既有投递重试和死信机制处理。
5. 游标与批量运营
- 工单排序固定为“来源仍活跃优先、截止时间升序、工单 ID 升序”;
- 游标编码排序键,不接受客户端页码推算;
- 单页最多 100 条,默认 50 条;
- 筛选条件变化时必须丢弃旧游标;
- 批量分派最多 100 条,逐条返回成功与跳过原因,避免一条过期工单回滚整批;
- 每条成功分派均写入独立工单事件并记录首次响应。
6. 观测与发布门禁
- 数据库迁移达到
20260825_0066; - OpenAPI 必须包含 137 个路径、213 个 schema 且无悬空
$ref; pilot_operation_scan_runs可查询最近运行、失败码和处理计数;- 两个 worker 并发时同一周期只有一个领取扫描租约;
- 普通租户管理员访问管理 API 返回 403;
- 同一超时工单不会重复创建外部升级投递;
- 严格指标测试必须证明:确认前下游动作不计数,确认后新动作并经对账才计数;
- Contract API 全量测试、Web 测试、类型检查、生产构建与 Chrome UAT 通过。
7. 非目标和后续建议
- 平台日历是平台运营级策略,不是每个租户的合同履约日历;两者不得复用同一数据行。
- 当前没有面向客户承诺的 7×24 服务等级合同,页面指标用于试点治理而非自动形成赔付依据。
- 大规模导出、跨页全选和按班组轮班自动分派不在本阶段范围。
- P1-07.2 已实现:值班表/轮班路由、扫描与通知 SLO 看板、严格决策漏斗归因以及版本级起草证据。