feature-listlisted
Install: claude install-skill iDWong/pm-skills
# 功能清单生成器
## Step 1:扫描项目文档
并行扫描以下路径,找到 SRS 和可研报告:
```
Glob("docs/SRS/*.md")
Glob("docs/01-需求与规划/*SRS*.md") # 兼容旧归档路径
Glob("**/*需求说明书*.md")
Glob("docs/规划/*可行性研究报告*.md")
Glob("docs/规划/*可研*.md")
Glob("docs/01-需求与规划/*可研*.md") # 兼容旧归档路径
```
找到文档后告知用户,说明将从哪些文档提取数据。若两类文档都找到,以 SRS 为主数据源(字段更完整),可研报告补充建设类型字段。
**门禁**:若未找到 SRS 但存在 `docs/PRD/*.md`(或旧路径 `docs/**/*-PRD.md`) → Read `../common/prd-to-srs-gate.md`,输出 §3 话术,**中止**,路由 **`req-doc` Step F**。
## Step 2:提取功能清单数据
从文档中提取以下字段:
| 字段 | 来源 | 说明 |
|------|------|------|
| 所属系统 | SRS / 可研 | PC管理后台、移动端应用等;**仅当系统数量 ≥ 2 时才包含此列** |
| 模块 | SRS / 可研 | 一级模块 |
| 子模块 | SRS | 二级模块(如有) |
| 功能名称 | SRS 页面功能清单(3.3节) | 具体功能点 |
| 功能描述 | SRS 页面功能清单(3.3节) | 功能说明 |
| 优先级 | SRS 需求功能清单(3.2节) | P0 / P1 / P2 |
| 备注 | - | 留空 |
提取规则:
- 功能粒度与 SRS 页面功能清单保持一致,不合并、不拆分
- 优先级从 SRS 需求功能清单按模块匹配,找不到则留空
- **所属系统列**:扫描 SRS 页面功能清单,若只有一个系统(如只有 PC 管理后台),则不生成该列;若有 PC 管理后台 + 移动端等多个系统,则保留该列
提取完成后展示数据摘要(共 N 条,按系统分布),确认后进入下一步。
## Step 3:询问导出格式
```
功能清单数据已提取完成,共 N 条功能。请选择导出格式:
1. xlsx(Excel 表格,适合筛选和编辑)
2. Word(.docx,适合正式文档交付)
```
## Step 4A:生成 xlsx
xlsx 走服务端专用接口 `/api/document/export/excel-from-data`,**不经过 `export-word.sh`,也不涉及图片嵌入**(该脚本只支持 Word,图片规则只对 Word 生效)。
> **payload 必须用 `data`(二维数组,第一行是表头)**,不是 `headers` + `rows`——2026-09-10 实测:
> 用 `headers`/`rows` 时接口仍返回 200 和合法 xlsx,但**里面没有 worksheet**,是个空壳文件。
> 用 `data` 格式验证通过:`dimension A1:C4`(标题 + 表头 + 2 行数据),共享字符串齐全。
1. 从 `../config.json` 读取 `apiBaseUrl`
2. 将提取的数据组装为 JSON,调用服务端接口:
```bash
curl -s {apiB