# M6 交付项目管理 — FSD（功能设计说明书）

| 项 | 值 |
|---|---|
| 模块 | M6 交付项目管理（Service Delivery） |
| 文档类型 | FSD（功能设计说明书） |
| 对应 PRD | [requirements/M6](../requirements/M6-交付项目管理.md) |
| 对应 LDD | [ldd/M6](../ldd/M6-交付项目管理-设计.md) · [数据字典](../ldd/数据字典.md) |
| 配套 | [业务流程图-M6.txt](业务流程图-M6.txt) · [测试用例-M6.md](测试用例-M6.md) |
| 上级 | [需求分析总纲](../需求分析总纲.md) · [FSD 模板](FSD-模板.md) |

> 逐功能规格；数据模型/状态机/关卡引擎/预设 Milestone 链/自动建单机制见 ldd/M6，字段定义见数据字典，**引用不复制**。类型为逻辑类型，物理类型留待 SDD。阈值/周期以业务确认值为准（标"待业务"处）。

## 1. 概述与范围
承载 **Service Package 交付**：把每个交付项目锚定到额度/授权来源（项目型=PS_Service 合同的 Quota，持续型/Dedicated=既有 retainer 合同），转化为可跟踪、可计量、可交付、可签署、可追溯的标准化交付；对标 PSA 交付生命周期。

**PRD 覆盖追溯（FR → 功能）**

| FR | 功能 |
|---|---|
| FR-PROJ-01/02/03/04 | §4.1 立项准入与自动化 |
| FR-PROJ-23 | §4.2 持续型立项把关（Engagement Request triage） |
| FR-PROJ-06/09/15/16/17 | §4.3 Service Package 模板库与关卡链推进 |
| FR-PROJ-05 | §4.4 派单与 Kickoff |
| FR-PROJ-07/08/11 | §4.5 三层任务、依赖与多视图 |
| FR-PROJ-12 | §4.6 变更控制（CR） |
| FR-PROJ-10（结算/burn 联动） | §4.7 工时/额度联动 |
| FR-PROJ-19/24 | §4.8 项目健康 RAG 与周期状态更新（Check-in） |
| FR-PROJ-20 | §4.9 EAC 完工预测与进度基线 |
| FR-PROJ-18 | §4.10 持续型交付模式 |
| FR-PROJ-14/21 | §4.11 RAID 日志与客户协作 |
| FR-PROJ-10/13/22 | §4.12 交付报告、关闭与移交 |
| FR-PROJ-25 | §4.13 Secondary 备份与缺席交接 |

**不在本模块**：工时录入引擎/额度扣减实现（M7）、交付物模板/版本/e-Signature 引擎（M8）、审批链引擎与缺席委托实现（M9，含 FR-APR-06）、Contract/虚拟合同准入生成（M1）、交付后 CSAT 问卷（M11）、移交回 TAM 的 Handover 实现（M3）、周会看板呈现（M10）。

## 2. 角色与权限点（角色 × 操作，接 M2）

| 操作 \ 角色 | PSE | PM | PS Leader | TAM | 内审签署人(Senior/Mgr) | Admin | Customer_External |
|---|---|---|---|---|---|---|---|
| 查看交付项目 | ✓参与 | ✓负责 | ✓本域 | ✓相关客户 | ✓相关 | ✓ | ✓受限(自己项目) |
| 立项/建项目 | — | — | ✓(自动化/手动) | — | — | ✓ | — |
| 提交 Engagement Request | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓(自己) |
| triage 立项判定 | ✗ | — | ✓ | ✓ | — | ✓ | — |
| 派单/指派 PSE | — | ✓(任务级) | ✓(项目级) | — | — | ✓ | — |
| 配 Secondary / 一键改派 | — | — | ✓ | — | — | ✓ | — |
| 设 coverage(缺席交接) | ✓(自己) | ✓(自己) | ✓(代设) | ✓(自己) | — | ✓ | — |
| 关卡内审签署 | — | — | ✓ | — | ✓ | ✓ | — |
| 客户验收签署 | — | — | — | — | — | — | ✓(自己项目) |
| 任务/子任务/工时操作 | ✓ | ✓ | ✓ | — | — | ✓ | — |
| 发起变更 CR / 挂起 | — | ✓ | ✓ | — | — | ✓ | — |
| 提交周期 Check-in | ✓(受派) | ✓ | ✓ | — | — | ✓ | — |
| 关闭项目/出结项报告 | — | ✓ | ✓ | — | — | ✓ | — |
| 维护 Package 模板库 | — | — | — | — | — | ✓ | — |
| 客户端查看进度/提交资料/签署 | — | — | — | — | — | — | ✓受限 |

> 数据范围由 M2 ABAC 计算：PSE/PM 按 `joined_projects[]`，TAM 按 `own_customers[]`，Customer_External 限本人相关项目/交付物（受限只读 + 签署）。功能权限落 Role.function_permissions（M2）；本表不复制 RBAC/ABAC 模型。

## 3. 状态流转与业务流程图
> 图见 [业务流程图-M6.txt](业务流程图-M6.txt)。含：① 项目型状态机（Draft→Kickoff Scheduled→In Progress→Deliverable Review→Customer Sign-off→Closed，含关卡驳回回流 + Paused 叠加态）；② 关卡链推进泳道（每关卡=文档+Signoff内审/客户+进出条件+驳回返工）；③ 立项（项目型 vs 持续型 triage）泳道；④ 周期 Check-in 泳道。状态机按 Service Package 绑定、引擎可配（ldd/M6 §2）。

## 4. 功能规格

### 4.1 立项准入与自动化

**4.1.1 功能说明**　交付项目的准入门禁与自动建单：无额度/授权来源不允许立项——立项须**选客户 + 绑定其一份 `remaining>0` 的 Quota**（D-P1）；合同生效后按 SOW 中每个 Service Package 自动创建对应项目（**1 合同 : N 项目**）、各绑该合同 Quota、按 Service Package 实例化 Milestone/Task 骨架并通知 PS Leader（FR-PROJ-03）。每项目对应一个 Service Package（D-P2）。

