将 PRD 转换为 Ralph 自主代理系统使用的 prd.json 格式。在您有现有 PRD 并需要将其转换为 Ralph 的 JSON 格式时使用。触发条件:生成 prd.json, convert this prd, turn this into ralph format, create prd.json from this, ralph json。
将现有 PRD 转换为 Ralph 用于自主执行的 prd.json 格式。
获取 PRD(markdown 文件或文本)并将其转换为您 ralph 目录中的 prd.json。
{
"project": "[项目名称]",
"branchName": "ralph/[功能名称-连字符格式]",
"description": "[来自 PRD 标题/介绍的功能描述]",
"userStories": [
{
"id": "US-001",
"title": "[故事标题]",
"description": "作为一个 [用户],我想要 [功能] 这样 [好处]",
"acceptanceCriteria": [
"标准 1",
"标准 2",
"类型检查通过"
],
"priority": 1,
"passes": false,
"notes": ""
}
]
}
每个故事必须可以在 ONE Ralph 迭代(一个上下文窗口)中完成。
Ralph 每次迭代都会生成一个新的 AI 实例,没有任何先前工作的记忆。如果故事太大,LLM 会在完成之前耗尽上下文并生成损坏的代码。
经验法则: 如果您无法在 2-3 句话中描述更改,则太大。
故事按优先级顺序执行。早期故事不得依赖后期故事。
正确顺序:
错误顺序:
每个标准必须是 Ralph 可以检查的东西,而不是模糊的东西。
status 列,默认值为 'pending'""类型检查通过"
对于有可测试逻辑的故事,还包括:
"测试通过"
"使用 dev-browser 技能在浏览器中验证"
前端故事在视觉验证之前并未完成。Ralph 将使用 dev-browser 技能导航到页面,与 UI 交互,并确认更改有效。
passes: false 和空的 notesralph/ 为前缀如果 PRD 有大型功能,请将其分割:
原始:
"添加用户通知系统"
分割为:
每个都是一个集中的更改,可以独立完成和验证。
输入 PRD:
# 任务状态功能
添加标记不同任务状态的能力。
## 需求
- 在任务列表上切换待办/进行中/完成
- 按状态筛选列表
- 在每个任务上显示状态徽章
- 在数据库中持久化状态
输出 prd.json:
{
"project": "TaskApp",
"branchName": "ralph/task-status",
"description": "任务状态功能 - 使用状态指示器跟踪任务进度",
"userStories": [
{
"id": "US-001",
"title": "向任务表添加状态字段",
"description": "作为一个开发人员,我需要在数据库中存储任务状态。",
"acceptanceCriteria": [
"添加状态列:'pending' | 'in_progress' | 'done'(默认 'pending')",
"成功生成并运行迁移",
"类型检查通过"
],
"priority": 1,
"passes": false,
"notes": ""
},
{
"id": "US-002",
"title": "在任务卡片上显示状态徽章",
"description": "作为一个用户,我想要一眼看到任务状态。",
"acceptanceCriteria": [
"每个任务卡片显示彩色状态徽章",
"徽章颜色:灰色=待办,蓝色=进行中,绿色=完成",
"类型检查通过",
"使用 dev-browser 技能在浏览器中验证"
],
"priority": 2,
"passes": false,
"notes": ""
},
{
"id": "US-003",
"title": "向任务列表行添加状态切换",
"description": "作为一个用户,我想要直接从列表更改任务状态。",
"acceptanceCriteria": [
"每行都有状态下拉菜单或切换",
"更改状态立即保存",
"UI 更新无需刷新页面",
"类型检查通过",
"使用 dev-browser 技能在浏览器中验证"
],
"priority": 3,
"passes": false,
"notes": ""
},
{
"id": "US-004",
"title": "按状态筛选任务",
"description": "作为一个用户,我想要筛选列表只查看某些状态。",
"acceptanceCriteria": [
"筛选下拉菜单:全部 | 待办 | 进行中 | 完成",
"筛选器保留在 URL 参数中",
"类型检查通过",
"使用 dev-browser 技能在浏览器中验证"
],
"priority": 4,
"passes": false,
"notes": ""
}
]
}
在编写新的 prd.json 之前,检查是否存在来自不同功能的现有 prd.json:
prd.jsonbranchName 是否与新功能的分支名称不同progress.txt 除了标题外还有内容:
archive/YYYY-MM-DD-feature-name/prd.json 和 progress.txt 复制到归档progress.txtralph.sh 脚本在运行时自动处理此问题,但如果在运行之间手动更新 prd.json,请先归档。
在编写 prd.json 之前,验证: