mdelapenya/Claude Ralph Loop

Implements the Ralph loop pattern using Claude Code CLI - iterative work/review/ship cycles on GitHub issues

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Activelast commit Jul 1, 2026
License
MIT

Pinned Snippet

workflow.ymlSHA-pinned
uses: mdelapenya/claude-ralph-github-action@2564b12ba00cc46b3ee0b770eb620e856b3697ea # v0.9.0

tags can be moved; commit SHAs can't. why a SHA?

namedescriptionrequireddefault
anthropic_api_keyAnthropic API key for Claude CLIyes
github_tokenGitHub token for PR and issue operationsno${{ github.token }}
worker_modelClaude model for the worker phasenosonnet
reviewer_modelClaude model for the review phasenosonnet
max_iterationsMaximum number of work/review cyclesno5
max_turns_workerMaximum agentic turns per worker invocation (omit to use the Claude CLI default)no""
max_turns_reviewerMaximum agentic turns per reviewer invocation (omit to use the Claude CLI default)no""
trigger_labelIssue label that triggers the Ralph loopnoralph
base_branchBranch to create the PR against (auto-detected from repository default branch if not specified)no""
worker_allowed_toolsComma-separated tools the worker can usenoBash,Read,Write,Edit,Glob,Grep,Task,WebFetch,WebSearch
reviewer_toolsComma-separated tools the reviewer can usenoBash,Read,Write,Edit,Glob,Grep,WebFetch,WebSearch,Task
merge_strategyMerge strategy: "pr" (default, create a pull request) or "squash-merge" (squash and push directly to default branch)nopr
default_branchDefault branch to merge into when using squash-merge strategy (auto-detected from repo if not specified)no""
worker_tonePersonality/tone for the worker agent (e.g., "pirate", "formal", "enthusiastic"). If set, the worker will respond with this personality.no""
reviewer_tonePersonality/tone for the reviewer agent (e.g., "pirate", "formal", "enthusiastic"). If set, the reviewer will respond with this personality.no""
commit_author_nameGit author name for commits (defaults to "claude-ralph[bot]")noclaude-ralph[bot]
commit_author_emailGit author email for commits (defaults to "claude-ralph[bot]@users.noreply.github.com")noclaude-ralph[bot]@users.noreply.github.com
ralph_review_commandSlash command to trigger a re-review on a Ralph PR (e.g., "/ralph-review focus on tests")no/ralph-review
security_gate_enabledEnable the security gate: runs an independent security audit after the reviewer approves. Set to "false" to disable.notrue
security_gate_modelClaude model for the security gate phasenosonnet
max_turns_security_gateMaximum agentic turns per security gate invocation (omit to use the Claude CLI default)no""
security_gate_toolsComma-separated tools the security gate can use (read-only by default)noBash,Read,Write,Glob,Grep
security_gate_tonePersonality/tone for the security gate agent (e.g., "Agent Smith", "HAL 9000"). If set, the security gate will respond with this personality.no""
sbx_enabledEnable Docker sbx sandboxing for Claude CLI execution. When enabled, all Claude CLI calls run inside a Docker sandbox. Default is truenotrue
sbx_versionPinned version of Docker sbx to install (e.g., "v0.34.0"). Defaults to a known-good version.nov0.34.0
sbx_sha256Expected SHA-256 of the sbx linux tarball. The docker/sbx-releases project does not publish a .sha256 sidecar, so the checksum for the default version is pinned in the action. Set this when overriding sbx_version to keep tamper-detection.no""
sbx_network_policyDefault network policy for the sbx sandbox: "deny-all", "allow-all", or "balanced"nobalanced
docker_hub_userDocker Hub username for sbx login. Required when sbx_enabled is true. Must be kept as a secret.no""
docker_hub_tokenDocker Hub token for sbx login. Required when sbx_enabled is true. Must be kept as a secret.no""
claude_code_versionVersion of the @anthropic-ai/claude-code npm package to install on the runner. Pinned for reproducibility; bump deliberately.no2.1.81
namedescription
pr_urlURL of the created/updated pull request, or the merge commit SHA when using squash-merge strategy
iterationsNumber of work/review iterations completed
final_statusFinal status: SHIPPED, MAX_ITERATIONS, or ERROR