[GH-ISSUE #177] ralph-loop setup script breaks on special shell characters in args #68

Closed
opened 2026-02-27 10:22:03 +03:00 by kerem · 2 comments
Owner

Originally created by @anombyte93 on GitHub (Feb 18, 2026).
Original GitHub issue: https://github.com/mikeyobrien/ralph-orchestrator/issues/177

Issue Description

The setup-ralph-loop.sh script fails when invoking the ralph-wiggum:ralph-loop skill with args containing special shell characters like parentheses (), square brackets [], or pipes |.

The args string is passed to eval or a shell without proper quoting/escaping, causing the shell to interpret these characters as command operators rather than literal string content.

Example Failing Invocation

skill: "ralph-wiggum:ralph-loop"
args: "test and fix ALL 12 remaining cards (2 Untested, 5 Failed, 5 Partial) using trello-test..."

Error Output

(eval):1: unknown file attribute: 2
(eval):1: command not found: Detail

The script attempts to evaluate the args without proper escaping, causing the parentheses to be interpreted as shell syntax.

Script Location

~/.claude/plugins/cache/claude-code-plugins/ralph-wiggum/1.0.0/scripts/setup-ralph-loop.sh

Root Cause

The args parameter is processed by the shell without proper quoting. Characters like (, ), [, ], and | are interpreted as shell operators (subshells, redirects, pipes) rather than literal characters.

Workaround

Avoid special shell characters in args:

  • Use commas instead of parentheses: 2 Untested, 5 Failed, 5 Partial instead of (2 Untested, 5 Failed, 5 Partial)
  • Spell out instead of using brackets: test and fix remaining cards instead of test [and fix] remaining cards

Expected Fix

The args parameter should be properly quoted/escaped when passed to the shell. Consider:

  1. Using proper array handling instead of string concatenation
  2. Wrapping args in quotes with proper escaping
  3. Adding input validation to detect and warn about special characters
  4. Documenting the limitation if special characters cannot be supported

Impact

Users cannot include natural language phrases with parentheses in their Ralph loop prompts, which is a common use case for describing task counts and status breakdowns.

Originally created by @anombyte93 on GitHub (Feb 18, 2026). Original GitHub issue: https://github.com/mikeyobrien/ralph-orchestrator/issues/177 ## Issue Description The `setup-ralph-loop.sh` script fails when invoking the `ralph-wiggum:ralph-loop` skill with args containing special shell characters like parentheses `()`, square brackets `[]`, or pipes `|`. The args string is passed to `eval` or a shell without proper quoting/escaping, causing the shell to interpret these characters as command operators rather than literal string content. ## Example Failing Invocation ```bash skill: "ralph-wiggum:ralph-loop" args: "test and fix ALL 12 remaining cards (2 Untested, 5 Failed, 5 Partial) using trello-test..." ``` ## Error Output ``` (eval):1: unknown file attribute: 2 (eval):1: command not found: Detail ``` The script attempts to evaluate the args without proper escaping, causing the parentheses to be interpreted as shell syntax. ## Script Location `~/.claude/plugins/cache/claude-code-plugins/ralph-wiggum/1.0.0/scripts/setup-ralph-loop.sh` ## Root Cause The args parameter is processed by the shell without proper quoting. Characters like `(`, `)`, `[`, `]`, and `|` are interpreted as shell operators (subshells, redirects, pipes) rather than literal characters. ## Workaround Avoid special shell characters in args: - Use commas instead of parentheses: `2 Untested, 5 Failed, 5 Partial` instead of `(2 Untested, 5 Failed, 5 Partial)` - Spell out instead of using brackets: `test and fix remaining cards` instead of `test [and fix] remaining cards` ## Expected Fix The args parameter should be properly quoted/escaped when passed to the shell. Consider: 1. Using proper array handling instead of string concatenation 2. Wrapping args in quotes with proper escaping 3. Adding input validation to detect and warn about special characters 4. Documenting the limitation if special characters cannot be supported ## Impact Users cannot include natural language phrases with parentheses in their Ralph loop prompts, which is a common use case for describing task counts and status breakdowns.
kerem closed this issue 2026-02-27 10:22:03 +03:00
Author
Owner

@mikeyobrien commented on GitHub (Feb 25, 2026):

Triage result: this looks out of scope for ralph-orchestrator itself.

Reason:

  • The failing script path in the report is under Claude plugin cache:
    ~/.claude/plugins/cache/.../ralph-wiggum/.../scripts/setup-ralph-loop.sh
  • That script is not part of this repository, so we cannot fix it from ralph-orchestrator code.

Suggested next step:

  • File this against the Ralph Wiggum plugin/upstream integration where setup-ralph-loop.sh is maintained.
  • Include a minimal repro prompt containing parentheses/brackets/pipes and the exact shell error output.

If there is a direct linkage to this repo (for example a generated command string from a ralph-orchestrator release), please share it and we can reopen scope here.

<!-- gh-comment-id:3960135763 --> @mikeyobrien commented on GitHub (Feb 25, 2026): Triage result: this looks out of scope for ralph-orchestrator itself. Reason: - The failing script path in the report is under Claude plugin cache: ~/.claude/plugins/cache/.../ralph-wiggum/.../scripts/setup-ralph-loop.sh - That script is not part of this repository, so we cannot fix it from ralph-orchestrator code. Suggested next step: - File this against the Ralph Wiggum plugin/upstream integration where setup-ralph-loop.sh is maintained. - Include a minimal repro prompt containing parentheses/brackets/pipes and the exact shell error output. If there is a direct linkage to this repo (for example a generated command string from a ralph-orchestrator release), please share it and we can reopen scope here.
Author
Owner

@mikeyobrien commented on GitHub (Feb 25, 2026):

Confirmed: this is an upstream Claude Code plugin issue, not ralph-orchestrator runtime.

Root cause

Upstream files

Action

  • Please file/track this in anthropics/claude-code under plugins/ralph-wiggum.
  • This repository does not own that command wrapper path, so there is nothing to patch locally here.
<!-- gh-comment-id:3960178147 --> @mikeyobrien commented on GitHub (Feb 25, 2026): Confirmed: this is an upstream Claude Code plugin issue, not ralph-orchestrator runtime. Root cause - The Ralph Wiggum slash command invokes setup with unquoted argument expansion: - https://raw.githubusercontent.com/anthropics/claude-code/main/plugins/ralph-wiggum/commands/ralph-loop.md - command block contains: "${CLAUDE_PLUGIN_ROOT}/scripts/setup-ralph-loop.sh" $ARGUMENTS - With shell metacharacters in prompt text (e.g. parentheses, brackets, pipes), unquoted expansion can be interpreted by the shell before reaching the script. - That matches the reported zsh failure pattern (e.g. "unknown file attribute: 2"). Upstream files - Plugin script: - https://raw.githubusercontent.com/anthropics/claude-code/main/plugins/ralph-wiggum/scripts/setup-ralph-loop.sh - Plugin command wrapper: - https://raw.githubusercontent.com/anthropics/claude-code/main/plugins/ralph-wiggum/commands/ralph-loop.md Action - Please file/track this in anthropics/claude-code under plugins/ralph-wiggum. - This repository does not own that command wrapper path, so there is nothing to patch locally here.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ralph-orchestrator#68
No description provided.