with one click
koi-prd-generator
生成产品需求文档(PRD)。用于规划功能、启动新项目。触发词:创建prd、写prd、规划功能、产品需求文档。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
生成产品需求文档(PRD)。用于规划功能、启动新项目。触发词:创建prd、写prd、规划功能、产品需求文档。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
PRD 规范性校验器。用于检查 PRD 文档是否符合规范要求。触发词:检查prd、校验prd、prd规范检查。
将 PRD 文档转换为 prd.json 格式,用于故事循环执行器逐故事执行。触发词:转换 prd、转 json、create prd.json、prd 转 json。
PRD 生成与校验流水线。自动执行 生成→校验→修正→复检 的循环流程,输出符合规范的 PRD。触发词:生成prd流水线、prd pipeline、创建高质量prd。
故事执行器(子代理指令)。每次执行一个用户故事,通过文件系统传递上下文。触发词:执行故事、实施PRD、开始开发。
故事循环执行器。读取prd-[功能名称].json,按依赖顺序循环调度子代理逐个执行用户故事,直到全部完成。触发词:执行故事循环、开始执行故事、自动执行故事。
| name | koi-prd-generator |
| description | 生成产品需求文档(PRD)。用于规划功能、启动新项目。触发词:创建prd、写prd、规划功能、产品需求文档。 |
| user-invocable | true |
创建清晰、可操作且适合实施的产品需求文档。
prd-context/prd-files/prd-[功能名称].md重要:
prd-context/ 目录不存在,尝试自动创建。prd-context/ 目录。技术栈信息由 prd-pipeline 传递,无需在本技能中询问。
使用以下部分生成 PRD:
简要描述功能及其解决的问题。
具体的、可衡量的目标(项目符号列表)。
Branch 名称: 在目标部分下方添加 branch 名称,格式如:branchName: prd/pre-review-management
每个故事需要:
故事拆分原则(关键):
拆分示例:
| 过大故事 | 应拆分为 |
|---|---|
| "创建预审记录(表单 + 上传 + 验证)" | ①创建表单页面 ②实现附件上传 ③表单验证逻辑 |
| "查询和搜索(筛选 + 关键词 + 分页 + 排序)" | ①列表展示与分页 ②多条件筛选 ③关键词搜索 ④列表排序 |
| "编辑功能(界面 + 预填充 + 附件 + 历史)" | ①编辑表单与预填充 ②附件增删 ③编辑历史记录 |
格式:
### US-001: [标题]
**描述:** 作为一名 [用户],我希望 [功能] 以便 [收益]。
**依赖:** US-000(可选,如数据库设计故事)
**优先级:** 高
**验收标准:**
- [ ] 具体、可验证的标准(包含字段名、类型、格式、数量等具体信息)
- [ ] 另一个标准(避免"正确工作"等模糊描述)
- [ ] 类型检查/lint 通过
- [ ] **[仅限 UI 故事]** 在浏览器中验证
验收标准写作要求(关键):
依赖说明要求:
对于任何有 UI 更改的故事: 始终包含"在浏览器中验证"作为验收标准。这确保了前端工作的可视化验证。
具体功能的编号列表:
要明确且不含糊。
功能需求与用户故事对应检查:
此功能不包括什么。这对于管理范围至关重要。
要求:
新项目必须包含:
第三方依赖说明:
npm install xlsx"npm install multer"npm install antd"技术栈明确要求(关键):
如何衡量成功?
剩余的问题或需要澄清的领域。
要求:
PRD 读者可能是初级开发者或 AI 代理。因此:
.md)prd-context/prd-files/prd-[功能名称].mdprd-context/ 目录不存在,尝试自动创建;如果创建失败,提示用户手动创建prd-login-system.md以下是一个符合最佳实践的 PRD 示例(简化版):
# PRD:任务优先级系统
## 引言
为任务添加优先级,以便用户能够专注于最重要的事项。
## 目标
- 允许为任何任务分配优先级(高/中/低)
- 提供不同优先级之间的清晰视觉区分
- 启用按优先级筛选和排序
- 默认新任务为中优先级
**branchName:** prd/task-priority-system
## 用户故事
### US-000:数据库设计
**描述:** 作为一名开发者,我需要设计数据库表结构,以便存储任务优先级数据。
**依赖:** 无(第一个故事)
**优先级:** 高
**验收标准:**
- [ ] 创建 tasks 表,包含字段:id(uuid), title(text), priority('high'|'medium'|'low', 默认'medium'), created_at(timestamp)
- [ ] 成功生成并运行迁移:`npm run db:migrate`
- [ ] 类型定义文件 `src/types/task.ts` 包含 Priority 类型:'high' | 'medium' | 'low'
- [ ] 类型检查通过
### US-001:在任务卡片上显示优先级徽章
**描述:** 作为一名用户,我希望一目了然地看到任务优先级,以便知道什么需要首先关注。
**依赖:** US-000
**优先级:** 高
**验收标准:**
- [ ] 每个任务卡片右侧显示彩色优先级徽章
- [ ] 颜色映射:红色 (#ff4d4f)=高,橙色 (#faad14)=中,灰色 (#d9d9d9)=低
- [ ] 徽章尺寸:24x24px,圆角 4px
- [ ] 无需悬停或点击即可看到优先级
- [ ] 安装 Ant Design:`npm install antd`
- [ ] 类型检查通过
- [ ] 在浏览器中验证
### US-002:在任务编辑中添加优先级选择器
**描述:** 作为一名用户,我希望在编辑任务时更改任务的优先级。
**依赖:** US-000
**优先级:** 中
**验收标准:**
- [ ] 任务编辑模态框包含优先级下拉菜单(使用 Ant Design Select 组件)
- [ ] 下拉选项:高优先级、中优先级、低优先级
- [ ] 显示当前选中的优先级
- [ ] 选择更改后立即保存到数据库
- [ ] 保存成功后显示绿色 toast 提示"保存成功",3 秒后自动消失
- [ ] 类型检查通过
- [ ] 在浏览器中验证
### US-003:按优先级筛选任务
**描述:** 作为一名用户,当我很专注时,我希望筛选任务列表以仅查看高优先级的项目。
**依赖:** US-000
**优先级:** 中
**验收标准:**
- [ ] 任务列表顶部包含筛选下拉菜单,选项:全部 | 高优先级 | 中优先级 | 低优先级
- [ ] 筛选条件持久化在 URL 参数中(如 ?priority=high)
- [ ] 当没有匹配的任务时显示空状态:"暂无任务"
- [ ] 筛选改变时不使用页面刷新
- [ ] 类型检查通过
- [ ] 在浏览器中验证
## 功能需求
- FR-1:向 tasks 表添加 `priority` 字段('high' | 'medium' | 'low',默认'medium')
- FR-2:在每个任务卡片右侧显示彩色优先级徽章
- FR-3:在任务编辑模态框中包含优先级下拉选择器
- FR-4:向任务列表顶部添加优先级筛选下拉菜单
- FR-5:在每个状态列内按优先级排序(高→中→低)
## 非目标
- 没有基于优先级的通知或提醒
- 没有基于到期日期的自动优先级分配
- 子任务没有优先级继承
- 不支持批量修改优先级
## 技术栈
- 前端:React 18 + TypeScript + Ant Design 5
- 状态管理:Zustand
- 构建工具:Vite 5
- 数据库:PostgreSQL 15
## 成功指标
- 用户可以在不到 2 次点击内更改优先级
- 高优先级任务在列表顶部立即可见
- 任务列表性能无回归(加载时间 < 500ms)
## 开放问题
- 优先级是否应该影响列内的任务排序顺序?(建议:是,高→中→低)
- 是否需要添加键盘快捷键来快速修改优先级?(建议:后续迭代添加)
prdFiles/prd-[功能名称].md