**4.1.2 业务流程**　见 [业务流程图-M6.txt](业务流程图-M6.txt) §三【项目型】。要点：立项前 SOW 确认→合同生效事件→校验授权来源（缺 `remaining>0` Quota→阻断）→按 SOW 每个 Service Package 自动建 Project 绑该合同 Quota→按 Package 模板实例化骨架→通知 PS Leader→转派单。

**4.1.3 界面设计**
- **立项前**：立项申请 Form（FR-PROJ-11 Forms）——客户/Package/交付模式/期望时间线；PS Leader 估算人天/报价、录 SOW 概要。
- **自动建项目结果页**：跳新建 Project 详情，展示绑定 Contract/Quota、Package、生成的 Milestone/Task 骨架（可见 seq 与预设链）、责任人待指派提示。
- 准入失败给"无额度/授权来源，暂不可立项"阻断态；触发时延可统计（目标待业务）。

**4.1.4 字段定义**（Project 记录，详见数据字典 · Project）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| customer_id | 引用 | 是 | 客户存在且有 `remaining>0` Quota | 输入/自动化 | 只读（建时绑定） | 所属客户（D-P1） |
| contract_id | 引用 | 是 | 所属 PS_Service 合同（项目型=生效合同，持续型=既有 retainer） | M1 | 只读 | 所属合同（D-P1） |
| quota_id[] | 引用[多] | 是 | 绑定客户一份 `remaining>0` 的 Quota（Dedicated `unlimited` 恒满足） | M1/输入 | 只读（建时绑定） | 授权来源，M:N via ProjectQuota（D-P1） |
| service_package | 枚举 | 是 | 6 类之一 | 合同 SOW/输入 | 只读（一项目一 Package，D-P2） | 驱动预设链 |
| mode | 枚举 | 是 | project/continuous | 派生/输入 | 只读 | 驱动状态机/模式 |
| name/code | 文本 | 是 | 非空、code 唯一 | 输入/系统 | 建后可改 name | — |
| timeline | 结构 | 是 | 起止合法 | 输入/基线 | 受 CR 控制 | 立项固化基线（§4.9） |
| product/version | 文本 | 否 | — | 输入/合同 | 可编辑 | 交付对象 |
| PS_Leader/PM/PSE[]/TAM | 引用[多] | PS Leader 必填 | 用户存在 | 输入 | 派单阶段填（§4.4） | 责任人 |
| status | 枚举 | 系统 | 状态机取值 | 派生 | 只读 | 见 §3 |

**4.1.5 业务规则**
- 准入门禁：缺 `remaining>0` 的 Quota（项目型=生效合同 Quota、持续型=既有 retainer 合同 Quota；Dedicated `unlimited` 恒满足）→ 一律阻断立项（D-P1，阻断率=100%）。
- 立项前流程（FR-PROJ-02）：客户/Sales 提前≥2 周申请、提前 1 周出计划；PS Leader 估人天/报价并与客户确认 SOW（时限为流程约定，非系统硬校验）。
- 立项自动化（FR-PROJ-03）：监听合同生效事件（M9）→按 SOW 每个 Service Package 自动建项目+骨架+通知，成功率目标=100%（机制见 ldd/M6 §5）。
- Sponsored 走虚拟 PS_Service 合同（Virtual Contract）发放 Quota（M1 D-C11）。

**4.1.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 无 `remaining>0` Quota/retainer 立项 | "无额度/授权来源，暂不可立项" | 阻断（准入门禁） |
| 合同未生效即建项目 | "合同待生效，暂不可立项" | 阻断，依赖合同生效（M1/M9） |
| 自动化建项目失败 | "立项自动化失败，已告警并转人工" | 重试+告警可重放，PS Leader 手工建项目兜底 |
| Package 模板缺失 | "该 Package 暂无预设骨架，请先维护模板" | 建空项目 + 提示 Admin 维护（§4.3） |

**4.1.7 权限控制**　PS Leader/Admin 可立项（自动化或手动）；其余不可建项目；立项申请 Form 提交按 §2；准入校验为系统强制、无角色可绕过。

### 4.2 持续型立项把关（Engagement Request triage）

**4.2.1 功能说明**　Dedicated/retainer 客户的交付型需求经 **Engagement Request** 入口发起，由 **TAM/PS Leader triage** 判定运维型/交付型：交付型→挂既有 retainer 一键轻量立项；运维型→并入通用支持桶（D-P14/FR-PROJ-23）。**立项判定不由执行工程师掌握**。

**4.2.2 业务流程**　见 [业务流程图-M6.txt](业务流程图-M6.txt) §三【持续型】。要点：提需求→建 EngagementRequest→TAM/PS Leader triage 判型→交付型立项（挂 retainer）/运维型并桶；派生超 retainer 范围→触发扩购审批（M9）。

**4.2.3 界面设计**
- **Engagement Request 提交表单**：来源（客户/TAM/Support）、需求摘要、期望交付物/目标。
- **triage 工作台**：待办列表（按客户/来源）→ 判型（运维型/交付型）→ 交付型选既有 retainer 一键立项、运维型标记并桶；决策留痕。
- 立项后回填 `project_id`，跳交付项目详情。

**4.2.4 字段定义**（EngagementRequest，详见数据字典）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| customer_id | 引用 | 是 | 客户存在 | 输入 | 只读 | — |
| contract_id | 引用 | 是 | 既有 retainer 合同 | 输入 | 只读 | 立项授权来源 |
| source | 枚举 | 是 | 客户/TAM/Support | 输入 | 只读 | — |
| summary | 文本 | 是 | 非空 | 输入 | 提交前可改 | 需求摘要 |
| type | 枚举 | triage 时必填 | 运维型/交付型 | triage | 把关人填 | 判型结论 |
| triage_by | 引用 | triage 时必填 | =TAM/PS Leader | triage | 只读 | 把关人 |
| decision | 枚举 | triage 时必填 | 立项/并入通用桶 | triage | 只读 | — |
| project_id | 引用 | 否 | 立项后回填 | 系统 | 只读 | 交付型立项关联 |

