ralph-prd
skillCreate Product Requirements Document (PRD) and setup for Ralph autonomous loop. Use when user runs /create-prd command, wants to set up a project for Ralph, mentions "ralph setup", "create prd", "product requirements", or needs to generate tasks for autonomous development.
apm::install
apm install @joaquimscosta/ralph-prdapm::skill.md
---
name: ralph-prd
description: Create Product Requirements Document (PRD) and setup for Ralph autonomous loop. Use when user runs /create-prd command, wants to set up a project for Ralph, mentions "ralph setup", "create prd", "product requirements", or needs to generate tasks for autonomous development.
---
# Ralph PRD Creation
Interactive wizard to create Product Requirements Document and Ralph project setup with task sets.
## Quick Start
```bash
/create-prd # Start interactive wizard
/create-prd "Build a todo app" # Start with description
```
## What It Creates
```
project/
├── PROMPT.md # Instructions for each iteration
├── ralph.sh # Loop runner (executable)
└── .ralph/
├── current-taskset -> tasksets/initial # Symlink to active taskset
└── tasksets/
└── initial/ # Your task set (named during setup)
├── tasks.json # Task list (JSON)
├── prd.md # Requirements (Markdown)
├── memories.md # Persistent learnings
├── config.json # Ralph settings
└── activity.log # Iteration log (empty)
```
## Discovery Questions
Ask these discovery questions:
0. **Task Set Name** - What should this collection be called? (default: "initial")
1. **Problem** - What problem are you solving?
2. **Audience** - Who is the target user?
3. **Features** - What are the 3-5 core features?
4. **Tech Stack** - What technologies to use?
5. **Architecture** - Monolith, microservices, etc.?
6. **UI/UX** - Visual requirements and preferences?
7. **Auth** - Authentication needs?
8. **Integrations** - Third-party services?
9. **Success Criteria** - How do we know it's done?
### Question Specificity for Destructive Operations
When discovery questions involve deleting files, removing dependencies, or other destructive changes:
- **Always include full paths** of items being deleted or modified
- **State size/scope** — file count, line count, component count
- **Explicitly state what will NOT be affected**
- **Frame as confirmation, not open question** — "Deleting X, Y, Z. Proceed?" not "What should be deleted?"
See [EXAMPLES.md](EXAMPLES.md) for vague-vs-specific anti-patterns.
## Task Generation
Convert features into atomic tasks with categories: `setup`, `feature`, `integration`, `styling`, `testing`, `verification`. See [WORKFLOW.md](WORKFLOW.md) for task format and categories.
**Final verification task:** Always include a final task with `verificationTier: "visual"` (UI projects) or `"api"` (API-only projects) that verifies the complete application works end-to-end. This catches issues that individual task verification misses.
## Workflow
See [WORKFLOW.md](WORKFLOW.md) for detailed discovery flow.
## Examples
See [EXAMPLES.md](EXAMPLES.md) for PRD examples.
## Troubleshooting
See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for common issues.
## Templates (MANDATORY)
You MUST read and use these templates when generating output files. Do NOT write simplified versions from memory — the loop depends on exact field names and signal formats.
- `prompt.md.template` - **CRITICAL:** Contains the `RALPH_COMPLETE:` signal in Step 5. Read this template with the Read tool and fill in `{{placeholders}}`. Never hand-write PROMPT.md.
- `tasks.json.template` - **CRITICAL:** Tasks use `"passes": false` / `"passes": true` (NOT `"status": "pending"` / `"status": "done"`). The completion signal checks `passes`.
- `prd.md.template` - PRD document structure
- `config.json.template` - Ralph configuration
- `memories.md.template` - Learnings file
### Why This Matters
The `ralph.sh` loop script checks for `RALPH_COMPLETE:` in the output to stop. The `prompt.md.template` Step 5 tells Ralph to emit this signal when all tasks have `passes: true`. If PROMPT.md is hand-written without Step 5, or tasks.json uses a different field name, the loop runs forever.
### ralph.sh
Always copy `ralph.sh` from this plugin's `scripts/ralph.sh` directory. It contains required flags (`--dangerously-skip-permissions`, `--disallowedTools`) that are essential for non-interactive execution.
## After Setup
```bash
./ralph.sh 20 # Start autonomous loop
```
## Creating Additional Task Sets
After initial setup, create more task sets:
```bash
/ralph taskset new "auth-feature" # Create new task set
/ralph taskset list # See all task sets
/ralph taskset switch "auth-feature" # Switch to it
```