一键导入
prd
Generate a Product Requirements Document (PRD) as JSON for Ralph. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate a Product Requirements Document (PRD) as JSON for Ralph. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Write conventional commit messages with type, scope, and subject when the user wants to commit changes or save work.
Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.
| name | prd |
| description | Generate a Product Requirements Document (PRD) as JSON for Ralph. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out. |
Create a structured JSON PRD that Ralph can execute deterministically. This PRD is the single source of truth for stories, gates, and status.
Important: Do NOT implement anything. Only generate JSON.
Ask questions even if the prompt seems clear. The goal is to capture missing product details, stack choices, and UI/route structure so the PRD is implementable without guesswork. Focus on:
Always ask explicitly:
1. What is the primary goal of this feature?
A. Improve user onboarding experience
B. Increase user retention
C. Reduce support burden
D. Other: [please specify]
2. Who is the target user?
A. New users only
B. Existing users only
C. All users
D. Admin users only
3. What quality commands must pass for each story?
A. npm test
B. npm run lint
C. npm run typecheck
D. Other: [specify]
Note: All example questions and options in this section are illustrative only. Do not copy them verbatim into the PRD unless the user explicitly chooses them. Derive the final quality gates and requirements from the user's answers and the feature context.
4. What stack + hosting are we using (and any constraints)?
A. React + Vite (static hosting)
B. Next.js (Node/Edge)
C. TanStack Start (Cloudflare)
D. Other: [specify]
5. What UI screens/routes are required?
A. Minimal (1–2 pages)
B. Basic app shell (dashboard + detail pages)
C. Full routing map (list all routes)
D. Other: [specify]
Output a JSON file with this shape (include detailed top-level fields so the PRD is fully self-contained):
{
"version": 1,
"project": "Feature Name",
"overview": "Short problem + solution summary",
"goals": [
"Goal 1",
"Goal 2"
],
"nonGoals": [
"Explicitly out of scope items"
],
"successMetrics": [
"How success is measured"
],
"openQuestions": [
"Remaining unknowns"
],
"stack": {
"framework": "TanStack Start",
"hosting": "Cloudflare",
"database": "D1",
"auth": "describe approach"
},
"routes": [
{ "path": "/", "name": "Home", "purpose": "..." }
],
"uiNotes": [
"Layout or component requirements"
],
"dataModel": [
{ "entity": "Workout", "fields": ["id", "userId", "date", "notes"] }
],
"importFormat": {
"description": "Expected JSON shape",
"example": { "programName": "..." }
},
"rules": [
"Key business rules / calculations"
],
"qualityGates": ["npm run test:ping"],
"stories": [
{
"id": "US-001",
"title": "Short story title",
"status": "open",
"dependsOn": [],
"description": "As a [user], I want [feature] so that [benefit].",
"acceptanceCriteria": [
"Specific verifiable criterion",
"Another criterion"
]
}
]
}
US-001, US-002, ...)"open" for new storiesqualityGatesnpm install <pkg>), plus any required config or scripts..agents/tasks/prd-<slug>.json)After saving, tell the user:
PRD JSON saved to <path>. Close this chat and run \ralph build`.`
If the prompt provides a directory (not a filename), choose a short filename:
prd-<short-slug>.json where <short-slug> is 1–3 meaningful words (avoid filler like “i want to”).prd-workout-tracker.json, prd-usage-billing.jsonEach story must be completable in a single Ralph iteration. If a story feels too large, split it into multiple smaller stories with dependencies.
{
"version": 1,
"project": "Task Priority System",
"overview": "Add priority levels to tasks so users can focus on what matters most.",
"goals": [
"Allow assigning priority (high/medium/low) to any task",
"Enable filtering by priority"
],
"nonGoals": [
"No automatic priority assignment"
],
"successMetrics": [
"Users can change priority in under 2 clicks"
],
"openQuestions": [
"Should priority affect ordering within a column?"
],
"stack": {
"framework": "React",
"hosting": "Cloudflare Pages",
"database": "D1",
"auth": "single shared login"
},
"routes": [
{ "path": "/tasks", "name": "Task List", "purpose": "View and filter tasks" },
{ "path": "/tasks/:id", "name": "Task Detail", "purpose": "Edit task priority" }
],
"uiNotes": [
"Priority badge colors: high=red, medium=yellow, low=gray"
],
"dataModel": [
{ "entity": "Task", "fields": ["id", "title", "priority"] }
],
"importFormat": {
"description": "Not applicable",
"example": {}
},
"rules": [
"Priority defaults to medium when not set"
],
"qualityGates": ["npm run test:ping"],
"stories": [
{
"id": "US-001",
"title": "Add priority field to database",
"status": "open",
"dependsOn": [],
"description": "As a developer, I want to store task priority so it persists across sessions.",
"acceptanceCriteria": [
"Add priority column with default 'medium'",
"Example: creating a task without priority -> defaults to 'medium'",
"Negative case: invalid priority 'urgent' -> validation error",
"Migration runs successfully"
]
}
]
}