ralph
Skill8 starsChanged 6 months agoMITView on GitHub
Interactive feature builder with subagent delegation and approval gates.
45 other projects use a version of this.
Adopted by
Most recently taken up by
- lhbsaa/apex-unifiedtheir own version, first seen Nov 8, 2026
- Yeachan-Heo/oh-my-claudecodetheir own version, first seen Nov 8, 2026
- lza6/claw-code-tingfengtheir own version, first seen Nov 1, 2026
- newsc2/claude-skillstheir own version, first seen Oct 20, 2026
- jellydn/my-ai-toolstheir own version, first seen Oct 18, 2026
- vijpatel7/favorite_skills_and_pluginstheir own version, first seen Oct 15, 2026
Used with
Projects with it also use ultrawork, cancel and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
zephyrpersonalSkillultrawork
Obsessive task completion mode (Sisyphus Mode) - activates maximum intensity work with todo continuation enforcement
Also in 7 projects that use this
woosikkimSkillcancel
Clear any stale OMC-Slim state
Also in 7 projects that use this
ibahgatSkillralplan
Create a strict, quality-first execution plan with explicit gates and rollback-ready sequencing.
Also in 5 projects that use this
Jurel89Skillultraqa
QA cycling loop — build/lint/test, fix, retry up to 5 cycles
Also in 3 projects that use this
JokerRunSkillcompound-engineering
Compound Engineering workflow for AI-assisted development. Use when planning features, executing work, reviewing code, or codifying learnings. Follows the Plan → Work → Review → Compound loop where each unit of engineering makes subsequent work easier. Triggers on: plan this feature, implement this, review this code, compound learnings, create implementation plan, systematic development.
Also in 3 projects that use this
Jurel89Skillai-slop-cleaner
Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode
Also in 3 projects that use this
Other versions45 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 45
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- Yeachan-Heo/oh-my-codex★ 34ksame name
- snarktank/ralph★ 22ksame name
- Q00/ouroboros★ 6.3ksame name
- zereight/gitlab-mcp★ 2.1ksame name
- srid/emanote★ 963same name
- opentabs-dev/opentabs★ 926same name
- first-fluke/fullstack-starter★ 226same name
- team-attention/hoyeon★ 173same name
35 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- .claude/rules/common/agents.mdAGENTS.md
- agent-creatorSkill
- architect-reviewSkill
- build-fixSkill
- code-reviewSkill
- deep-diveSkill
- docsSkill
- incident-debugSkill
- performance-reviewSkill
- planSkill
- qaSkill
- refactor-cleanSkill
- rule-creatorSkill
- security-reviewSkill
- skill-creatorSkill
- tdd-workflowSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
19 rules. 0 are common, 12 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 41 edited versions we read keep these.
12
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
No args — ask the user what to build
- Very specific: line 24
Read $ARGUMENTS and determine the input mode.
- Distinctive: line 33
No args → ask the user which issues or what to build
- Very specific: line 46
Write prd.json following tools/ralph/prd.json.example schema
- Very specific: line 53
Read .claude-toolkit.json for project config (test/lint commands, MCP servers)
- Distinctive: line 55
Read CLAUDE.md for project conventions
- Very specific: line 59
Create a feature branch if on main: ralph/<slug>
- Very specific: line 86
Domain Agent Discovery: If the story's labels match a filename in .claude/agents/ (e.g., label billing matches billing.md), also spawn that …
- Distinctive: line 125
APPROVAL GATE: Ask the user to approve, revise, or skip this story.
- Distinctive: line 160
If the agent reports failures after implementation, retry once with the error context.
- Distinctive: line 175
If the story touches auth, payments, user data, or secrets:
- Distinctive: line 186
APPROVAL GATE: Ask the user to approve, request fixes, or skip.
- Very specific: line 229
When all stories are either passes: true or stuck: true:
- Distinctive: line 231
Final QA: Run the full test suite and linter.
- Distinctive: line 244
Final approval: Ask user if they want to push to remote.
- Distinctive: line 248
Max 2 retries per story: before marking as stuck
- Very specific: line 249
prd.json corruption: If prd.json becomes invalid JSON, warn and restore from the last known good state
- Distinctive: line 250
Agent failures: If a Task agent fails, log the error and retry once.
- Distinctive: line 251
Test failures: Never commit with failing tests.
“Common” is measured: kept by at least 6 in 10 of the 41 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
/ralph
Orchestrates feature development across multiple user stories. Spawns specialized subagents for exploration, planning, implementation, and review — with human approval gates between phases.
Replaces the old ralph.sh bash loop with an interactive, token-efficient approach that runs inside the user's session.
Arguments: $ARGUMENTS
--issues N,N— build from specific GitHub issues--label X— build from issues with that label--prd path/to/prd.json— use an existing PRD--auto— auto-approve gates (CI mode, skip approval prompts)- No args — ask the user what to build
Step 1: Initialize
Parse arguments
Read $ARGUMENTS and determine the input mode.
Generate or load PRD
If no prd.json exists (and --prd not provided):
- Fetch issues via
ghCLI:--issues N,N→gh issue view <N> --json number,title,body,labels,milestone--label X→gh issue list --label "X" --state open --json number,title,body,labels- No args → ask the user which issues or what to build
Decompose issues into user stories with strategy mapping:
Story type Strategy Simple feature, <= 3 criteria tdd-workflowDatabase/schema changes migration-safetyTouches multiple modules cross-modulePayment/subscription logic billing-securityAI/LLM prompt changes ai-prompt-designMulti-step user flow user-flow- Order stories: backend before frontend, migrations before code, core before UI
- Write
prd.jsonfollowingtools/ralph/prd.json.exampleschema - APPROVAL GATE: Show the PRD to the user (story count, order, strategies). Wait for approval before proceeding. In
--automode, skip this gate.
If prd.json exists (or --prd provided): read it directly.
Project configuration
- Read
.claude-toolkit.jsonfor project config (test/lint commands, MCP servers) - Scan
.claude/agents/for available domain agents (filenames map to labels) - Read
CLAUDE.mdfor project conventions
Branch and state
- Create a feature branch if on main:
ralph/<slug> - Initialize
progress.txtif not present:# Progress Log Started: <date> ---
Step 2: Story Loop
Process each story in priority order where passes == false and stuck != true.
For each story, run five phases:
Phase 1: Understand
Explore the codebase area relevant to this story.
Task(subagent_type="planner"):
"Explore the codebase to understand: <story title>.
Focus on: <acceptance criteria summary>.
Return: affected files, existing patterns, relevant tests, dependencies."Domain Agent Discovery: If the story's labels match a filename in .claude/agents/ (e.g., label billing matches billing.md), also spawn that domain agent:
Task(subagent_type=<matched-agent>):
"Provide domain-specific context for: <story title>.
Story details: <acceptance criteria>."Contract Truth Verification (blockchain projects only): If the story has a blockchain or solidity label, or the project has a blockchain domain agent, spawn a verification step:
Task(subagent_type=<blockchain-domain-agent>):
"List what the smart contract interface actually supports.
Compare against the story requirements: <acceptance criteria>.
Flag any mismatches — features the contract doesn't support,
missing functions, or incompatible return types."This prevents hallucinating features the contract doesn't support. Any mismatches must be resolved before proceeding to Phase 2.
Summarize findings in < 500 words. This summary is passed forward to Phase 2.
Phase 2: Plan
Generate an implementation plan.
Task(subagent_type="planner"):
"Plan implementation for: <story title>.
Context from exploration: <Phase 1 summary>.
Acceptance criteria: <list>.
Constraints: TDD mandatory, conventional commits, one story only.
Return: ordered steps, files to change, test strategy, risks."Present the plan to the user.
APPROVAL GATE: Ask the user to approve, revise, or skip this story.
- Approve → proceed to Phase 3
- Revise → re-run Phase 2 with feedback
- Skip → mark story as skipped, move to next
In --auto mode: auto-approve.
Phase 3: Implement
Execute the approved plan using TDD.
For standard stories:
Task(subagent_type="tdd-guide"):
"Implement the following plan with strict TDD (test first):
Plan: <approved plan from Phase 2>.
Test command: <from .claude-toolkit.json or auto-detected>.
Lint command: <from .claude-toolkit.json or auto-detected>.
Acceptance criteria: <list>.
IMPORTANT: Write failing tests first, then implement, then refactor.
Commit with conventional format referencing issue #N."For complex stories (cross-module, migration-safety, or stories that failed once with tdd-guide):
Task(subagent_type="planner"):
"Implement this plan. The story is complex — consider architecture implications.
Plan: <approved plan from Phase 2>.
Test/lint commands: <from config>.
Acceptance criteria: <list>.
TDD is mandatory. Commit with conventional format referencing issue #N."If the agent reports failures after implementation, retry once with the error context. If still failing after 2 total attempts, mark the story as stuck.
Phase 4: Review
Review the changes made in Phase 3.
Task(subagent_type="code-reviewer"):
"Review the changes for story: <title>.
Focus on: correctness, error handling, test coverage, style.
Changed files: <list from Phase 3>."If the story touches auth, payments, user data, or secrets:
Task(subagent_type="security-reviewer"):
"Security review for story: <title>.
Focus on: OWASP top 10, auth bypass, data exposure.
Changed files: <list from Phase 3>."Present review findings to the user.
APPROVAL GATE: Ask the user to approve, request fixes, or skip.
- Approve → proceed to Phase 5
- Fix → re-run Phase 3 with review feedback, then re-review
- Skip → mark story as skipped
In --auto mode: auto-approve if no CRITICAL findings. If CRITICAL findings exist, pause and present to user regardless.
Phase 5: Commit & Update State
- Commit (if not already committed by tdd-guide):
git add <specific files> git commit -m "<type>(<scope>): <description> Closes #<issue> Co-Authored-By: Claude <noreply@anthropic.com>" - Update
prd.json: Setpasses: truefor the completed story, incrementiterations. - Append to
progress.txt:## [Date] - [Story ID]: [Title] - Implemented: <summary> - Files changed: <list> - Tests: <what was added> --- - Save deep-think checkpoint (if MCP available):
checkpoint(operation="save", name="<story-id>")
On stuck stories: Set stuck: true and stuckReason in prd.json. Log the reason in progress.txt. Move to next story.
Step 3: Completion
When all stories are either passes: true or stuck: true:
- Final QA: Run the full test suite and linter.
- Print summary table:
Story | Status | Iterations ---------|-----------|---------- US-001 | DONE | 1 US-002 | DONE | 2 US-003 | STUCK | 2 (reason) - Stuck stories: Suggest creating GitHub issues for any stuck stories:
gh issue create --title "<story title>" --body "<context>" --label "claude-ready" - Final approval: Ask user if they want to push to remote.
Error Handling
- Max 2 retries per story before marking as stuck
- prd.json corruption: If prd.json becomes invalid JSON, warn and restore from the last known good state
- Agent failures: If a Task agent fails, log the error and retry once. If it fails again, mark story as stuck with the error context.
- Test failures: Never commit with failing tests. Either fix or mark stuck.
State Management
| File | Purpose |
prd.json | Story definitions, status, strategy assignments |
progress.txt | Human-readable log, codebase patterns section |
| Deep-think checkpoints | Reasoning state per story (if MCP available) |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

