# PRD 输出模板

> 本文档是 `yida-flash-note-to-prd` 技能的参考文档，定义生成的 PRD 文件的标准结构。
> 生成的高质量 prompt 遵循以下标准结构，写入 `prd/<项目名>.md`。

```markdown
# <项目名称> — 产品需求文档

## 项目背景
<!-- 从闪记中提取的项目背景、业务场景描述 -->

## 需求概述
<!-- 一句话描述核心需求 -->

## MVP 范围与版本边界
<!-- 明确第一版必须交付的能力，以及暂不做/二期再做的能力 -->

| 范围 | 内容 | 说明 |
|------|------|------|
| V1 必做 | ... | ... |
| V1 不做 | ... | ... |
| V2 候选 | ... | ... |

## 目标用户与权限
<!-- 从闪记中识别的目标用户角色、可见页面、可操作数据 -->

| 角色 | 典型场景 | 可见入口 | 可执行操作 |
|------|----------|----------|------------|
| ... | ... | ... | ... |

## 核心用户旅程
<!-- 用步骤描述用户在自定义页面中的关键路径，避免只写“提交表单” -->

| 旅程 | 步骤 | 成功标准 |
|------|------|----------|
| ... | ... | ... |

## 功能需求

### 功能模块 1：<模块名>
- **功能描述**：...
- **目标用户**：...
- **交互设计**：...
- **业务规则**：...
- **状态与流转**：...
- **字段设计**：
  | 字段名 | 宜搭字段类型 | 必填 | 选项/格式 | 说明 |
  |--------|--------------|------|-----------|------|
  | ...    | ...          | ...  | ...       | ...  |
- **验收标准**：
  - ...

### 功能模块 2：<模块名>
...

## 页面与表单配置
<!-- 页面/表单只记录业务语义，不记录 formUuid、fieldId 等技术 ID -->

### <表单或页面名称>

| 类型 | 用途 | 主要字段/交互 | 备注 |
|------|------|---------------|------|
| 表单页面 / 自定义页面 / 报表页面 | ... | ... | ... |

## 流程与状态机
<!-- 审批流程、业务流程、状态流转、取消/退回/异常处理 -->

| 对象 | 状态 | 允许操作 | 下一状态 | 操作角色 |
|------|------|----------|----------|----------|
| ... | ... | ... | ... | ... |

## 数据关联与约束
<!-- 表单之间的关联关系、唯一性、必填性、冲突校验、并发风险 -->

| 约束 | 规则 | 处理方式 |
|------|------|----------|
| ... | ... | ... |

## 交互与验收标准
<!-- 什么叫好用，用可验证标准描述 -->

| 场景 | 验收标准 |
|------|----------|
| ... | ... |

## 数据报表
<!-- 如果闪记中提到了统计、报表、数据分析需求 -->

## 非功能需求
<!-- 性能、权限、通知等非功能性要求 -->

## OpenYida 落地约束
- PRD 只记录业务语义信息，不记录 `appType`、`formUuid`、`fieldId` 等技术 ID。
- 创建或修改表单/页面后，Schema ID 统一写入 `.cache/<项目名>-schema.json`。
- 用户主入口优先使用自定义页面；后台表单仅作为数据维护入口，除非需求明确要求原生表单。
- 自定义页面发布前必须执行 `openyida check-page <源文件路径>` 和 `openyida compile <源文件路径>`。
- 统计聚合优先使用原生报表；自定义页面避免一次性前端拉取大量数据聚合。

## 待确认事项
<!-- 闪记中未明确或存在分歧的内容，需要用户进一步确认 -->
```
