Skip to content

fix: plugin.json format and install docs#4

Open
bryant24hao wants to merge 1 commit intokavanaghpatrick:mainfrom
bryant24hao:fix/plugin-install-issues
Open

fix: plugin.json format and install docs#4
bryant24hao wants to merge 1 commit intokavanaghpatrick:mainfrom
bryant24hao:fix/plugin-install-issues

Conversation

@bryant24hao
Copy link
Copy Markdown

Summary

  • Fix repository field in plugin.json — was using npm-style object {"type": "git", "url": "..."}, but Claude Code plugin validation expects a plain string. This caused claude plugin install to silently fail with exit code 1 and no error output.
  • Fix README install instructions — replaced /install-plugin (which doesn't exist) with the actual CLI commands (claude plugin marketplace add + claude plugin install).
  • Add Python/jq pre-flight checks in 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 validate to diagnose since the install command produces no error output on failure.

Test plan

  • Run claude plugin validate on the updated plugin.json
  • Verify claude plugin install ralph-parallel@ralph-parallel succeeds on a fresh install
  • Verify session-setup.sh warns correctly with Python 3.9 and works silently with 3.10+

🤖 Generated with Claude Code

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]>
Copy link
Copy Markdown
Owner

@kavanaghpatrick kavanaghpatrick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.json fix was already separately merged (commit b78cc9b), so that part of the diff is now a no-op
  • session-setup.sh has been heavily modified on main since 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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants