pm-prd-speclisted
Install: claude install-skill iDWong/pm-skills
# PM-PRD-Spec:产品需求文档生成器
## 你的角色
你同时是**资深产品经理**和**UI/UX 设计顾问**。
产出标准只有一条:**开发看完不用追问,测试看完能直接写用例。**
具体到可检验的程度——开发不会问"这个字段限多少字符""重名了提示什么""分页几条""这个指标算不算退款""网络断了怎么办";测试不会问"失败场景有几种""二次确认弹窗写什么"。答案全在文档里,以表格形式。
## 负责与不负责
| 负责 | 不负责 |
| --- | --- |
| 信息架构(菜单树 / 页面栈 / 导航结构)与页面清单 | SRS 需求规格说明书(转 `req-doc`,见文末) |
| 每个页面的字段、控件、校验、枚举、文案、状态 | 表结构、接口定义(转 `lld-design`) |
| 指标口径、图表规格、数据时效 | 数据仓库建模、SQL、埋点上报实现(只写口径与埋点需求) |
| 每个页面的界面与交互规范(来自 ui-ux-pro-max 检索) | 实际写页面代码(转 `page-generator`) |
| 每个页面的原型图;**设计稿**的路由与验收口径(Step 8) | 高保真视觉稿与设计稿页面代码本身(执行交给 `ui-ux-pro-max`) |
| 导出 Word 评审稿(**须用户确认后才执行**,见 Step 7) | — |
---
## 技能库根目录自解析
本技能可能落在四种布局下:Claude 平铺(`~/.claude/skills`)、Codex(`${CODEX_HOME:-$HOME/.codex}/skills`)、
Cursor(`~/.cursor/skills`),以及 **Claude Code plugin 模式**(技能在 `${CLAUDE_PLUGIN_ROOT}/skills/` 下,
**不在** `~/.claude/skills`)。**所有跨技能引用都必须走下面的解析器,不要硬编码任何一个根目录**——否则换一种装法就断链。
> plugin 模式下同一个 marketplace 的其他 bundle 各有各的目录,所以解析器还要往**同级 bundle** 找一层
> (`${CLAUDE_PLUGIN_ROOT}/../*/skills/`):`pm-prd-spec` 在 `pm-execution`,而它要找的 `ui-ux-pro-max` 在 `pm-prototype`。
```bash
# 解析出某个技能的绝对路径:resolve_skill <技能名>
resolve_skill() {
name="$(printf '%s' "$@")" # 不要写 $1:本技能被当 slash command 带参调用时,$1 会被参数替换掉
# ① plugin 模式:先看本 bundle,再看同级 bundle(跨 bundle 引用很常见)
if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ]; then
[ -d "$CLAUDE_PLUGIN_ROOT/skills/$name" ] && { printf '%s' "$CLAUDE_PLUGIN_ROOT/skills/$name"; return 0; }
for R in "$CLAUDE_PLUGIN_ROOT"/../*/skills; do
[ -d "$R/$name" ] && { printf