**4.2.5 业务规则**
- 判型口径（D-P14）：有目标/有计划/跨多次/有交付物 → 交付型必须立项；通用桶仅限 reactive 小颗粒（答疑/on-call/巡检）。工时活动分流见 M7 FR-RES-10。
- 交付型立项挂既有 retainer、**不必新开合同**；缺既有 retainer → 阻断（回落准入门禁 D-P1）。
- 派生需求超 retainer 范围/额度 → 触发扩购（新合同/续约，追加 Quota）审批（M9）。
- 兜底：通用桶异常占比/关键词告警 PS Leader 复核（Automations，M9），触达率目标=100%。

**4.2.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 工程师尝试自行立项 | "立项须经 TAM/PS Leader triage" | 阻断（工程师无立项决定权） |
| 交付型缺既有 retainer | "该客户无既有 retainer，无法立项" | 阻断，转扩购审批（M9） |
| 超 retainer 范围 | "需求超出 retainer 范围，需扩购审批" | 生成扩购 Request（M9） |
| 通用桶异常占比超阈值 | "通用桶异常占比偏高，请复核" | 告警 PS Leader 复核（阈值待业务） |

**4.2.7 权限控制**　全员/客户可提 Engagement Request；仅 TAM/PS Leader/Admin 可 triage 立项；PSE 不可判型立项。

### 4.3 Service Package 模板库与关卡链推进

**4.3.1 功能说明**　每个 Service Package 有默认 Milestone/Task 骨架与专属流程（Admin 可维护、变量自动填充，FR-PROJ-06）；交付按 **Milestone 关卡**推进——每关卡=文档+Signoff+进出条件，签署过才流转、驳回则返工（D-P11/12，FR-PROJ-15/16/17）；含阶段卡点、停滞 SLA 告警与挂起（FR-PROJ-09）。

**4.3.2 业务流程**　见 [业务流程图-M6.txt](业务流程图-M6.txt) §二。要点：进关卡校验 entry_cond→按模板生成文档（M8）→完成 Task+交付物→校验 exit_cond→按 signoff_config 发起内审/客户签署（串/并）→通过则流转、驳回则关卡回退+生成返工任务+留痕轮次。预设链见 ldd/M6 §4。

**4.3.3 界面设计**
- **模板库管理**（Admin）：按 Package 维护 Milestone 序列、每关卡的 doc_template_id / signoff_config / entry·exit_cond；变量占位（客户名/产品/版本）。
- **关卡推进视图**：关卡链进度条（当前关卡高亮）；每关卡卡片（关联文档链接、签署人/串并、进出条件勾选态、Signoff 状态）。
- **签署面板**：内审→客户验收分段展示；驳回填意见（必填）；返工任务自动挂当前关卡；轮次历史可翻阅。
- **停滞/挂起**：停滞超 SLA 标黄告警；挂起弹窗必填归因（客户方/内部），期间 SLA 停表提示。

**4.3.4 字段定义**（Milestone / Signoff，详见数据字典）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| name/seq | 文本/数值 | 是 | seq 项目内唯一 | 模板/输入 | Admin 模板级可改 | 关卡顺序 |
| doc_template_id | 引用 | 是 | 模板存在 | 模板库 | Admin 可配 | 关卡三要素·文档 |
| signoff_config | 结构 | 是 | 至少 1 签署人 | 模板/配置 | Admin 可配 | 内审/客户、串/并（FR-PROJ-17） |
| entry_cond/exit_cond | 结构 | 是 | 可判定 | 模板/配置 | Admin 可配 | 进出条件 |
| status | 枚举 | 系统 | 关卡状态取值 | 派生 | 只读 | 含"返工中" |
| 关联文档 | 引用 | 进关卡后 | 由模板生成（M8） | M8 | 内容 M8 维护 | 变量自动填充 |
| 驳回意见/轮次 | 文本/数值 | 驳回时必填 | 非空 | 签署流程 | 只读留痕 | FR-PROJ-16 |
| 挂起归因 | 枚举 | 挂起时必填 | 客户方/内部 | 输入 | 解除前只读 | SLA 停表依据 |

**4.3.5 业务规则**
- 关卡三要素齐全方可推进；未经指定签署人签署不流转（D-P11，阻断率=100%）。
- 签署分内审与客户验收、按关卡配置（D-P12/FR-PROJ-17），支持串行/并行；内审通过方可进客户验收。
- 驳回→关卡回退+生成返工任务+修订后重提；驳回意见与轮次留痕率=100%（FR-PROJ-16）。
- 停滞超 SLA 告警（SLA 阈值待业务）；挂起由 PM/PS Leader 发起、必填归因、期间 SLA 停表（FR-PROJ-09/OQ-P2），全程审计。
- 状态机按 Package 绑定、引擎可配，不 hard-code（ldd/M6 §2）。

**4.3.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| entry_cond 未满足进关卡 | "未满足进入条件，暂不可开始" | 阻断 |
| 关卡未签即请求流转 | "关卡未完成签署，不可流转" | 阻断（阻断率=100%） |
| 客户/内审驳回 | "已驳回，请修订后重提" | 关卡回退+返工任务+意见留痕 |
| 停滞超 SLA | "关卡停滞超 SLA，已告警" | 告警 PM/PS Leader |
| 非 PM/Leader 发起挂起 | "仅 PM/PS Leader 可挂起" | 拒绝+审计 |

**4.3.7 权限控制**　Admin 维护模板库；内审签署=Senior/Manager/PS Leader、客户验收=指定 Contact/外部账号（按 signoff_config）；PM/PS Leader 可挂起；PSE 推进关卡但不签署内审。

