# {模块名称} - 产品需求文档

> **module**: {模块名}
> **doc_type**: PRD
> **status**: Draft / Review / Active
> **owner**: {负责人}
> **upstream_docs**: 无（PRD 是依赖链起点）
> **last_verified**: YYYY-MM-DD
>
> **事实源**: 本文档定义当前版本业务范围与验收边界

---

## 目标与问题

### 要解决的问题

- {当前存在什么问题？用户的痛点是什么？}

### 成功指标

- {可量化的目标，如"流程从线下迁移到线上，HR 汇总时间从 X 降到 Y"}

---

## 功能边界

**In-scope（当前版本）**：
- {功能 1}
- {功能 2}

**Out-of-scope（后续版本）**：
- {不做的功能 1}（当前不支持，{当前替代方案或不做原因}）

---

## 术语表（如需）

> 当模块概念较多时，用术语表减少歧义。放在功能清单之前，确保 AI 先理解概念再读功能。

| 术语 | 说明 |
|------|------|
| {术语 1} | {定义} |

---

## 版本口径

本文档按当前实现校准。若代码与本文冲突，以本文为准；若本文显式标注"按当前实现校准"，则实现差异不视为缺陷，应更新文档对齐。

## 功能依赖链

> 用简短的 ASCII 图或列表展示功能模块之间的依赖关系，帮助 AI agent 按序实现。

```
{前置配置} ──→ {核心流程 A} ──→ {核心流程 B} ──→ {下游功能}
```

## 核心业务约束

> 列出实现中最容易被破坏的数据完整性和幂等性契约。

- {唯一性约束，如"同一员工在同一周期只能有一组有效 KPI"}
- {完整性约束，如"权重总和必须为 100% 才能提交"}
- {幂等性约束，如"同一状态推进操作重复提交时，不得生成重复副作用"}

---

## 功能清单

### F1: {功能模块名}

| 功能点 | 优先级 | 说明 |
|--------|--------|------|
| F1.1 {功能点} | P0/P1/P2 | {一句话说明} |

---

## 角色权限矩阵

| 功能 | {角色1} | {角色2} | {角色3} |
|------|---------|---------|---------|
| {操作} | ✅ | ❌ | ✅ |

> 权限基于 RBAC，由权限码控制。{补充权限作用域说明，如"经理权限仅在其管理链路下生效，不是全局权限"}

---

## 边界规则

> 本节定义 AI agent 在实现本模块时的行为边界。

### Always Do（始终执行，无需确认）

- {规则 1，如"所有查询必须带 organizationId 过滤"}
- {规则 2，如"数据库写操作使用事务"}

### Ask First（需确认后执行）

- {规则 1，如"修改现有数据库 schema"}
- {规则 2，如"新增第三方依赖"}

### Never Do（硬性禁止）

- {规则 1，如"不得跳过权限校验"}
- {规则 2，如"不得未经确认删除已有 API 端点"}

---

## 风险与假设

### 假设

> AI agent 应基于这些假设做设计决策，不应自行推断。

- {假设 1，如"组织架构模块已就绪，汇报关系数据准确"}
- {假设 2，如"每个员工只属于一个主部门（用于审批链路）"}

### 风险

- {风险 1，如"跨部门依赖可能因对方未响应导致流程阻塞"}
- {风险 2，如"大量数据场景下看板性能可能下降"}

---

## 关键依赖

| 依赖模块 | 集成点 |
|----------|--------|
| {模块} | {说明} |

