mirror of
https://github.com/ruvnet/RuView
synced 2026-06-09 10:13:17 +00:00
fix(plugins): move marketplace manifest to repo root for /plugin marketplace add ruvnet/RuView
Claude Code looks for `.claude-plugin/marketplace.json` at the cloned repo's ROOT — not in a subdirectory — so `/plugin marketplace add ruvnet/RuView` (and `claude plugin marketplace add ruvnet/RuView`) was failing with "Marketplace file not found". - Move `plugins/.claude-plugin/marketplace.json` → `.claude-plugin/marketplace.json` (repo root); the `ruview` plugin's `source` is now `./plugins/ruview`. - README.md / plugins/ruview/README.md: install instructions now use `/plugin marketplace add ruvnet/RuView` + `/plugin install ruview@ruview` (with `claude --plugin-dir ./plugins/ruview` as the no-install fallback); manifest path references updated. - plugins/ruview/scripts/smoke.sh: resolve the manifest at the repo root; also assert the plugin `source` is `./plugins/ruview`. - ADR-0001 updated (scope, directory contract, smoke contract, consequences). Verified: `claude plugin validate .` + `./plugins/ruview` pass; smoke 13/13; `claude plugin marketplace add ./` → `claude plugin install ruview@ruview` → `claude plugin details ruview` works end-to-end (16 skill-entries + 3 agents). Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -3,10 +3,12 @@
|
||||
# Run from anywhere: bash plugins/ruview/scripts/smoke.sh
|
||||
set -u
|
||||
|
||||
# Resolve plugin root (this file lives in <root>/scripts/smoke.sh)
|
||||
# Resolve plugin root (this file lives in <root>/scripts/smoke.sh).
|
||||
# Plugin lives at <repo>/plugins/ruview ; marketplace manifest is at <repo>/.claude-plugin/marketplace.json
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
MARKET="$(cd "$ROOT/.." && pwd)/.claude-plugin/marketplace.json"
|
||||
REPO="$(cd "$ROOT/../.." && pwd)"
|
||||
MARKET="$REPO/.claude-plugin/marketplace.json"
|
||||
|
||||
PASS=0
|
||||
FAIL=0
|
||||
@@ -16,10 +18,11 @@ has() { grep -q "$1" "$2" 2>/dev/null; }
|
||||
|
||||
echo "ruview plugin smoke test"
|
||||
echo "root: $ROOT"
|
||||
echo "repo: $REPO"
|
||||
echo
|
||||
|
||||
# 1. marketplace.json exists and lists the ruview plugin
|
||||
if [ -f "$MARKET" ] && has '"ruview"' "$MARKET"; then ok "marketplace.json present and lists 'ruview'"; else bad "marketplace.json missing or does not list 'ruview' ($MARKET)"; fi
|
||||
# 1. repo-root marketplace.json exists, lists the ruview plugin, points source at ./plugins/ruview
|
||||
if [ -f "$MARKET" ] && has '"ruview"' "$MARKET" && has '"\./plugins/ruview"' "$MARKET"; then ok "repo-root .claude-plugin/marketplace.json lists 'ruview' with source ./plugins/ruview"; else bad "marketplace.json missing / wrong location / wrong source ($MARKET)"; fi
|
||||
|
||||
# 2. plugin.json exists with required fields
|
||||
PJ="$ROOT/.claude-plugin/plugin.json"
|
||||
|
||||
Reference in New Issue
Block a user