APM

>Agent Skill

@joaquimscosta/ralph-prd

skilldevelopment

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.

apm::install
$apm install @joaquimscosta/ralph-prd
apm::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
```