The Agent Skills Directory
npx skills add https://smithery.ai/skills/iannuttall/prd创建一份结构化的 JSON PRD,供 Ralph 确定性地执行。这份 PRD 是故事、验收门禁和状态的唯一事实来源。
重要提示: 请勿实现任何功能。仅生成 JSON。
即使提示看起来很清楚,也要提问。目标是捕获缺失的产品细节、技术栈选择和 UI/路由结构,以便 PRD 无需猜测即可实施。重点关注:
务必明确询问:
1. 此功能的主要目标是什么?
A. 改善用户入门体验
B. 提高用户留存率
C. 减少支持负担
D. 其他:[请说明]
2. 目标用户是谁?
A. 仅限新用户
B. 仅限现有用户
C. 所有用户
D. 仅限管理员用户
3. 每个故事必须通过哪些质量指令?
A. npm test
B. npm run lint
C. npm run typecheck
D. 其他:[指定]
注意:本节中的所有示例问题和选项仅为说明之用。除非用户明确选择,否则不要逐字复制到 PRD 中。请根据用户的回答和功能上下文推导最终的质量门禁和需求。
4. 我们使用什么技术栈 + 托管(以及任何约束)?
A. React + Vite(静态托管)
B. Next.js(Node/Edge)
C. TanStack Start(Cloudflare)
D. 其他:[指定]
5. 需要哪些 UI 屏幕/路由?
A. 最小化(1–2 页)
B. 基础应用外壳(仪表板 + 详情页)
C. 完整路由映射(列出所有路由)
D. 其他:[指定]
输出一个具有以下结构的 JSON 文件(包含详细的顶级字段,使 PRD 完全自包含):
{
"version": 1,
"project": "功能名称",
"overview": "简短的问题 + 解决方案摘要",
"goals": [
"目标 1",
"目标 2"
],
"nonGoals": [
"明确排除在范围之外的事项"
],
"successMetrics": [
"衡量成功的方式"
],
"openQuestions": [
"剩余的未知问题"
],
"stack": {
"framework": "TanStack Start",
"hosting": "Cloudflare",
"database": "D1",
"auth": "描述认证方式"
},
"routes": [
{ "path": "/", "name": "主页", "purpose": "..." }
],
"uiNotes": [
"布局或组件要求"
],
"dataModel": [
{ "entity": "Workout", "fields": ["id", "userId", "date", "notes"] }
],
"importFormat": {
"description": "预期的 JSON 结构",
"example": { "programName": "..." }
},
"rules": [
"关键业务规则 / 计算"
],
"qualityGates": ["npm run test:ping"],
"stories": [
{
"id": "US-001",
"title": "简短的故事标题",
"status": "open",
"dependsOn": [],
"description": "作为 [用户],我想要 [功能],以便 [收益]。",
"acceptanceCriteria": [
"具体的可验证标准",
"另一个标准"
]
}
]
}
US-001、US-002、...)"open"qualityGates 中npm install <pkg>),以及任何必需的配置或脚本。.agents/tasks/prd-<slug>.json)保存后,告诉用户:PRD JSON 已保存至 <路径>。关闭此聊天并运行 \ralph build`。`
如果提示提供的是目录(而非文件名),请选择一个简短的文件名:
prd-<short-slug>.json,其中 <short-slug> 是 1–3 个有意义的单词(避免使用“i want to”之类的填充词)。prd-workout-tracker.json、prd-usage-billing.json每个故事必须能在一次 Ralph 迭代中完成。如果某个故事感觉太大,请将其拆分为多个具有依赖关系的较小故事。
{
"version": 1,
"project": "任务优先级系统",
"overview": "为任务添加优先级级别,以便用户专注于最重要的事情。",
"goals": [
"允许为任何任务分配优先级(高/中/低)",
"支持按优先级筛选"
],
"nonGoals": [
"不提供自动优先级分配"
],
"successMetrics": [
"用户可在 2 次点击内更改优先级"
],
"openQuestions": [
"优先级是否应影响列内的排序?"
],
"stack": {
"framework": "React",
"hosting": "Cloudflare Pages",
"database": "D1",
"auth": "单一共享登录"
},
"routes": [
{ "path": "/tasks", "name": "任务列表", "purpose": "查看和筛选任务" },
{ "path": "/tasks/:id", "name": "任务详情", "purpose": "编辑任务优先级" }
],
"uiNotes": [
"优先级徽章颜色:高=红色,中=黄色,低=灰色"
],
"dataModel": [
{ "entity": "Task", "fields": ["id", "title", "priority"] }
],
"importFormat": {
"description": "不适用",
"example": {}
},
"rules": [
"未设置时,优先级默认为中"
],
"qualityGates": ["npm run test:ping"],
"stories": [
{
"id": "US-001",
"title": "向数据库添加优先级字段",
"status": "open",
"dependsOn": [],
"description": "作为开发人员,我希望存储任务优先级,以便它在会话间持久化。",
"acceptanceCriteria": [
"添加优先级列,默认值为 'medium'",
"示例:创建没有优先级的任务 -> 默认为 'medium'",
"负面案例:无效优先级 'urgent' -> 验证错误",
"迁移成功运行"
]
}
]
}
每周安装量
175
来源
首次出现
2026年3月6日
安全审计
安装于
claude-code102
cursor65
codex63
github-copilot58
opencode58
gemini-cli53
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:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
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"
]
}
]
}
Weekly Installs
175
Source
First Seen
Mar 6, 2026
Security Audits
Installed on
claude-code102
cursor65
codex63
github-copilot58
opencode58
gemini-cli53
通过 LiteLLM 代理让 Claude Code 对接 GitHub Copilot 运行 | 高级变通方案指南
33,600 周安装