### 4.4 派单与 Kickoff

**4.4.1 功能说明**　立项后由 **PS Leader 派单**给 PSE（D-P5/FR-PROJ-05），指定 PM/PSE/TAM 与 **Secondary（备份负责人）**，排 Kickoff；Secondary 未配则派单阻断/告警（D-P15，详见 §4.13）。

**4.4.2 业务流程**　通知 PS Leader（来自 §4.1）→PS Leader 指派 PM/PSE、必配 Secondary→校验 Secondary 已配→排 Kickoff（对接飞书日程 INT-12）→状态 Draft→Kickoff Scheduled→Kickoff 完成→In Progress。

**4.4.3 界面设计**
- **派单面板**：责任人指派（PM/PSE[]/TAM/Secondary），任务级可再派 owner；Secondary 必填校验红条。
- **Kickoff 排期**：日程创建（复用 INT-12），Kickoff Deck 模板挂第一关卡（M8）。

**4.4.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| PS_Leader | 引用 | 是 | 用户存在 | 立项 | 可改派 | 派单人 |
| PM / PSE[] | 引用[多] | 派单时必填 | 用户存在 | 派单 | 可编辑 | 负责人/执行 |
| secondary_owner | 引用 | 是 | ≠ 主负责人、用户存在 | 派单 | PS Leader 可改 | 缺→派单阻断（§4.13） |
| kickoff_at | 日期时间 | 否 | ≥ 立项日 | 输入 | 可改期 | 驱动 Kickoff Scheduled |

**4.4.5 业务规则**
- 派单为 PS Leader 职责（D-P5）；任务级指派可下放 PM（§4.5）。
- Secondary 必配、且不得等于主负责人；缺 Secondary → 派单阻断/告警（D-P15）。
- Kickoff 完成驱动状态进入 In Progress（关卡门控见 §4.3）。

**4.4.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 未配 Secondary 派单 | "缺备份负责人，无法派单" | 阻断+告警（D-P15） |
| Secondary = 主负责人 | "备份负责人不可与主负责人相同" | 阻断 |
| 指派不存在用户 | "该用户不存在" | 阻断 |

**4.4.7 权限控制**　PS Leader/Admin 派单与配 Secondary；PM 可任务级指派；其余只读。

### 4.5 三层任务、依赖与多视图

**4.5.1 功能说明**　任务严格三层 Milestone/Task/Sub-task（D-P6/FR-PROJ-07）：前置未完不可启动、可强制 override 但留审计、依赖仅项目内；提供列表/看板/甘特/日历/表格/我的工作多视图（FR-PROJ-08）；组织层级/自定义字段/自定义状态/Automations/Forms 可配（FR-PROJ-11）。

**4.5.2 业务流程**　按 Milestone 展开 Task/Sub-task→设 depends_on（DAG 禁环、仅项目内）→前置未完启动阻断（可 override 留痕）→多视图切换查看/编辑。

**4.5.3 界面设计**
- **任务树**：三层缩进（Milestone→Task→Sub-task）；依赖连线；前置未完的任务置灰+"待前置"标。
- **多视图切换**：列表/看板（自定义状态列）/甘特（依赖箭头+基线对比，§4.9）/日历/表格/我的工作。
- 任务详情：多负责人/优先级/标签/清单(checklist)/附件；override 启动弹窗必填理由。

**4.5.4 字段定义**（Task/Sub-task，详见数据字典）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| milestone_id | 引用 | 是 | 同项目 Milestone | 系统 | 只读 | 三层归属 |
| parent_task_id | 引用 | 子任务必填 | 同 Milestone 的 Task | 输入 | 建时定 | 表达 Sub-task（严格三层） |
| title | 文本 | 是 | 非空 | 输入 | 可编辑 | — |
| owner/reviewer | 引用 | owner 必填 | 用户存在 | 派单 | 可编辑 | 多负责人 |
| est_mandays | 数值 | 否 | ≥0 | 输入 | 可编辑 | EAC/基线输入 |
| actual_mandays | 数值 | 系统 | =Σ TimeEntry | 派生（M7） | 不可手改 | 见 §4.7 |
| due_date | 日期 | 否 | — | 输入 | 可编辑 | 甘特/停滞判定 |
| status | 枚举 | 系统 | 含自定义状态（FR-PROJ-11） | 输入/派生 | 按流程 | Task 级可配状态 |
| depends_on[] | 引用[多] | 否 | DAG 禁环、**仅项目内**（OQ-P1） | 输入 | 可编辑 | 前置未完阻断启动 |

**4.5.5 业务规则**
- 严格三层（D-P6）：Sub-task 经 parent_task_id 表达，不得再嵌套第四层。
- 依赖仅项目内（OQ-P1）、禁环；前置未完不可启动，可强制 override 但留审计（FR-PROJ-07）。
- 可配置能力（FR-PROJ-11）：Space/Folder 组织层级、自定义字段、Task 级自定义状态、Automations、Forms（立项/Sponsored 申请）。

**4.5.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 前置未完启动任务 | "前置任务未完成，是否强制启动？" | override 必填理由+审计 |
| 依赖成环 | "任务依赖不可成环" | 阻断 |
| 跨项目依赖 | "依赖仅限本项目内任务" | 阻断（OQ-P1） |
| 建第四层子任务 | "任务仅支持三层" | 阻断（D-P6） |

**4.5.7 权限控制**　PSE/PM 建改任务与依赖、override 需 PM 及以上；Admin 配组织层级/自定义字段/Automations；客户不可见任务树（进度见 §4.11）。

### 4.6 变更控制（CR）

**4.6.1 功能说明**　范围/人天/时间变更走变更请求（CR），评估对 Quota/SOW 影响并经审批（M9），未经 CR 审批不得生效、全程留痕（FR-PROJ-12）。

**4.6.2 业务流程**　发起 CR（范围/人天/时间）→系统评估对 Quota/SOW/基线影响→提交审批（M9）→批准后应用变更+可 re-baseline（§4.9）→驳回则不生效；全程审计。

