一键导入
prd-generator
Use when a structured PRD document is needed for the ralph loop — generates prd.json and progress.txt
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when a structured PRD document is needed for the ralph loop — generates prd.json and progress.txt
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when task scope exceeds one context window and decomposes into independent pass/fail stories with clean iteration boundaries
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work — merge, PR, or cleanup
Use when starting feature work that needs isolation from the current workspace or before executing plans that could leave the branch in a broken state
Use when a hard problem was just solved and the solution should be captured as a learning for future reference
Use when 3+ distinct occurrences suggest a skill should be updated with a new trigger, anti-pattern, or verification step
Use when creating a new skill or pattern for the dojo — guides the SKILL.md and PATTERN.md format, CSO lint rules, and index registration
| name | prd-generator |
| description | Use when a structured PRD document is needed for the ralph loop — generates prd.json and progress.txt |
| tags | ["process","planning","autonomous"] |
| triggers | ["generate PRD","ralph loop setup","training loop artifacts","create prd.json"] |
| chains_to | ["ralph-loop"] |
| priority | core |
| gate | false |
Generate the structured artifacts that drive the ralph loop: prd.json and progress.txt. The loop prompt lives in .claude/ralph-loop.local.md (written by the ralph-loop skill), not in a separate PROMPT.md file.
story-decomposition.claude/plugin/ralph/mkdir -p .claude/plugin/ralph/notes
prd.jsonFrom the decomposed stories, create:
{
"title": "Feature Name",
"goal": "One-sentence goal from the plan",
"created": "2026-03-04T00:00:00Z",
"stories": [
{
"id": 1,
"title": "Story title",
"goal": "What this delivers",
"dependencies": [],
"files": ["src/auth/store.ts", "src/auth/types.ts"],
"acceptance": [
"AuthStore exports useAuthStore hook",
"Login mutation updates user state",
"Tests pass: npm test -- auth/store"
],
"verification": "npm test -- --grep 'AuthStore'",
"passes": false
}
],
"totalStories": 5,
"completedStories": 0
}
Rules:
verification is a runnable command (exit 0 = pass)passes starts as false for all storiesfiles lists the expected files to create or modifyprogress.txt=== Training Loop: Feature Name ===
Goal: One-sentence goal
Stories: 0/5 complete
Started: 2026-03-04
[ ] Story 1: Title
Files: src/auth/store.ts, src/auth/types.ts
Verify: npm test -- --grep 'AuthStore'
[ ] Story 2: Title
Files: ...
Verify: ...
After generating all files:
prd.json is valid JSON.claude/plugin/ralph/ directory exists with prd.json, progress.txt, and notes/Note: PROMPT.md and status.json are no longer generated. The loop prompt lives in
.claude/ralph-loop.local.md (created by the ralph-loop skill when it activates the
Stop hook). Completion is detected by the Stop hook reading prd.json directly.
| Anti-Pattern | Why It's Wrong |
|---|---|
| Verification commands that always pass | Stories will be marked done without actual work |
| Missing dependency declarations | Stories will fail because prerequisites aren't met |
| Vague acceptance criteria | The loop can't determine pass/fail |
| PROMPT.md without CLAUDE.md reference | Iterations won't follow project conventions |
REQUIRED: syntaxninja-dojo:ralph-loop (after artifacts are generated)