Skip to content

feat: ship Code Jury as a Claude Code plugin - #116

Draft
zzxwill wants to merge 1 commit into
masterfrom
claude/issue-115-plugin
Draft

zzxwill wants to merge 1 commit into
masterfrom
claude/issue-115-plugin

Conversation

@zzxwill

@zzxwill zzxwill commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

Closes #115

What changes

Code Jury can now be installed as a Claude Code plugin, straight from this repository:

claude plugin marketplace add agentsdance/codejury
claude plugin install codejury@codejury
  • Marketplace: .claude-plugin/marketplace.json sits at the repository root and lists one plugin, codejury, with source ./plugin.
  • Plugin: plugin/.claude-plugin/plugin.json defines it, and it carries two skills:
    • /codejury:review [pr-url ...] [jury flags] runs jury review, falling back to npx -y @agentsdance/codejury when jury isn't installed.
      • It adds --web=false so the command exits when the review is done.
      • It adds --push=false unless the user passes --push, because pushing from a session should be an explicit choice.
      • It runs in the background, then summarizes rounds, findings, verdicts and commits.
      • It is disable-model-invocation: true, so only the user starts it; a review is long and costs agent usage.
    • multi-agent-code-review is the existing skill, moved from skill/SKILL.md. Its links to DESIGN.md, config.example.yaml and prompts/*.md are now GitHub URLs, because an installed plugin is copied without the rest of the repository.
  • Separate plugin/ directory: a plugin's bin/ directory goes on the Bash PATH, and claude.ai won't install a plugin that has one. The repository's own bin/jury.js therefore has to stay outside the plugin root.
  • No version pin: installs follow the repository, so there's no second version number to keep in step with package.json.
  • Docs: a "Claude Code plugin" section in the README Quick start, and a CHANGELOG entry.

Validation

  • claude plugin validate ./plugin and claude plugin validate . (Claude Code 2.1.283) both pass. The only warning is the deliberate missing version.
  • Under a throwaway HOME, ran claude plugin marketplace add ./, then claude plugin install codejury@codejury, then claude plugin details codejury. It lists both skills, review and multi-agent-code-review.
  • New test/plugin.test.js:
    • The marketplace entry name matches the manifest name.
    • The source path exists, and the license matches package.json.
    • The plugin has no bin/ directory.
    • Every skill has name and description, and no skill uses repository-relative paths.
    • Every --flag the review skill names exists in jury help review. I broke one flag name on purpose and the test failed, then passed again once restored.
  • npm test: 194 of 195 pass. The one failure, "--judge selects one judge…", only fails in this environment because a real claude CLI is on PATH; it doesn't touch these files.
  • npm run test:package passes. The npm package contents are unchanged, since plugin/ isn't in files.

Limitations

  • skill/SKILL.md moved to plugin/skills/multi-agent-code-review/SKILL.md, so anyone who copied or symlinked the old path needs to update it.
  • The plugin doesn't bundle the CLI or any agent CLIs. It uses jury or npx, and agents are still installed and authenticated separately.

🤖 Generated with Claude Code

https://claude.ai/code/session_01YWwuLax3VBtTJuujgK748c


Generated by Claude Code

Add a plugin marketplace at the repository root (.claude-plugin/marketplace.json)
listing one plugin in plugin/, so users can run:

  claude plugin marketplace add agentsdance/codejury
  claude plugin install codejury@codejury

The plugin carries two skills:
- /codejury:review runs `jury review` (or npx @agentsdance/codejury) with
  --web=false and, unless the user passes --push, --push=false, then
  summarizes findings and verdicts. It is user-invoked only.
- multi-agent-code-review, moved from skill/SKILL.md, with its repository
  links made absolute since installed plugins are copied without the repo.

The plugin lives in its own directory because a plugin's bin/ is put on
PATH and blocks claude.ai installs; the repository's bin/ stays outside.
No version is pinned, so installs follow the repository.

Verified with `claude plugin validate` and an install from the local
marketplace; test/plugin.test.js checks the manifests and that every flag
the review skill names exists in `jury help review`.

Closes #115

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YWwuLax3VBtTJuujgK748c
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.

Build as a plugin for claude code

2 participants