**4.6.3 界面设计**
- **CR 表单**：变更类型（范围/人天/时间）、变更前后对比、事由；系统自动带出对 Quota/EAC/SOW 影响预览。
- **CR 列表**：状态（pending/approved/rejected）、影响摘要、审批进度（复用 M9）。

**4.6.4 字段定义**（复用 M9 Request，type=变更/超支）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 变更类型 | 枚举 | 是 | 范围/人天/时间 | 输入 | 提交前可改 | — |
| 变更前后 | 结构 | 是 | 有实际差异 | 输入/系统 | 提交前可改 | 前后对比 |
| Quota/SOW 影响 | 结构 | 系统 | — | 派生（M7/基线） | 只读 | 审批依据 |
| 审批状态 | 枚举 | 系统 | M9 状态机 | M9 | 只读 | 未批不生效 |

**4.6.5 业务规则**
- 未经 CR 审批的范围/人天/时间变更生效阻断率=100% 且全程留痕（FR-PROJ-12）。
- CR 批准后方可 re-baseline（§4.9）；超支类变更联动额度预警（§4.7）。

**4.6.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 绕过 CR 直接改基线/人天 | "范围/人天/时间变更须走 CR 审批" | 阻断 |
| CR 无实际差异 | "变更前后无差异" | 阻断提交 |
| CR 驳回 | "变更未通过，维持原基线" | 不生效，留痕 |

**4.6.7 权限控制**　PM/PS Leader/Admin 发起 CR；审批人按 M9 链；PSE 不可发起 CR。

### 4.7 工时/额度联动

**4.7.1 功能说明**　交付项目内工时（M7 TimeEntry）单向汇总为任务 `actual_mandays` 与项目 burn，喂 EAC（§4.9）与 Quota 消耗（M1 Quota.used）；关闭时触发额度结算（FR-PROJ-10）。工时录入/扣减实现见 M7，本模块只做联动与呈现。

**4.7.2 业务流程**　PSE 按任务/项目记工时（M7）→单向汇总 burn/actual_mandays→驱动 EAC 与 Quota.used→超阈值软预警→关闭时结算额度（§4.12）。

**4.7.3 界面设计**
- **项目 burn 视图**：已耗人天/预算人天进度条、按 Milestone/成员分布；额度池剩余（下钻 M1 Quota）。
- 消耗明细只读列表（来源 M7 TimeEntry）。

**4.7.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| burn（已耗人天） | 数值 | 系统 | =Σ 项目 TimeEntry | 派生（M7） | 不可手改 | 单向汇总 |
| task.actual_mandays | 数值 | 系统 | =Σ 任务 TimeEntry | 派生（M7） | 不可手改 | 见 §4.5 |
| quota_used 联动 | 数值 | 系统 | 写入 M1 Quota.used | 派生 | 只读 | 项目型消耗 Man-days |
| 结算标记 | 布尔 | 系统 | 关闭时置 | 系统 | 只读 | 触发额度结算 |

**4.7.5 业务规则**
- 项目工时汇总消耗项目 Man-days（付费或 Sponsored 免费；数据字典 TimeEntry/Quota）；burn/actual_mandays 单向汇总、不可手改。
- **持续型=Dedicated 项目有 Quota（source=Dedicated、amount=unlimited），工时照常 draw-down 到该 unlimited 池——照记 used、remaining=∞、不预警超支**（FR-PROJ-18，见 §4.10）。
- 超额度阈值软预警（阈值待业务，详见 M7）；EAC>SOW 预警见 §4.9。
- 关闭 100% 触发额度结算（FR-PROJ-10，见 §4.12）。

**4.7.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 手改 burn/actual | "工时消耗由记录汇总，不可手改" | 拒绝 |
| 额度将耗尽 | "剩余额度不足，请评估扩购/CR" | 软预警，联动 §4.6 |
| 持续型 unlimited 池超支 | （正常，Dedicated unlimited 照记 used、remaining=∞） | 不预警、不阻断 |

**4.7.7 权限控制**　PSE/PM 记工时（M7）；burn/额度只读；无人可手改汇总值。

### 4.8 项目健康 RAG 与周期状态更新（Check-in）

**4.8.1 功能说明**　项目级 RAG（进度/范围/预算/风险）自动汇总并按周期生成状态报告发干系人（FR-PROJ-19）；每项目每周期一条**结构化 StatusUpdate**（周期/RAG/本周进展/下周计划/风险/需支持，工时/burn/里程碑变化自动带出），按 cadence 自动生成待办+分级提醒催提交，替代"单字段累积所有周"（FR-PROJ-24）。

**4.8.2 业务流程**　见 [业务流程图-M6.txt](业务流程图-M6.txt) §四。要点：cadence 到点（默认每周、对齐周会日）→为每在办项目建 1 条 StatusUpdate 待办派 PM→自动带出 mandays/burn/里程碑变化→PM 填写提交（独立成条）→当周速览+历史更新流+聚合周会看板（M10）→逾期分级提醒升级 PS Leader（M9）。RAG 汇总规则见 ldd/M6 §5。

**4.8.3 界面设计**
- **RAG 徽标**：项目头部四维 RAG（进度/范围/预算/风险）+ 综合。
- **Check-in 卡**：当周速览（RAG+进展+提交合规）；填写表单（进展/下周计划/风险关联 RAID/需支持），只读区自动带出工时/burn/里程碑变化。
- **历史更新流**：按周期时间线，可翻阅/导出周期报告。

