Better Ralph
/install better-ralph
Better Ralph – One Iteration (OpenClaw)
Execute one iteration of the Better Ralph workflow: pick the next PRD story, implement it, run quality checks, commit, update the PRD, and append progress. Uses only standard tools (read_file, write_file, edit, exec, git). No external runner or Aether-Claw required.
When to Use
- User says: "run better ralph", "do one better ralph iteration", "next prd story", "ralph loop", "implement next story from prd".
- Project has a
prd.jsonin the workspace root (see Output Format below for schema).
One-Iteration Workflow
Do these steps in order. Use only your standard file, exec, and git tools.
1. Read state
- Read
prd.json(workspace root). Parse the JSON. - Read
progress.txtif it exists. If it has a section## Codebase Patternsnear the top (up to the next##or end of file), use that as context for implementation patterns. Otherwise proceed without it.
2. Pick the next story
- From
prd.json.userStories, find all withpasses === false. - Sort by
priorityascending (lower number = higher priority). - Take the first (highest priority incomplete story).
- If every story has
passes === true, reply: "All PRD stories are complete. Nothing left to do." and stop.
3. Ensure git branch
- Check current git branch (e.g. run
git branch --show-currentor use your git tool). - If
prd.jsonhas abranchNameand it differs from the current branch, checkout or create that branch (e.g.git checkout -b \x3CbranchName>orgit checkout \x3CbranchName>).
4. Implement the story
- Story = the one you picked. It has:
id,title,description,acceptanceCriteria,priority,passes. - Implement the story: write or edit code so that every item in
acceptanceCriteriais satisfied. - Work on this story only. Do not start the next story.
5. Run quality checks
- Run the project’s quality commands (e.g.
npm test,npm run lint,npm run typecheck, or whatever the project uses). - If any check fails, do not commit. Tell the user what failed and stop. Do not update
prd.jsonorprogress.txtfor a failed story.
6. Commit (only if checks passed)
- Stage all changes (e.g.
git add -Aor your git tool’s equivalent). - Commit with message exactly:
feat: [Story ID] - [Story Title]
Example:feat: US-002 - Display priority on task cards
7. Mark story passed in prd.json
- Read
prd.jsonagain (in case it changed). - Find the user story with the same
idyou just completed. Set itspassestotrue. - Write the full updated
prd.jsonback (preserve structure and other fields; only change that story’spasses).
8. Append progress to progress.txt
- Append (do not overwrite) a new block to
progress.txtwith this format:
## [Current date/time] - [Story ID]
- What was implemented (1–2 sentences)
- Files changed (list paths)
- **Learnings for future iterations:**
- Patterns or gotchas (e.g. "this codebase uses X for Y", "remember to update Z when changing W")
---
- If
progress.txtdoes not exist, create it with a first line like# Better Ralph Progressthen the block above.
9. Report to user
- Say which story you completed (ID and title) and that you updated the PRD and progress.
- If there are still stories with
passes === false, say: "Run another iteration to do the next story." If all are complete, say: "All PRD stories are complete."
prd.json format
If the user wants to create a new prd.json (no file yet), create it with this shape:
{
"project": "ProjectName",
"branchName": "ralph/feature-kebab-case",
"description": "Short feature description",
"userStories": [
{
"id": "US-001",
"title": "Short title",
"description": "As a [role], I want [thing] so that [benefit].",
"acceptanceCriteria": [
"Verifiable criterion 1",
"Verifiable criterion 2",
"Typecheck passes"
],
"priority": 1,
"passes": false,
"notes": ""
}
]
}
- priority: Lower number = higher priority. Order by dependency (e.g. schema before UI).
- passes: Start as
false; set totrueonly after the story is implemented and committed. - acceptanceCriteria: Each item must be checkable (e.g. "Typecheck passes", "Tests pass").
Codebase Patterns (progress.txt)
Optionally keep a Codebase Patterns section at the top of progress.txt so future iterations (or you in the next run) see it first:
# Better Ralph Progress
## Codebase Patterns
- Use X for Y in this codebase
- Always run Z after changing W
- Tests require PORT=3000
---
When you read progress.txt at the start of an iteration, use this section as context. When you discover a reusable pattern, add it here (edit the top of the file and keep the rest intact). Do not put story-specific details in Codebase Patterns.
Rules
- One story per invocation. Do not implement multiple stories in one go.
- Do not commit failing code. Only commit after quality checks pass.
- Do not mark a story as passed if you did not commit (e.g. checks failed).
- Append to progress.txt; never replace the whole file (except when creating it for the first time).
- Keep changes minimal and focused on the current story’s acceptance criteria.
Checklist (one iteration)
- Read prd.json and progress.txt (and Codebase Patterns if present)
- Picked next story (passes=false, lowest priority number)
- Git branch matches prd.json.branchName
- Implemented story and satisfied all acceptance criteria
- Quality checks passed (test/lint/typecheck)
- Committed with message
feat: [ID] - [Title] - Set that story’s passes to true in prd.json
- Appended progress block to progress.txt
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install better-ralph - After installation, invoke the skill by name or use
/better-ralph - Provide required inputs per the skill's parameter spec and get structured output
What is Better Ralph?
Run one Better Ralph iteration: pick next incomplete PRD story by priority, implement it, run checks, commit, mark passed, and append progress, using only st... It is an AI Agent Skill for Claude Code / OpenClaw, with 843 downloads so far.
How do I install Better Ralph?
Run "/install better-ralph" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Better Ralph free?
Yes, Better Ralph is completely free (open-source). You can download, install and use it at no cost.
Which platforms does Better Ralph support?
Better Ralph is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Better Ralph?
It is built and maintained by austindixson (@austindixson); the current version is v1.0.0.