fix: plugin.json format and install docs#4
fix: plugin.json format and install docs#4bryant24hao wants to merge 1 commit intokavanaghpatrick:mainfrom
Conversation
The `repository` field used npm-style object format which fails Claude Code's plugin validation (expects string). This caused `claude plugin install` to silently fail with exit code 1. Also fixes README install instructions to use actual CLI commands and adds Python/jq version pre-flight checks in session-setup hook. Co-Authored-By: Claude Opus 4.6 <[email protected]>
kavanaghpatrick
left a comment
There was a problem hiding this comment.
Thanks for the PR! The fixes are directionally correct — especially the plugin.json repository field fix and the README install instructions update. A few things to address:
1. Rebase needed
The branch is significantly behind main. In particular:
- The
plugin.jsonfix was already separately merged (commitb78cc9b), so that part of the diff is now a no-op session-setup.shhas been heavily modified onmainsince this PR was opened, so the diff won't apply cleanly
Please rebase onto current main and resolve the conflicts.
2. Bug in session-setup.sh: unguarded python3 call
The second python3 invocation isn't guarded against failure:
if [ "$PYTHON_OK" = "old" ]; then
PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')")The script has set -euo pipefail, so if this call fails for any reason, the entire script exits — skipping all the important setup logic below (gc.auto, dispatch state, auto-reclaim, stale marking). Please add a fallback:
PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')" 2>/dev/null) || PY_VER="unknown"3. Minor: ralph-specum@smart-ralph identifier
Can you confirm that ralph-specum@smart-ralph is the correct plugin identifier? We can't verify without checking the tzachbon/smart-ralph marketplace.json.
Happy to merge once the rebase and the set -e fix are in. Thanks again for the contribution!
Summary
repositoryfield in plugin.json — was using npm-style object{"type": "git", "url": "..."}, but Claude Code plugin validation expects a plain string. This causedclaude plugin installto silently fail with exit code 1 and no error output./install-plugin(which doesn't exist) with the actual CLI commands (claude plugin marketplace add+claude plugin install).session-setup.sh— macOS ships with Python 3.9.6 by default, but the analysis scripts require 3.10+. The hook now warns users at session start instead of failing silently during dispatch.Context
Encountered these issues while installing the plugin on macOS (Darwin 25.2.0). The plugin.json validation error was the main blocker — it took manual
claude plugin validateto diagnose since the install command produces no error output on failure.Test plan
claude plugin validateon the updated plugin.jsonclaude plugin install ralph-parallel@ralph-parallelsucceeds on a fresh install🤖 Generated with Claude Code