dotfiles/claude-code/skills/ralph-builder/SKILL.md
Build or update Ralph Wiggum loop files for autonomous task execution.
npx skillsauth add jimweller/dotfiles ralph-builderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
STARTER_CHARACTER = 🔁
Build or update the three Ralph Wiggum loop files in .llmdocs/ so a ralph loop can execute autonomously against the current repo.
Arguments: $ARGUMENTS
The argument is a goal description. It may reference a file containing a PRD, plan, or task list.
All files go in <PROJECT_ROOT>/.llmdocs/. Create the directory if it does not exist.
| File | Purpose |
| ------------------ | ----------------------------------------------- |
| _ralph-prompt.md | The /ralph-loop:ralph-loop invocation command |
| _ralph-tasks.md | Checklist of discrete tasks |
| _ralph-plan.md | Execution plan for accomplishing the goal |
Read these files to understand the repo:
README.md (project root).md files in .llmdocs/ (architecture, api, data-model, deployment, testing, ops, etc.)If .llmdocs/ does not exist, create it.
If _ralph-tasks.md, _ralph-plan.md, or _ralph-prompt.md already exist, read them before overwriting.
This file is a progress-tracking checklist for a loop that reads it cold each iteration with zero memory of previous runs. Each ralph-loop iteration scans this file to find the first unchecked [ ] item and works on it. Checked [x] items are the only signal of prior progress.
Each item names a deliverable or outcome. The task file answers "what's left?" -- never "how do I do it?" All implementation details (commands, patterns, techniques, function names) belong in _ralph-plan.md.
Format:
- [ ] Create git tag RALPH-YYYYMMDD-BEGIN
- [ ] First task
- [ ] Second task
- [ ] Third task
- [ ] Create git tag RALPH-YYYYMMDD-END
BAD -- leaks implementation details into the task list:
- [ ] Create lib/Test-Helpers.psm1 with Test-VmPath function
- [ ] Add Test-VmLogContains to lib/Test-Helpers.psm1
- [ ] Run `npm install jsonwebtoken bcrypt` and add to package.json
- [ ] Add middleware in src/middleware/auth.ts that validates Bearer tokens
GOOD -- names the deliverable, leaves technique to instructions:
- [ ] Create lib/Test-Helpers.psm1
- [ ] Create lib/Test-Helpers.Tests.ps1
- [ ] Add auth dependencies
- [ ] Add auth middleware
Rules:
Create git tag RALPH-YYYYMMDD-BEGIN (use today's date)Create git tag RALPH-YYYYMMDD-END (use same date as the RALPH BEGIN tag)[ ] item only, then marks it [x]. Order every task so that item N never depends on an uncompleted item below it_ralph-plan.mdEach ralph-loop iteration reads this file cold with no memory of previous iterations. It must be fully self-contained: every command, pattern, convention, and technique needed to execute any task in _ralph-tasks.md belongs here. Dense, repo-specific detail is correct. Sparse, generic instructions cause each iteration to reinvent the approach.
The plan describes the target state and constraints, not the implementation. When existing code serves as a model, reference it by path. The model generates code through red-green-refactor during execution.
The plan is an execution guide, not a decision record. No rationale, changelogs, or "this replaces X" prose. State what exists and what to do with it. Each iteration doesn't care why a decision was made, only what the current state is and how to proceed.
BAD -- decision records and changelogs:
GOOD -- current facts only:
Format:
<!-- prettier-ignore-start --># Ralph Plan
## Goal
<one paragraph summary of the objective>
## Approach
<strategy specific to this goal -- include all relevant repo-specific detail directly, do not reference external docs that may become stale during the run>
## Conventions
<repo-specific patterns, tools, test commands, build commands, commit style>
## Git Workflow
Before the first task:
git checkout -b ralph/YYYYMMDD-<short-goal-slug>
git tag RALPH-YYYYMMDD-BEGIN
After the last commit:
git tag RALPH-YYYYMMDD-END
Never commit to main. All ralph work happens on the ralph/ branch.
## Per-Task Workflow
Each iteration: find the first unchecked `[ ]` item in _ralph-tasks.md. Work only that item. Do not skip ahead or batch multiple tasks.
MANDATORY for every task without exception:
1. Write a failing test that defines the expected behavior
2. Write the minimum code to make the test pass
3. Refactor if needed while keeping tests green
4. git add and git commit with a conventional commit message
5. Mark the task [x] in _ralph-tasks.md
Never batch commits. Never skip the test step. Never skip the commit step.
<!-- prettier-ignore-end -->
Rules:
@path/file references to .llmdocs/ docs -- ralph's work often changes the repo structure, making referenced docs stale mid-runBefore writing the files, verify the separation:
_ralph-tasks.md, the instructions file must contain enough context to execute it (commands, patterns, file locations, conventions)_ralph-plan.md, not on the task lineWrite exactly this static invocation. Do not modify it.
/ralph-loop:ralph-loop "Read @.llmdocs/\_ralph-plan.md and follow its instructions. Work through @.llmdocs/\_ralph-tasks.md one task at a time. Mark items [x] when complete. Output <promise>ALLDONE</promise> when all tasks are complete." --max-iterations 100 --completion-promise ALLDONE
Rules:
@ file references beyond _ralph-plan.md and _ralph-tasks.md. All other file references belong in _ralph-plan.md.List the three files created/updated and summarize the task count.
testing
Search saved session transcripts for past decisions, actions, errors, and context that has left the current conversation window.
data-ai
Review a PRD for defects via Claude opus subagent.
development
Markdown authoring guidelines for formatting, code blocks, and structure. Use when writing or editing markdown files.
development
--- name: md-style description: README style guide for concise, direct documentation. Use when writing or editing README files. ß--- <!-- markdownlint-disable-file MD041 --> # README Style Guide Write concise, direct README files for experienced engineers. ## Principles - **No fluff** - Skip tables of contents, verbose explanations, development history - **No roadmaps** - Document current state only, not plans or decisions. Readme is an engineering specification. Not a project plan or chan