**4.8.4 字段定义**（StatusUpdate，详见数据字典）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| period | 结构 | 系统 | 周次/起止日唯一 | cadence | 只读 | 每周期一条 |
| rag | 枚举 | 是 | 红/黄/绿 | 输入/汇总 | 提交前可改 | 接 FR-PROJ-19 |
| progress/next | 文本 | 是 | 非空 | 输入 | 提交前可改 | 本周进展/下周计划 |
| risk_refs[] | 引用[多] | 否 | 关联本项目 RAID | 输入 | 可编辑 | 见 §4.11 |
| ask | 文本 | 否 | — | 输入 | 可编辑 | 需支持/升级 |
| mandays_week/burn/milestone_changes | 数值/结构 | 系统 | — | 派生 | **只读带出** | 自动填 |
| submitted_by/submitted_at | 引用/日期时间 | 提交时 | — | 系统 | 只读 | 合规统计 |

**4.8.5 业务规则**
- 每项目每周期独立成条、非单字段累积（FR-PROJ-24）；cadence 默认每周、对齐周会日、可配（待业务定 cadence/提醒分级阈值）。
- 每在办项目按 cadence 自动生成待办率=100%；逾期分级提醒/升级触达率=100%。
- 挂起期按配置暂停生成；Secondary 订阅每周 Check-in（§4.13 保温）。

**4.8.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| Check-in 逾期未提交 | "本周状态更新逾期，请尽快提交" | 分级提醒→升级 PS Leader（M9） |
| 试图手改自动带出项 | "工时/burn/里程碑变化自动带出，不可手改" | 拒绝 |
| 项目挂起期 | "项目挂起中，本周期 Check-in 暂停" | 按配置暂停生成 |

**4.8.7 权限控制**　PM/主负责人提交 Check-in、PS Leader 可代提；Secondary/干系人订阅只读；聚合看板呈现见 M10。

### 4.9 EAC 完工预测与进度基线

**4.9.1 功能说明**　完工人天预测（EAC/ETC）对比 SOW 并预警；立项固化排期/人天基线，实际 vs 基线算偏差，CR 批准后可 re-baseline（FR-PROJ-20）。EAC/偏差计算见 ldd/M6 §5。

**4.9.2 业务流程**　立项固化 Baseline（schedule/effort）→执行期 EAC=已耗+ETC→对比合同/SOW Man-days→超阈值预警→CR 批准触发 re-baseline→实际 vs 基线偏差呈现。

**4.9.3 界面设计**
- **EAC 卡**：已耗/ETC/EAC vs SOW，超 SOW 标红预警。
- **基线对比**：甘特双轨（基线 vs 实际）、偏差天数；re-baseline 历史版本。

**4.9.4 字段定义**（Baseline/EAC 派生，详见数据字典 Project 附带项）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| baseline(schedule/effort) | 结构 | 系统 | 立项固化 | 立项/CR | CR 批准可 re-baseline | 版本留痕 |
| EAC/ETC | 数值 | 系统 | EAC=burn+ETC | 派生（M7 输入） | 只读 | — |
| SOW_mandays | 数值 | 系统 | 来自合同/SOW | M1 | 只读 | 对比基准 |
| 偏差 | 数值 | 系统 | 实际−基线 | 派生 | 只读 | 进度/人天偏差 |

**4.9.5 业务规则**
- 基线立项固化、仅 CR 批准后 re-baseline（与 §4.6 联动）。
- EAC>SOW（阈值待业务）预警触发率=100%（FR-PROJ-20）。

**4.9.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| EAC 超 SOW | "预测完工人天超 SOW，请评估 CR/扩购" | 预警，联动 §4.6/§4.7 |
| 未经 CR 改基线 | "基线变更须走 CR" | 阻断（见 §4.6） |

**4.9.7 权限控制**　PM/PS Leader 查看 EAC/基线；re-baseline 随 CR 审批；PSE 只读。

### 4.10 持续型交付模式

**4.10.1 功能说明**　Assurance/驻场/Dedicated 按 **retainer + 事件工单（on-call/S1/演练）+ 周期服务报告**运行，不走线性关卡；持续型即 **Dedicated 项目**（mode=continuous），**有 Quota（source=Dedicated、amount=unlimited）**，**工时照常 draw-down 到该 unlimited 池——照记 used、remaining=∞、不耗尽、不预警超支**（利用率/成本/跟踪照记）；同一 retainer 下可派生多个 Service Package 跟踪项目（FR-PROJ-18/D-P13）。

**4.10.2 业务流程**　服务启动→周期性保障（事件工单：on-call/S1/演练）→按周期出服务报告（客户签署）→期末总结/续期。预设链见 ldd/M6 §4 Package 6；无线性关卡门控。

**4.10.3 界面设计**
- **retainer 项目视图**：事件工单列表（类型/严重度/时间）、周期服务报告卡、工时利用率图（unlimited 池：照记 used、remaining=∞、不预警提示）。
- 同 retainer 下多 Service Package 跟踪项目并列。

**4.10.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| mode | 枚举 | 是 | =continuous | 派生 | 只读 | 屏蔽线性关卡门控 |
| 事件工单 | 结构 | 否 | 类型合法 | 输入/集成 | 可编辑 | on-call/S1/演练 |
| 周期服务报告 | 引用 | 是（按周期） | 客户签署 | M8 | 内容 M8 维护 | 无缺报（率=100%） |
| 工时(利用率) | 数值 | 系统 | draw-down unlimited 池 | 派生（M7） | 只读 | **照记 used、remaining=∞、不预警超支** |

**4.10.5 业务规则**
- 持续型不走线性关卡；周期服务报告按约定周期产出率=100%（周期待业务）。
- Dedicated 项目有 unlimited Quota，工时照常 draw-down 到该池——照记 used、remaining=∞、不预警超支（与 §4.7 finite 项目区分）。
- 同一 retainer 可派生多个跟踪项目（每项目一个 Package，D-P2）。

**4.10.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 周期漏出服务报告 | "本周期服务报告缺失" | 告警催办（无缺报目标） |
| 持续型误触关卡签署门控 | （不适用，continuous 无线性关卡） | 按 mode 屏蔽 |

**4.10.7 权限控制**　PSE 记事件工单/工时；PM/PS Leader 出周期报告；客户签署服务报告（受限，见 §4.11）。

