diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 064ac44..d6b6e80 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -6,6 +6,14 @@ "url": "https://www.pgedge.com" }, "plugins": [ - { "name": "pgedge", "source": "./" } + { + "name": "pgedge", + "source": { + "source": "git-subdir", + "url": "https://github.com/pgEdge/pgedge-cli.git", + "path": "plugins/pgedge", + "ref": "v0.5.0-beta.4" + } + } ] } diff --git a/.cursor-plugin/plugin.json b/.cursor-plugin/plugin.json index 4f06bde..a75d64a 100644 --- a/.cursor-plugin/plugin.json +++ b/.cursor-plugin/plugin.json @@ -1,11 +1,14 @@ { "name": "pgedge", "description": "Agent skills for the pgedge CLI: pgEdge Starfleet Managed and BYOC databases, Starfleet accounts, and a self-hosted pgEdge Control Plane. The skills install the CLI when it is missing.", + "version": "0.5.0-beta.4", "author": { "name": "pgEdge, Inc." }, "homepage": "https://github.com/pgEdge/pgedge-cli", "repository": "https://github.com/pgEdge/pgedge-cli", "license": "PostgreSQL", - "keywords": ["postgres", "postgresql", "pgedge", "starfleet", "database", "cli"] + "keywords": ["postgres", "postgresql", "pgedge", "starfleet", "database", "cli"], + "logo": "plugins/pgedge/assets/pgedge-icon.png", + "skills": "./plugins/pgedge/skills" } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a440ab4..295a113 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,6 +39,23 @@ jobs: # KEY=VALUE lines are forwarded (comments/blanks are skipped). - name: Load per-module versions run: grep -E '^[A-Za-z_][A-Za-z0-9_]*=' versions.env >> "$GITHUB_ENV" + # The plugin marketplace installs the skills from this tag, so a + # release whose manifests name another one would install nothing. + - name: Check the plugin is pinned to this tag + run: | + want="${GITHUB_REF_NAME#v}" + for f in plugins/pgedge/.claude-plugin/plugin.json .cursor-plugin/plugin.json; do + got=$(jq -r .version "$f") + if [ "$got" != "$want" ]; then + echo "::error::$f has version $got; the tag needs $want" + exit 1 + fi + done + ref=$(jq -r '.plugins[0].source.ref' .claude-plugin/marketplace.json) + if [ "$ref" != "$GITHUB_REF_NAME" ]; then + echo "::error::marketplace.json pins $ref; the tag is $GITHUB_REF_NAME" + exit 1 + fi - uses: goreleaser/goreleaser-action@a4f02ab5355a589de60d917a659ce617ed19b3de # v7 with: # Pinned because cmd/caskpatch is tested against this diff --git a/CLAUDE.md b/CLAUDE.md index 9c3b3c5..da56b7e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -10,8 +10,9 @@ self-hosted Control Plane). > for the index (global flags, config, profiles, env vars, exit codes, > and a page per top-level command group, such as `pgedge llms > inspect`), then `pgedge llms ` for the module you are -> working in. Also read `skills/pgedge/SKILL.md`. Do not improvise -> commands from `--help` output or fall back to raw curl. +> working in. Also read `plugins/pgedge/skills/pgedge/SKILL.md`. Do +> not improvise commands from `--help` output or fall back to raw +> curl. > > The command reference is **generated from the cobra tree**. Editing > text between `` and `