doc-requirements-extractor · git:20260915.bc5a8d6 · 2026-09-15 · sha256 d20f1a29de38a887
doc-requirements-extractor git:20260915.bc5a8d6A
Immutable. This exact content is served forever at /api/v1/blob/d20f1a29de38a887.
---
name: doc-requirements-extractor
description: 专业需求分析专家。当用户需要从Excel、PNG图片、TXT、PDF、Word等文档中提取需求时,必须使用本技能。擅长识别功能需求、非功能需求、业务规则、约束条件,输出包含需求依赖关系图和待确认问题清单的结构化文档。触发场景:分析需求、整理需求、提取需求、需求文档、PRD分析、功能清单整理、原型图需求提取。
---
# 需求分析技能
## 一、何时触发本 Skill
当用户出现类似表述时**必须**使用本 Skill:
- 「请分析这份需求文档」
- 「帮我整理一下这个Excel中的需求」
- 「从这张图片中提取需求信息」
- 「分析这个PDF文档的需求」
- 「看看这个TXT文件里有什么需求」
- 「整理一下这份Word文档的需求」
- 「帮我提取PRD中的功能点」
- 「分析这个原型图的需求」
- 「整理功能清单」
**重要**:只要用户提到需求分析、需求提取、PRD整理等场景,必须触发本技能。
---
## 二、输入处理与文档理解
### 2.1 文档类型识别与处理方法
| 文档类型 | 处理方法 | 分析要点 |
|---------|---------|---------|
| Excel (.xls, .xlsx) | pandas读取 | 表格结构、功能清单、业务规则、多sheet |
| PNG/JPG (.png, .jpg, .jpeg) | 图像识别工具 | UI元素、字段信息、交互流程、错误提示 |
| TXT (.txt) | 直接读取 | 功能描述、业务流程、用户角色 |
| PDF (.pdf) | PDF提取工具 | 章节结构、计算公式、业务规则 |
| Word (.docx) | python-docx | 文档结构、业务背景、系统边界 |
### 2.2 信息提取策略
**功能需求提取**:识别动词(创建/修改/删除/查询/导出)、触发条件、优先级(P0/P1/P2)
**非功能需求提取**:性能(响应时间/并发)、安全(权限/加密)、可用性、易用性、兼容性
**业务规则提取**:规则性描述、条件判断逻辑、数据校验规则、状态流转规则
- 约束规则:限制某种行为(如:密码必须包含XX)
- 计算规则:定义数据如何转换(如:折扣 = 原价 × 0.8)
- 状态规则:定义状态如何流转(如:订单超时 → 自动取消)
- 权限规则:定义谁能做什么(如:只有管理员能删除用户)
**约束条件提取**:技术约束、业务约束、用户体验约束
**依赖关系识别**:功能依赖、数据依赖、系统依赖
**异常与边界提取**:异常场景、边界值、错误处理
---
### 3.1 references 与模板协同
- 本技能:请参考 `references/PROMPTS.md` 获取详细提示词
- 输出格式要求:请参考 `references/format-standard.md`
- 需求分析理论:请参考 `references/theory.md`
## 三、输出格式要求
生成的需求分析文档**必须**遵循以下标准模板格式,包含所有章节,不得跳过。如原始信息未覆盖某章节,请标注"[待确认]",不得留空。
### 3.1 文档概述
- **需求名称**:[功能名称]
- **版本**:v1.0
- **需求编号**:REQ_模块序号_001
- **需求背景**:一句话描述为什么需要这个需求
- **业务目标**:这个需求要解决什么业务问题
- **目标用户**:谁会使用这个功能
- **影响范围**:涉及哪些系统/模块/接口
- **文档类型**:Excel/PNG/TXT/PDF/Word(来源)
- **系统边界**:明确系统的范围和边界
### 3.2 功能需求
#### 3.2.1 业务流程图
> 用文字描述完整业务流程,包含所有分支路径
```
开始 → [步骤1] → [判断条件] → [步骤2A/步骤2B] → ... → 结束
```
#### 3.2.2 业务规则表
| 规则ID | 规则描述 | 规则类型 | 优先级 |
|--------|---------|---------|--------|
| BR_001 | [具体规则1,精确定义条件、动作、结果] | 约束规则/计算规则/状态规则/权限规则 | P0/P1/P2 |
#### 3.2.3 功能点清单
| 功能点ID | 功能点名称 | 功能类型 | 描述 | 优先级 |
|---------|---------|---------|------|--------|
| FP_001 | [名称] | 新增/修改/删除 | [描述] | P0/P1/P2 |
#### 3.2.4 页面/接口需求
##### 页面元素(前端可见)
| 元素ID | 元素名称 | 元素类型 | 默认值 | 约束条件 | 必填 |
|--------|---------|---------|-------|---------|------|
| E001 | [如:用户名输入框] | input/button/select | [如:无] | [如:4-20字符] | 是 |
##### 接口需求(后端/API)
| 接口ID | 接口名称 | 请求方式 | 关键参数 | 参数约束 | 响应约束 |
|--------|---------|---------|---------|---------|---------|
| API_001 | [如:用户登录接口] | POST | username, password | [如:password ≥ 8位] | [如:返回 token] |
### 3.3 数据需求
#### 3.3.1 数据字段定义
| 字段名 | 数据类型 | 长度限制 | 取值范围 | 默认值 | 备注 |
|-------|---------|---------|---------|-------|------|
| [字段名] | [如:String] | [如:最多50] | [如:0-999999.99] | [如:无] | [备注] |
#### 3.3.2 数据状态机
| 状态 | 可转换至 | 触发条件 |
|-----|---------|---------|
| [状态A] | [状态B, 状态C] | [触发条件] |
### 3.4 异常与边界需求
#### 3.4.1 异常场景清单
| 异常ID | 异常场景 | 系统行为 | 用户提示信息 |
|-------|---------|---------|-------------|
| EX_001 | [如:用户名为空提交] | [如:阻止提交] | [如:请输入用户名] |
#### 3.4.2 边界值清单
| 边界ID | 字段 | 最小值 | 临界最小 | 正常值 | 临界最大 | 最大值 | 边界类型 |
|-------|------|-------|---------|-------|---------|-------|---------|
| BV_001 | [如:密码长度] | 0 | 7 | 12 | 9 | 20 | 闭区间 |
### 3.5 非功能需求
| 类型 | 描述 | 验收标准 |
|-----|------|---------|
| 性能 | [如:登录响应时间] | [如:≤2秒] |
| 安全 | [如:密码加密方式] | [如:必须MD5+盐值] |
| 兼容性 | [如:支持的浏览器] | [如:Chrome 80+] |
### 3.6 验收标准(Acceptance Criteria)
> 每条验收标准必须可测试(SMART原则)
| 验收ID | 验收描述 | 测试方法 | 预期结果 |
|-------|---------|---------|---------|
| AC_001 | [描述] | [如:功能测试] | [描述] |
### 3.7 测试设计指导
#### 3.7.1 推荐测试策略
- [ ] 正向测试:覆盖所有正常业务流程
- [ ] 负向测试:必须覆盖所有异常场景(EX_001~EX_00N)
- [ ] 边界测试:必须覆盖所有边界值(BV_001~BV_00N)
- [ ] 权限测试:验证所有权限规则
- [ ] 状态机测试:验证所有合法和非法状态转换
#### 3.7.2 测试覆盖率要求
- 业务规则覆盖率 ≥ 100%
- 接口覆盖率 = 100%
- 异常场景覆盖率 ≥ 90%
- 边界值覆盖率 = 100%
### 3.8 业务规则表
| 规则编号 | 规则描述 | 规则类型 | 优先级 |
|---------|---------|---------|--------|
| BR-001 | 规则的具体描述 | 约束规则/计算规则/状态规则/权限规则 | P0/P1/P2 |
### 3.9 约束条件
- **技术约束**:列出技术相关的限制和要求
- **业务约束**:列出业务相关的限制和要求
- **用户体验约束**:列出用户体验相关的限制和要求
### 3.10 需求依赖关系图
```
[FR-001: 用户登录]
|
+-- [FR-002: 订单创建] (依赖: 用户登录)
|
+-- [FR-003: 订单查询] (依赖: 用户登录)
```
### 3.11 待确认问题表
| 问题编号 | 问题描述 | 影响范围 |
|---------|---------|---------|
| Q-001 | 需要澄清的问题描述 | 该问题影响的需求或模块 |
### 3.12 附录
- 术语表
- 用户角色
- 设备类型
---
## 四、工作流程
1. **文档预处理**:接收文档 → 识别类型 → 选择读取方法 → 提取内容
2. **需求提取**:分析内容 → 识别关键词 → 提取各类需求 → 归纳规则
3. **结构化整理**:组织信息 → 编写编号 → 判断优先级 → 绘制依赖图
4. **质量检查**:检查完整性 → 检查逻辑 → 检查格式 → 标记问题
5. **输出文档**:生成文档 → 对话输出 → 按需保存
---
## 五、质量自检(在输出前执行)
### 5.1 完整性检查
- [ ] 文档概述是否完整(需求名称、背景、目标、影响范围)
- [ ] 功能需求是否全部提取(业务流程图、业务规则、功能点、页面/接口)
- [ ] 数据需求是否完整(字段定义、数据状态机)
- [ ] 异常与边界是否覆盖(异常场景、边界值)
- [ ] 非功能需求是否覆盖性能、安全、兼容性
- [ ] 验收标准是否可测试(SMART原则)
- [ ] 测试设计指导是否完整
### 5.2 准确性检查
- [ ] 需求描述是否准确反映原始文档
- [ ] 规则ID、功能点ID、接口ID是否唯一
- [ ] 优先级判断是否合理
- [ ] 依赖关系是否正确
- [ ] 边界值是否合理
### 5.3 格式检查
- [ ] 编号规则是否统一(BR_XXX, FP_XXX, API_XXX, EX_XXX, BV_XXX, AC_XXX)
- [ ] 表格格式是否规范
- [ ] 业务流程图是否清晰
- [ ] 术语表是否完整
---
## 六、特殊处理规则
### 6.1 多格式混合文档
- 优先提取主要格式信息,辅助格式作为补充
### 6.2 重复或冲突信息
- 在待确认问题中标记冲突
### 6.3 信息缺失
- 标记为"待确认",并记录到待确认问题表
---
## 七、生成文档的保存与落盘
- **默认行为**:生成的需求分析文档**直接输出在对话中**(Markdown格式)
- **保存到本地**:用户说「保存到 xxx」时,使用写入工具保存到指定路径
---
## 八、示例输出结构
详见 `references/examples.md`
---
**核心原则**:准确提取、结构化整理、清晰表达