JuliusBrussee/caveman · error · RuntimeError
Claude call failed: {e.stderr}
Error message
Claude call failed:
{e.stderr} What it means
Error "Claude call failed: {e.stderr}" thrown in JuliusBrussee/caveman.
Source
Thrown at plugins/caveman/skills/caveman-compress/scripts/compress.py:223
# Resolve binary via shutil.which so Windows .cmd/.bat shims (e.g.
# %APPDATA%\npm\claude.CMD) work without shell=True. On POSIX,
# shutil.which returns the same absolute path as the implicit lookup,
# so this is a no-op there. Falls back to bare "claude" if not found
# on PATH so subprocess raises a clear FileNotFoundError.
claude_bin = shutil.which("claude") or "claude"
try:
result = subprocess.run(
[claude_bin, "--print"],
input=prompt,
text=True,
capture_output=True,
check=True,
encoding="utf-8",
errors="replace",
)
return strip_llm_wrapper(result.stdout.strip())
except subprocess.CalledProcessError as e:
raise RuntimeError(f"Claude call failed:\n{e.stderr}")
def build_compress_prompt(original: str) -> str:
return f"""
Compress this markdown into caveman format.
STRICT RULES:
- Do NOT modify anything inside ``` code blocks
- Do NOT modify anything inside inline backticks
- Preserve ALL URLs exactly
- Preserve ALL headings exactly
- Preserve file paths and commands
- Return ONLY the compressed markdown body — do NOT wrap the entire output in a ```markdown fence or any other fence. Inner code blocks from the original stay as-is; do not add a new outer fence around the whole file.
Only compress natural language.
TEXT:
{original}View on GitHub (pinned to 27d5a3981a)
Solutions
- The Claude CLI call failed; read stderr in the message, fix the invocation, and retry.
When it happens
Trigger: Thrown at plugins/caveman/skills/caveman-compress/scripts/compress.py:223 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/5a9b3905d376c8a1.
Report an issue: GitHub.