feature-listlisted
Install: claude install-skill iDWong/dev-skills
# 功能清单生成器
## Step 1:扫描项目文档
并行扫描以下路径,找到 SRS 和可研报告:
```
Glob("dev/SRS/*.md")
Glob("docs/SRS/*.md") # 兼容旧根
Glob("docs/01-需求与规划/*SRS*.md") # 兼容更旧的归档路径
Glob("**/*需求说明书*.md")
Glob("prd/planning/*可行性研究报告*.md")
Glob("prd/planning/*可研*.md")
Glob("docs/规划/*可研*.md") # 兼容旧根
Glob("docs/01-需求与规划/*可研*.md") # 兼容旧归档路径
```
找到文档后告知用户,说明将从哪些文档提取数据。若两类文档都找到,以 SRS 为主数据源(字段更完整),可研报告补充建设类型字段。
**门禁**:若未找到 SRS 但存在 `prd/PRD/*.md`(或旧路径 `docs/**/*-PRD.md`) → Read `../common/prd-to-srs-gate.md`,输出 §3 话术,**中止**,路由 **`req-doc` Step F**。
### UI 层真源检测(分层真源,规则原文 `../common/prd-to-srs-gate.md` §6)
`SPEC_SOURCE` 只是**规则层**真源。检测完 SRS 后**再检测一次 UI 层真源**:
```
Glob("design-system/*.html") + design-system/FLOWS.md + design-system/HANDOFF.md + design-system/tokens.json
```
- **有稿** → 登记 `DESIGN_SOURCE=design-system/`。**「这个功能落在哪几个页面」一列改以设计稿的页面锚点为准**,不再按 SRS 的页面清单填;两边对不上以设计稿为准。
- **无稿** → 登记 `DESIGN_SOURCE=无(纯后端/本次无设计稿)`,**UI 层整层不适用**,SRS 恢复为全部内容的真源,本节其余条款不触发。
**不要为了拿设计稿去调 `ui-ux-pro-max`**——设计稿由 `pm-master` **阶段 8** 产出,本技能只读不写。
冲突裁决:UI 层设计稿赢|规则层 SRS 赢|跨层谁都不赢,登记缺口后问用户(§6.2)。
## Step 2:提取功能清单数据
从文档中提取以下字段:
| 字段 | 来源 | 说明 |
|------|------|------|
| 所属系统 | SRS / 可研 | PC管理后台、移动端应用等;**仅当系统数量 ≥ 2 时才包含此列** |
| 模块 | SRS / 可研 | 一级模块 |
| 子模块 | SRS | 二级模块(如有) |
| 功能名称 | SRS 页面功能清单(3.3节) | 具体功能点 |
| 功能描述 | SRS 页面功能清单(3.3节) | 功能说明 |
| 优先级 | SRS 需求功能清单(3.2节) | P0 / P1 / P2 |
| 备注 | - | 留空 |
提取规则:
- 功能粒度与 SRS 页面功能清单保持一致,不合并、不拆分
- 优先级从 SRS 需求功能清单按模块匹配,找不到则留空
- **所属系统列**:扫描