ralph-tui-create-beads…
Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI). Creates an epic with child beads for each user story. Use when you have a PRD and want…
Convert PRDs to prd.json format for ralph-tui execution. Creates JSON task files with user stories, acceptance criteria, and dependencies. Triggers on: create prd.json, convert to json, ralph json, create json tasks.
$ npx -y skills add subsy/ralph-tui --skill ralph-tui-create-json --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ralph-tui-create-jsonContext preview
The summary Claude sees to decide when to auto-load this skill.
Convert PRDs to prd.json format for ralph-tui execution. Creates JSON task files with user stories, acceptance criteria, and dependencies. Triggers on: create prd.json, convert to json, ralph json, create json tasks.
name: ralph-tui-create-json description: "Convert PRDs to prd.json format for ralph-tui execution. Creates JSON task files with user stories, acceptance criteria, and dependencies. Triggers on: create prd.json, convert to json, ralph json, create json tasks."
Converts PRDs to prd.json format for ralph-tui autonomous execution.
> **Note:** This skill is bundled with ralph-tui's JSON tracker plugin. Future tracker plugins (Linear, GitHub Issues, etc.) will bundle their own task creation skills.
> **⚠️ CRITICAL:** The output MUST be a FLAT JSON object with "name" and "userStories" at the ROOT level. DO NOT wrap content in a "prd" object or use "tasks" array. See "Schema Anti-Patterns" section below.
---
Take a PRD (markdown file or text) and create a prd.json file: 1. **Extract Quality Gates** from the PRD's "Quality Gates" section 2. Parse user stories from the PRD 3. Append quality gates to each story's acceptance criteria 4. Set up dependencies between stories 5. Output ready for `ralph-tui run --prd <path>`
---
Look for the "Quality Gates" section in the PRD:
## Quality Gates These commands must pass for every user story: - `pnpm typecheck` - Type checking - `pnpm lint` - Linting For UI stories, also include: - Verify in browser using dev-browser skill
Extract:
**If no Quality Gates section exists:** Ask the user what commands should pass, or use a sensible default like `npm run typecheck`.
---
The JSON file MUST be a FLAT object at the root level:
{
"name": "[Project name from PRD or directory]",
"branchName": "ralph/[feature-name-kebab-case]",
"description": "[Feature description from PRD]",
"userStories": [
{
"id": "US-001",
"title": "[Story title]",
"description": "As a [user], I want [feature] so that [benefit]",
"acceptanceCriteria": [
"Criterion 1 from PRD",
"Criterion 2 from PRD",
"pnpm typecheck passes",
"pnpm lint passes"
],
"priority": 1,
"passes": false,
"notes": "",
"dependsOn": []
},
{
"id": "US-002",
"title": "[UI Story that depends on US-001]",
"description": "...",
"acceptanceCriteria": [
"...",
"pnpm typecheck passes",
"pnpm lint passes",
"Verify in browser using dev-browser skill"
],
"priority": 2,
"passes": false,
"notes": "",
"dependsOn": ["US-001"]
}
]
}---
The following patterns are INVALID and will cause validation errors:
{
"prd": {
"name": "...",
"userStories": [...]
}
}This wraps everything in a "prd" object. **DO NOT DO THIS.** The "name" and "userStories" fields must be at the ROOT level.
{
"name": "...",
"tasks": [...]
}The array is called **"userStories"**, not "tasks".
{
"metadata": {...},
"overview": {...},
"migration_strategy": {
"phases": [...]
}
}Even if the PRD describes phases/milestones/sprints, you MUST flatten these into a single "userStories" array.
{
"userStories": [{
"id": "US-001",
"status": "open" // WRONG!
}]
}Use `"passes": false` for incomplete stories, `"passes": true` for completed.
{
"name": "Android Kotlin Migration",
"branchName": "ralph/kotlin-migration",
"userStories": [
{"id": "US-001", "title": "Create Scraper interface", "passes": false, "dependsOn": []},
{"id": "US-002", "title": "Implement WeebCentralScraper", "passes": false, "dependsOn": ["US-001"]}
]
}---
**Each story must be completable in ONE ralph-tui iteration (~one agent context window).**
Ralph-tui spawns a fresh agent instance per iteration with no memory of previous work. If a story is too big, the agent runs out of context before finishing.
**Rule of thumb:** If you can't describe the change in 2-3 sentences, it's too big.
---
Use the `dependsOn` array to specify which stories must complete first:
{
"id": "US-002",
"title": "Create API endpoints",
"dependsOn": ["US-001"], // Won't be selected until US-001 passes
...
}Ralph-tui will:
**Correct dependency order:** 1. Schema/database changes (no dependencies) 2. Backend logic (depends on schema) 3. UI components (depends on backend) 4. Integration/polish (depends on UI)
---
Each story's acceptance criteria should include: 1. **Story-specific criteria** from the PRD (what this story accomplishes) 2. **Quality gates** from the PRD's Quality Gates section (appended at the end)
AI Agent Loop Orchestrator - A terminal UI for orchestrating AI coding agents to work through task lists autonomously.
Repo: subsy/ralph-tui
Convert PRDs to beads for ralph-tui execution using beads-rust (br CLI). Creates an epic with child beads for each user story. Use when you have a PRD and want…
Convert PRDs to beads for ralph-tui execution. Creates an epic with child beads for each user story. Use when you have a PRD and want to use ralph-tui with…
Generate a Product Requirements Document (PRD) for ralph-tui task orchestration. Creates PRDs with user stories that can be converted to beads issues or…