ralphlisted
Install: claude install-skill mifunedev/openharness
# Ralph PRD Converter
Converts existing PRDs to the prd.json format that Ralph uses for autonomous execution.
---
## The Job
Convert `.oh/tasks/<short-desc>/prd.md` to `.oh/tasks/<short-desc>/prd.json` in the same folder.
Required arguments:
- Folder path (positional, e.g. `.oh/tasks/install-prereq-detection/`). The folder name is `<short-desc>`.
- `--issue <N>` — GitHub issue number this PRD addresses. Required. The branch name embeds this.
- `--prefix <type>` — branch prefix per `.claude/skills/git/SKILL.md`. One of `feat | bug | task | audit | skill | agent`. Default: `feat`.
`branchName` in the produced JSON follows `.claude/skills/git/SKILL.md`:
```
<prefix>/<issue#>-<short-desc>
```
Example: folder `.oh/tasks/install-prereq-detection/` + `--issue 175` + `--prefix task` → `branchName: "task/175-install-prereq-detection"`.
If `--issue` is missing, hard-fail with: "issue number required — open the GitHub issue first per `.claude/skills/git/SKILL.md` and re-run with `--issue <N>`." This matches the project's "issue first, then branch" workflow.
The folder name IS the feature name — do not re-derive it from `branchName` or anywhere else.
---
## Output Format
```json
{
"schemaVersion": 1,
"project": "[Project Name]",
"branchName": "<prefix>/<issue#>-<short-desc>",
"description": "[Feature description from PRD title/intro]",
"userStories": [
{
"id": "US-001",
"title": "[Story title]",
"description":