| name | koi-prd-checker |
| description | PRD 规范性校验器。用于检查 PRD 文档是否符合规范要求。触发词:检查prd、校验prd、prd规范检查。 |
| user-invocable | true |
Koi PRD 规范性校验器
对 PRD 文档进行系统性检查,确保符合标准 PRD 规范要求。
工作内容
- 接收用户提供的 PRD 文档(或 PRD 文件路径)
- 默认从
prd-context/prd-files/ 目录读取
- 按照校验清单逐项检查
- 输出详细的校验报告
- 对于不符合项,提供具体的改进建议
校验标准(必须逐项检查)
1. 章节结构检查
PRD 必须包含以下 9 个章节:
检查方法: 逐项核对是否存在,如缺少任何必含章节(标记为可选的除外),记录为不符合项。
2. 用户故事格式检查
必须符合以下格式:
### US-XXX: [标题]
**描述:** 作为一名 [用户],我希望 [功能] 以便 [收益]。
**验收标准:**
- [ ] 具体可验证的标准
- [ ] 类型检查/lint 通过
- [ ] **[仅限 UI 故事]** 在浏览器中验证
检查项:
3. 用户故事颗粒度检查(关键)
拆分原则:
- 每个故事必须足够小,能在一次 AI 会话中完成(15-30 分钟工作量)
- 一个故事只做一件事:要么 UI、要么逻辑、要么数据存储
- 禁止出现"创建完整的 XXX"、"添加整个 XXX"这类过大故事
拆分示例:
| 过大故事(不合格) | 应拆分为(合格) |
|---|
| "创建预审记录(表单 + 上传 + 验证)" | ①创建表单页面 ②实现附件上传 ③表单验证逻辑 |
| "查询和搜索(筛选 + 关键词 + 分页 + 排序)" | ①列表展示与分页 ②多条件筛选 ③关键词搜索 ④列表排序 |
| "编辑功能(界面 + 预填充 + 附件 + 历史)" | ①编辑表单与预填充 ②附件增删 ③编辑历史记录 |
检查项:
4. 验收标准具体性检查(关键)
原则: 验收标准必须具体、可验证。
❌ 不合格的写法:
- "表单包含必要字段"
- "支持上传附件"
- "显示成功提示"
- "正确工作"
- "功能完善"
✅ 合格的写法:
- "表单包含以下字段:预审日期 (date picker)、申请人 (文本输入,最多 50 字)、状态 (下拉选择:待审批/已通过/已拒绝)"
- "支持上传 pdf/doc/docx/jpg/png 格式附件,单文件不超过 10MB,最多 5 个附件"
- "保存成功后,页面顶部显示绿色 toast 提示'保存成功',3 秒后自动消失"
- "编辑保存后,在操作日志表中插入一条记录,包含:操作人 ID、操作时间、修改前后的字段值差异"
检查项:
5. 功能需求与用户故事对应检查
原则: 每个功能需求(FR)必须有对应的用户故事(US)。
检查项:
6. 非目标完整性检查
原则: 非目标部分必须明确说明功能不包括什么。
额外要求: 对于支持的功能(如附件上传),要明确说明是否包含相关衍生功能。
检查项:
7. 技术栈明确性检查(关键)
原则: 技术栈必须明确指定,不能使用"等"模糊描述。
❌ 不合格的写法:
- "前端使用现代化框架(React/Vue 等)"
- "后端使用 Node.js 或 Python 等"
✅ 合格的写法:
- "前端:React 18 + TypeScript + Ant Design 5"
- "后端:Node.js 20 + Express 4 + PostgreSQL 15"
- "状态管理:Zustand"
- "构建工具:Vite 5"
检查项:
8. 分支名称检查
原则: 目标部分必须包含 branchName 字段。
格式: branchName: prd/[功能名称](kebab-case)
示例:
branchName: prd/pre-review-management
branchName: prd/task-priority-system
检查项:
9. 依赖说明检查
新项目必须包含:
第三方依赖:
10. 开放问题完整性检查
原则: 开放问题必须描述完整,不能有截断或不完整的句子。
检查项:
11. 目标可衡量性检查
原则: 目标必须具体、可衡量。
❌ 不合格的写法:
✅ 合格的写法:
- "将完成 X 的时间减少 50%"
- "将转化率提高 10%"
- "页面加载时间 < 2 秒"
检查项:
校验报告格式
完成检查后,输出以下格式的报告:
# PRD 规范性校验报告
**PRD 文件:** [文件名]
**校验时间:** [日期时间]
**校验结果:** ✅ 通过 / ❌ 不通过
---
## 检查结果汇总
| 检查项 | 结果 | 不符合项 |
|-------|------|---------|
| 章节结构 | ✅/❌ | [如不符合,列出缺少的章节] |
| 用户故事格式 | ✅/❌ | [如不符合,列出具体问题] |
| 用户故事颗粒度 | ✅/❌ | [列出过大的故事] |
| 验收标准具体性 | ✅/❌ | [列出模糊的验收标准] |
| 功能需求-US对应 | ✅/❌ | [列出缺少 US 的 FR] |
| 非目标完整性 | ✅/❌ | [问题描述] |
| 技术栈明确性 | ✅/❌ | [列出模糊的技术描述] |
| 分支名称 | ✅/❌ | [问题描述] |
| 依赖说明 | ✅/❌ | [缺少的依赖说明] |
| 开放问题完整性 | ✅/❌ | [截断的问题] |
| 目标可衡量性 | ✅/❌ | [不可衡量目标] |
---
## 不符合项详情
### 1. [检查项名称]
**问题描述:** [具体问题]
**当前内容:** [PRD 中的实际内容]
**改进建议:** [如何修改]
---
## 总结
- ✅ 符合项:X 项
- ❌ 不符合项:X 项
- **总体评价:** [是否符合规范]
---
## 改进优先级
1. **P0(必须修复):** [影响实施的关键问题]
2. **P1(强烈建议):** [影响效率的问题]
3. **P2(可选优化):** [最佳实践建议]
输出要求
- 必须逐项检查: 按照上述 11 项逐一检查,不能遗漏
- 必须提供证据: 每个不符合项要引用 PRD 中的实际内容
- 必须提供建议: 每个不符合项要给出具体的改进建议
- 分级处理: 按 P0/P1/P2 分级,帮助用户优先修复关键问题
触发条件
当用户发送以下内容时触发此技能:
- "检查 prd"
- "校验 prd"
- "prd 规范检查"
- "帮我看看这个 prd 符不符合规范"
- 用户提供了
.md 文件路径并要求检查