## 季度路线图里程碑评审准备 {.case data-case-id="075"}

| 字段 | 值 |
| --- | --- |
| 案例编号 | `075` |
| 行业 / 部门 | SaaS / 管理 |
| 角色 | PMO 负责人 |
| 难度 | `复杂` |
| 调用来源 | `schedule`（定时由获授权 Agent 经 App/Extension 汇总路线图与项目实际进度） |

<!-- slot: 目标 -->
季度评审会开成了现场对数据会：路线图上写着按期，项目系统里实际已延期，会上半小时耗在"到底信哪个数"上。目标：每季度定时让获授权 Agent 汇总路线图与项目系统实际进度，逐里程碑比对计划与实际并按四类分流——按期、有风险、状态数据缺失、取数失败。为防"对外承诺的延期风险被悄悄吞掉"，设一条最高优先级红线：影响对外承诺的里程碑延期风险一律强制进入评审会人工裁决优先级，绝不自动调整路线图。评审结论由评审会人工做出，工作流只备料。指标：评审会上数据争议议题占比降到 10% 以下；影响对外承诺的延期风险 100% 出现在评审材料首页。

<!-- slot: 边界 -->
- **覆盖**：定时汇总路线图与项目实际进度、逐里程碑比对计划与实际、四类分流、PMO 确认后分发评审材料。
- **不覆盖**：自动调整路线图或里程碑日期、自动裁决优先级、自动通知客户、自动写回项目系统。
- **假设**：有经授权能读取路线图与项目系统实际进度的 Agent（通过 App/Extension），App/Extension 在源头白名单化两边数据（里程碑代号、日期、承诺属性、Owner 标识为受控令牌：权限受控且 Agent 无法反查原值；展示名仅由下游授权 App 发送时回填；评审会成员名单与评审人标识映射同为受控令牌）；里程碑对外承诺属性在路线图字段中标注。

<!-- slot: 提示词 -->
把下面这段发给 Loop，它会在后台帮你创建这个 Workflow：

```text
帮我创建一个 Workflow：每季度定时由获授权的比对 Agent 经 App/Extension 读取路线图与项目系统的实际进度，App/Extension 在源头把两边数据白名单化——里程碑代号、计划日期、实际或预测日期、是否影响对外承诺、Owner 内部标识（受控令牌：权限受控且 Agent 无法反查原值；展示名仅由下游授权 App 发送时回填；项目内部资产与系统细节在源头即被过滤），逐里程碑比对计划与实际，返回（里程碑代号、计划日期、实际或预测日期、状态分类、偏差原因、是否影响对外承诺、Owner 标识）。
比对 Agent 回传 JSON：{quarter_key: 平台调度器签发的季度令牌（取自调用输入，不由 Agent 生成）, milestones: [{ms_ref: 里程碑代号, plan_date: 日期, actual_or_forecast: 日期|缺失, status_class: 枚举(按期|有风险|数据缺失), commit_flag: 布尔, deviation_reason: 非空文本|缺失, owner_ref: Owner 令牌|缺失}], source_ok: 布尔, fields_missing: [枚举(路线图|项目系统)], audit_ts: 时间戳}。状态矩阵：source_ok 与 audit_ts 始终必填；source_ok=false 时 fields_missing 必非空，quarter_key 与 milestones 禁止出现；source_ok=true 时 quarter_key、milestones 必填且 fields_missing 必为空，milestones 每个元素的 ms_ref、plan_date、status_class、commit_flag 必填；status_class=按期时 actual_or_forecast、owner_ref 必填且 deviation_reason 禁止出现，status_class=有风险时 actual_or_forecast、owner_ref、deviation_reason 必填，status_class=数据缺失时 actual_or_forecast 与 owner_ref 至少缺一且 deviation_reason 禁止出现；commit_flag 在三种 status_class 下都独立必填且 true / false 均合法，只在 status_class=有风险且 commit_flag=true 时触发对外承诺红线，不改变字段必填条件。仅接受这些组合；其余 callback 一律拒绝，原 Effect 保持 awaiting。
触发：定时（计划）发起调用，平台调度器签发 quarter_key 并作为调用输入带入，同时带入团队频道、比对 Agent、审批人、评审会成员名单（受控令牌）、Owner 与评审人标识映射（受控令牌）和值班频道（值班频道作为调用输入提供，用于失败升级）。
结果分流（按优先级从高到低依次判断，先判红线再判状态分类）：
  有风险且影响对外承诺（红线，预计延期）：无论延期幅度大小，一律强制纳入评审材料首页，由评审会人工裁决优先级，绝不自动调整路线图——这是最高优先级，命中即短路，不会落到"按期"路径。
  有风险（预计延期但未触及红线）：纳入评审材料的风险清单，附计划与预测日期、偏差原因，留审计时间戳。
  状态数据缺失·待确认：单列成清单交 Owner 补充，不猜进度、不推断完成度，留审计时间戳。
  按期：纳入评审材料正常清单，留审计时间戳。
  评审材料草稿交 PMO 负责人审批，确认后分发给评审会成员（名单与评审人标识作为调用输入提供）并留审计时间戳。
  本期无可评里程碑（查询成功但路线图为空）：发一条零结果回执并留时间戳，不静默结束。
  取数失败（任一系统不可达或数据陈旧）：告警失败、留审计时间戳，按重试上限重试，仍失败则升级到值班频道（作为调用输入提供）；不发残缺材料。
审批：评审材料必须经 PMO 负责人确认后才分发；审批为二值确认或驳回，不设自动超时，无默认通过/否决；驳回则退回修改重新提交，不自动分发。评审结论由评审会人工做出，工作流只备料。
异常：比对 Agent 回传不合结构就停在等待点等它重新提交，不自动重跑；通知发送失败按重试上限重试，仍失败则升级到值班频道并保留待发内容供人工补发。
完成：分发、零结果回执、失败告警各自留审计时间戳后结束。
```