### 4.11 RAID 日志与客户协作

**4.11.1 功能说明**　项目 RAID 日志（风险/问题/假设/依赖登记、责任人、状态跟踪，FR-PROJ-14）；客户可在交付项目上受限查看进度/里程碑、提交资料、签署交付物（复用 M2 外部账号，FR-PROJ-21）。

**4.11.2 业务流程**　RAID 登记→指定 owner/status 跟踪→可被 Check-in 关联（§4.8）；客户端受限视图查看进度/里程碑、上传资料、签署交付物（M8）。

**4.11.3 界面设计**
- **RAID 面板**：按类型（Risk/Issue/Assumption/Dependency）分栏，owner/status/描述。
- **客户协作视图**：进度/里程碑只读、资料上传区、待签交付物列表（受限范围）。

**4.11.4 字段定义**（RAID，详见数据字典）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| type | 枚举 | 是 | Risk/Issue/Assumption/Dependency | 输入 | 可编辑 | — |
| owner | 引用 | 是 | 用户存在 | 输入 | 可编辑 | 责任人 |
| status | 枚举 | 是 | 状态取值 | 输入 | 按流程 | 跟踪 |
| 客户可见项 | 布尔 | 否 | — | 配置 | 可配 | 外部视图仅含可见 |

**4.11.5 业务规则**
- RAID 供 Check-in 关联（risk_refs[]，§4.8）与 RAG 风险维汇总（§4.8）。
- 客户协作受限：数据范围限本人相关项目/交付物（M2 ABAC），仅可见/提交/签署授权范围内内容。

**4.11.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| RAID 无 owner | "请指定责任人" | 阻断保存 |
| 客户访问越权项目 | "无权访问该项目" | 拒绝+审计 |
| 客户签他人交付物 | "无权签署该交付物" | 拒绝+审计 |

**4.11.7 权限控制**　PSE/PM 维护 RAID；Customer_External 受限查看/提交/签署（M2）；内部 RAID 项默认不客户可见。

### 4.12 交付报告、关闭与移交

**4.12.1 功能说明**　每次活动完成须产出报告并由客户签署，报告缺失不可关闭（D-P9/FR-PROJ-10）；全部 Task Finished + 报告签署→项目标记 CLOSED + 出结项报告 + 结算额度（D-P10）；关闭后生成复盘、可复用产出入知识库、移交回 TAM/Support（FR-PROJ-13，闭环回 M3）；关闭触发一次 Delivery CSAT（FR-PROJ-22，接 M11）。

**4.12.2 业务流程**　见 [业务流程图-M6.txt](业务流程图-M6.txt) §一末段 + ldd/M6 §6。要点：末关卡完成→内审→客户签署→校验（全 Task Finished + 报告签署）→CLOSED+结项报告+额度结算→复盘入库+移交回 TAM→触发 Delivery CSAT。

**4.12.3 界面设计**
- **关闭前检查**：Task 完成度、报告签署状态清单（未满足项高亮阻断）。
- **结项**：结项报告生成、额度结算结果、复盘录入、移交 Checklist（跳 M3 Handover）。
- 关闭后自动触发 Delivery CSAT（M11）提示。

**4.12.4 字段定义**

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| 活动报告签署 | 引用 | 是 | 客户签署（M8 Signoff） | M8 | 内容 M8 维护 | 缺签不可关闭（D-P9） |
| 关闭校验 | 结构 | 系统 | 全 Task Finished + 报告签署 | 派生 | 只读 | 阻断关闭依据 |
| 结项报告 | 引用 | 关闭时生成 | 100% 生成 | 系统/M8 | 只读 | D-P10 |
| 额度结算 | 结构 | 系统 | 关闭触发 | 派生（M7） | 只读 | 联动 §4.7 |
| 复盘/移交 | 引用 | 否 | — | 输入/M3 | 可编辑 | 入知识库（M8/Wiki）+ 移交回 TAM |
| Delivery CSAT 触发 | 布尔 | 系统 | 关闭触发一次 | 系统 | 只读 | 接 M11（FR-PROJ-22） |

**4.12.5 业务规则**
- 任务未全完成或报告缺签时关闭阻断率=100%（D-P9/D-P10）。
- 关闭 100% 生成结项报告并触发额度结算（持续型 Dedicated 项目为 unlimited 池，draw-down 照记 used、remaining=∞、不预警超支，§4.10）。
- 关闭后移交回 TAM/Support（闭环回 M3），可复用产出入知识库（M8/飞书 Wiki）。
- 关闭触发一次 Delivery CSAT（M11，FR-PROJ-22）。

**4.12.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 有未完成 Task 关闭 | "尚有任务未完成，不可关闭" | 阻断 |
| 报告缺签关闭 | "交付报告未签署，不可关闭" | 阻断（D-P9） |
| 结项报告生成失败 | "结项报告生成失败，已告警" | 重试+告警，阻断结算 |

**4.12.7 权限控制**　PM/PS Leader/Admin 执行关闭；客户签署活动/结项报告；移交对接 M3 Handover。

### 4.13 Secondary 备份与缺席交接

**4.13.1 功能说明**　每项目必配 **Secondary（备份负责人）**覆盖负责人角色（D-P15/FR-PROJ-25）；Secondary 自立项起为项目参与者（入群/收通知/订阅每周 Check-in/可见 RAID 读权限，保持热备，非挂名）。缺席交接：计划内（休假）主负责人设 coverage 期+交接便签、期间待办/审批委托 Secondary（M9 FR-APR-06）、到期自动回退；计划外由 PS Leader 一键改派。

**4.13.2 业务流程**　派单必配 Secondary（缺→阻断，§4.4）→Secondary 自动加群/订阅通知与周 Check-in/获读权限（M2）→计划内缺席：设 coverage(start,end,delegate=secondary)+便签→期内待办/审批经 M9 缺席委托转 Secondary→到期回退；计划外：PS Leader 改派 owner。委托实现见 ldd/M6 §5 与 M9 Delegation。