<!-- slot: 流程 -->
![案例 075 季度路线图里程碑评审准备：定时让获授权 Agent 汇总路线图与项目实际进度并逐里程碑比对计划与实际；有风险且影响对外承诺（红线）一律强制纳入评审材料首页由评审会人工裁决、绝不自动调整路线图，有风险进风险清单，状态数据缺失单列交 Owner 补充不猜进度，按期进正常清单，材料经 PMO 确认后分发；本期无可评里程碑发零结果回执；任一系统不可达按取数失败告警留审计重试升级、不发残缺材料；回传不合结构停在原等待点](../../../media/cases/fig-case-075-01-flow.svg){#fig-case-075-01 width=92%}

如上图所示，正常路径、人工决策与异常同时可见：

1. **定时触发**：计划到点（每季度）发起一次调用，带入团队频道、比对 Agent 与审批人。
2. **逐里程碑比对**：获授权 Agent 经 App/Extension 在源头白名单化读取路线图与项目实际进度，逐个比对计划与实际并回传（里程碑代号、计划/预测日期、状态分类、偏差原因、承诺属性、Owner 标识（受控令牌））；回传缺任一必填字段视为不合结构，停在原等待点，等其重新提交，不自动重跑。
3. **四类分流（先判红线，再判状态分类）**：
   - **红线（有风险且影响对外承诺）**：预计延期且影响对外承诺，无论幅度大小一律强制纳入评审材料首页，由评审会人工裁决优先级，绝不自动调整路线图（红线是路由条件，不是仅返回的字段）。
   - **有风险**：预计延期但未触及红线，纳入风险清单，附计划与预测日期、偏差原因，留审计时间戳。
   - **状态数据缺失·待确认**：单列清单交 Owner 补充，不猜进度、不推断完成度，留审计时间戳。
   - **按期**：纳入正常清单，留审计时间戳。
4. **人工确认后分发**：评审材料草稿交 PMO 负责人审批，确认后分发给评审会成员并留审计时间戳；驳回则退回修改重新提交，不自动分发。
5. **本期无可评里程碑与取数失败**：查询成功但路线图为空发零结果回执；任一系统不可达按取数失败告警、留审计、重试升级，不发残缺材料。

<!-- slot: 配置 -->
你不需要手写代码或配置。把上面的提示词发给 Loop，AI 会理解意图、在后台画出这个"定时比对 + 红线强制进会 + 四路分流"流程——它知道"逐里程碑比对"需要一个发消息并等待回调的 Agent 环节、"先判红线再分流"需要一个条件路由且红线优先级最高、"PMO 确认后分发"需要一个审批环节、"分发与回执"各需要一个发消息环节，并把它们连起来。AI 还会在后台校验流程结构是否完整，你不必关心这些技术细节。

<!-- slot: 异常 -->
- **对外承诺的延期风险被归入普通清单**：这是最危险的漏判。靠红线兜底——"影响对外承诺且预计延期"设为永远强制进入评审材料首页的路由条件，无论延期幅度大小，工作流绝不自动调整路线图，裁决权只在评审会。
- **任一系统不可达或数据陈旧**：不当作"本期无可评里程碑"或静默结束，也不把可用来源拼成残缺材料发出去，而是告警失败、留审计时间戳，按重试上限重试；仍失败则升级到值班频道由人工确认。
- **状态数据缺失**：Agent 不从任务列表或历史记录猜进度、不推断完成度，单列清单交 Owner 补充，缺失项 100% 标"待确认"。
- **本期无可评里程碑（结果为 0）**：仍发一条零结果回执并留时间戳，让"没消息"变成可核验的记录，而不是无声结束。
- **PMO 驳回材料**：退回修改重新提交审批，没有"AI 自动改材料后直接分发"；评审材料代表 PMO 口径，必须有人把关。
- **通知发送失败**：按重试上限重试投递；超过上限则升级到值班频道，并保留待发内容供人工补发。
- **比对 Agent 回传不合结构**：本次完成请求被拒绝，停在等待点等其修正后重新提交，不自动重跑。
- **长时间无人审批**：审批本身不设自动超时，流程停在等待状态。若业务需要响应时限，由另一条定时检查的 Workflow（或值班人员）扫出超时项并通知负责人。

<!-- slot: 审批 -->
评审材料必须经 PMO 负责人确认后才分发：确认时能看到四类清单（红线首页、风险、缺失待确认、按期）与逐条计划/实际比对，所以是"有依据的快速决策"而非盲目转发。审批只有确认或驳回两种结果，不设自动超时、无默认通过/否决，驳回退回修改重新提交。更关键的一条边界：评审结论由评审会人工做出，工作流只备料——优先级裁决、路线图调整、对外沟通口径都不在流程里自动生成。管理决策与自动化建议边界明确，关键决策保留人工 Owner。

<!-- slot: 外部系统 -->
本工作流对路线图与项目系统实际进度的读取由获授权 Agent 通过 App/Extension 完成，工作流本身不直接调用外部系统。进入 Agent 消息、Run/Activation/Effect 记录与 App/Extension 工具日志仅记录白名单/令牌化字段（原值不进入以上任何一层），可回溯个人或敏感资产的字段在源头即被令牌化/伪名化，并按 10% 抽查四层实际记录——App/Extension 在源头只放行里程碑代号、日期、承诺属性与 Owner 内部标识（受控令牌），项目内部资产与系统细节一律过滤。团队频道、评审会成员名单、Owner 与评审人标识映射（均为受控令牌）及值班频道作为调用输入提供；两个系统的访问凭据用 `<token>` 占位，由 Agent 运行时从密钥引用。任一系统不可达或数据陈旧属于取数失败，走失败回执与升级，不发残缺材料、不当作"本期无可评里程碑"。

<!-- slot: 验收 -->
- **回放集与基准**：取最近 4 个季度路线图与项目系统配对快照（含按期、风险、缺失样本）回放，人工基准答案为逐里程碑状态分类；分类与基准一致率 ≥ 95%。
- **红线防线**：基准为"影响对外承诺且预计延期"的里程碑 100% 出现在评审材料首页；被工作流自动调整路线图 0 例。
- **缺失处理**：状态数据缺失项 100% 单列并标"待确认"交 Owner 补充，不出现猜测的进度或完成度。
- **源头脱敏**：进入 Agent 消息、Run/Activation/Effect 记录与 App/Extension 工具日志的字段 100% 在白名单内（原值不进入以上任何一层），并按 10% 抽查四层实际记录，不含项目内部资产与系统细节。
- **审批与裁决边界**：分发 100% 发生在 PMO 确认之后；材料中不含自动生成的优先级裁决或路线图调整建议，按 10% 抽样核对。
- **零结果与失败可见**：本期无可评里程碑、取数失败 100% 各有可见回执，不出现静默成功；取数失败时不发残缺材料 0 例外。
- **会议效率**：评审会上数据争议议题占比 ≤ 10%；每次运行记录比对、确认与分发时间戳。

### 复用与变体
- **同构迁移**：年度战略举措中期盘点、产品版本发布对外承诺核对、重大投资项里程碑复盘。
- **双审红线**：对红线里程碑的评审材料加签业务负责人会签，在提示词里写明。
- **写回系统**：评审会结论由人工录入后，加一个 Agent 环节通过 App/Extension 把裁决结果同步回路线图；写入须是获授权 Agent 经 App/Extension 的幂等动作（业务键=里程碑代号+调用输入中的平台签发 quarter_key+期望裁决+目标路线图），响应未知先查后写、按重试上限有限重试、失败升级值班并置"待处理"保留补偿，全程留审计。

<!-- slot: 媒体槽位 -->
<!-- media: fig-case-075-01-flow.svg -->