**4.13.3 界面设计**
- **Secondary 配置**：派单面板必填项（§4.4）；Secondary 参与者标识（区别挂名）。
- **coverage 设置**：主负责人设起止期 + 交接便签；委托生效/到期回退提示。
- **一键改派**（PS Leader）：计划外改 owner。

**4.13.4 字段定义**（Project.secondary_owner / coverage，详见数据字典）

| 字段 | 逻辑类型 | 必填 | 校验规则 | 数据来源 | 可编辑性 | 备注 |
|---|---|---|---|---|---|---|
| secondary_owner | 引用 | 是 | ≠主负责人、用户存在 | 派单 | PS Leader 可改 | 缺→派单阻断（D-P15） |
| coverage.start/end | 日期 | 计划内缺席时 | end≥start | 主负责人 | 缺席前可改 | 到期自动回退 |
| coverage.delegate | 引用 | 缺席时=secondary | =secondary_owner | 系统 | 只读 | 委托对象 |
| 交接便签 | 文本 | 计划内缺席时 | 非空 | 输入 | 缺席前可改 | 交接说明 |

**4.13.5 业务规则**
- 每项目必配 Secondary、缺→派单阻断/告警率=100%（D-P15）。
- Secondary 自立项起为参与者、订阅周 Check-in（§4.8），保温覆盖率=100%（FR-PROJ-25）。
- 计划内：主负责人设 coverage → 期间待办/审批委托 Secondary（M9 FR-APR-06）生效率=100% 且到期自动回退。
- 计划外：PS Leader 一键改派 owner。

**4.13.6 异常处理**

| 异常场景 | 提示文案 | 处理 |
|---|---|---|
| 缺 Secondary | "缺备份负责人，无法派单" | 阻断+告警（§4.4） |
| coverage 无交接便签 | "请填写交接便签" | 阻断委托生效 |
| 委托到期未回退 | （系统到期自动回退） | 自动回退+审计 |
| Secondary 与主负责人同人 | "备份负责人不可与主负责人相同" | 阻断 |

**4.13.7 权限控制**　PS Leader/Admin 配 Secondary 与计划外改派；主负责人设 coverage 委托；Secondary 热备只读+受托期间获委托权限（M9）。

## 5. 接口与集成

| 接口 | 方向 | 触发/频率 | 字段映射 | 失败处理 |
|---|---|---|---|---|
| M1 Contract/Quota（准入） | 读 | 立项/合同生效事件 | contract_id/quota_id/service_package | 缺 `remaining>0` Quota→阻断立项 |
| M9 审批/Automation | 双向 | 立项/CR/超支/关闭/委托 | Request/ApprovalNode/Delegation | 审批未过→阻断生效 |
| M7 工时/额度 | 读 | 工时汇总/结算 | TimeEntry→burn/actual_mandays/EAC 输入、Quota.used | 汇总不可手改 |
| M8 交付物/签署（INT-02 迁移/INT-05 Wiki） | 双向 | 关卡进入/签署 | doc_template→DeliverableVersion/Signoff；历史交付一次性迁移（OQ-P6） | 签署失败重试；运行期不回写 Jira |
| M11 Delivery CSAT | 写 | 关闭触发 | project→SurveyRun | 触发失败重试 |
| M3 移交 | 写 | 关闭后 | Project→Handover Checklist | — |
| M10 周会看板 | 读 | 周期 | StatusUpdate/RAG 聚合 | 降级占位 |
| 飞书日历（INT-12）/通知（INT-05） | 写 | Kickoff/周会/提醒 | 日程/通知/加急 | 通知失败重试 |

## 6. 测试用例
> 见 [测试用例-M6.md](测试用例-M6.md)。覆盖立项准入/自动化、triage、关卡链推进/驳回返工、派单/Secondary、三层任务依赖、CR、工时额度联动、RAG/Check-in、EAC/基线、持续型模式、关闭/移交、缺席交接的正常/边界/异常；关键路径 100%、异常路径 ≥90%、硬约束（无来源立项阻断、关卡未签不流转、缺任务/缺签不可关闭、CR 未批不生效、EAC>SOW 预警、Secondary 必配）100% 覆盖。

## 7. 风险与依赖

| 风险/依赖 | 影响 | 缓解 | 责任方 |
|---|---|---|---|
| 六 Package 预设 Milestone 链/关卡文档模板/签署人未定稿（OQ-P4） | 模板库与关卡链落地待补 | 各 Package Owner 共创确认，先用设计草案 | PM/各 Owner |
| cadence/SLA/EAC 超支/额度/通用桶异常等阈值待业务 | 提醒/预警/告警无法量化 | 详设前业务确认阈值 | PM/业务 |
| M9 缺席委托（FR-APR-06）实现依赖 | Secondary 委托/回退落地待 M9 | 与 M9 对齐 Delegation 契约 | 后端/M9 |
| Jira 历史交付一次性迁移（OQ-P6/INT-02） | 历史数据入 CSP 待迁移 | 上线一次性迁移，运行期不回写 | 后端 |
| M7/M8/M11/M3/M10 跨模块联动 | burn/签署/CSAT/移交/看板依赖他模块 | 按接口契约对齐、降级占位 | 各模块 |

## 8. 遗留 / 待详设（TBD）
- **OQ-P4**：六个 Service Package 预设 Milestone 链草案见设计文档，各关卡文档模板/签署人待各 Package Owner 共创确认。
- 阈值/周期待业务：Check-in cadence 与逾期分级、停滞 SLA、EAC>SOW 预警阈值、额度软预警阈值、通用桶异常占比/关键词、立项自动化触发时延目标、持续型周期报告周期。
- 各页面线框/视觉稿（UX）；多视图（甘特/看板）交互深化；Automations/Forms/自定义字段 schema 深化。
- 关卡文档模板变量集合与 signoff_config 细粒度配置（配合 M8）。
