Skip to content

feat: Claude Code marketplace plugin + binary-only installer#11

Merged
llbbl merged 4 commits into
mainfrom
feat/claude-plugin-marketplace
Jun 21, 2026
Merged

feat: Claude Code marketplace plugin + binary-only installer#11
llbbl merged 4 commits into
mainfrom
feat/claude-plugin-marketplace

Conversation

@llbbl

@llbbl llbbl commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • Distribute upkeep's Claude Code skills as a first-class plugin via a self-hosted marketplace (llbbl-upkeep), replacing the DIY skill-copy approach in the install script
  • Fix install.sh to correctly resolve the latest release tag and download the versioned tarball assets (fixes breakage introduced when Publish Homebrew-compatible release artifacts (checksums.txt + tarballs) #7 changed asset names from upkeep-<platform> to upkeep_<version>_<os>_<arch>.tar.gz)
  • Update tooling, docs, and CI to reflect the renamed skill directories and new plugin manifests

Closes #9

Changes

Claude Code Plugin Distribution

  • .claude-plugin/plugin.json: New plugin manifest — name upkeep, version 0.2.0, author llbbl
  • .claude-plugin/marketplace.json: New marketplace manifest — llbbl-upkeep, cataloging the upkeep plugin at source ./
  • skills/audit/SKILL.md (was skills/upkeep-audit/): Renamed + frontmatter name: audit, doc title # /upkeep:audit, cross-references updated
  • skills/deps/SKILL.md (was skills/upkeep-deps/): Renamed + frontmatter name: deps, doc title # /upkeep:deps
  • skills/quality/SKILL.md (was skills/upkeep-quality/): Renamed + frontmatter name: quality, doc title # /upkeep:quality

Install Script Fix

  • scripts/install.sh: Replaced get_download_url with resolve_version (queries GitHub API to turn "latest" into a concrete tag). Downloads upkeep_<ver>_<os>_<arch>.tar.gz and extracts the binary. Fixes x64amd64 arch token. Removes install_skills, SKILLS_DIR, and the bin/ symlink — the installer is now binary-only; skills come from /plugin install upkeep@llbbl-upkeep. Note: this additionally fixes the broken binary download introduced in Publish Homebrew-compatible release artifacts (checksums.txt + tarballs) #7 when release assets were renamed to versioned tarballs.
  • tests/scripts/install.test.ts: Updated to match new installer contract — resolve_version, download_file, amd64 tokens, binary-only assertions, and marketplace-pointer check. All 403 tests pass, biome lint clean, shellcheck clean, actionlint clean.

Build / CI Sync

  • justfile: Updated set-version, update-all-versions, show-versions, and commit-version targets to use new skill paths and include .claude-plugin/plugin.json in version bumps
  • .github/workflows/auto-release.yml: Adds .claude-plugin/plugin.json to the release commit's git add

Documentation

  • README.md: Homebrew as primary install method; two-part install overview (binary + marketplace skills); updated asset table to versioned tarballs with checksums note; updated skill invocation names (/upkeep:audit, /upkeep:deps, /upkeep:quality); added plugin marketplace install instructions; updated project structure tree

Test plan

  • bun test passes (403 / 0 fail)
  • bun run lint clean (biome)
  • shellcheck scripts/install.sh clean
  • actionlint clean on .github/workflows/auto-release.yml
  • Verify just show-versions includes .claude-plugin/plugin.json version
  • Smoke test install script resolves latest tag and downloads correct tarball

llbbl added 4 commits June 21, 2026 14:08
- Add .claude-plugin/plugin.json (plugin `upkeep`, v0.2.0)
- Add .claude-plugin/marketplace.json (marketplace `llbbl-upkeep`)
- Rename skills/upkeep-audit → skills/audit, skills/upkeep-deps → skills/deps,
  skills/upkeep-quality → skills/quality
- Update SKILL.md frontmatter name: to audit/deps/quality
- Update doc titles and cross-references to /upkeep:audit, /upkeep:deps,
  /upkeep:quality for clean plugin-namespaced invocation

Closes #9
- Resolve "latest" via GitHub API to get the concrete tag before building
  the download URL (fixes broken download introduced in #7 where assets
  moved from raw upkeep-<platform> names to versioned tarballs)
- Download upkeep_<version>_<os>_<arch>.tar.gz and extract the binary
  (Windows still gets a raw .exe)
- Fix amd64 arch token: was emitting x64, now correctly emits amd64
- Remove skill-copying logic (install_skills, SKILLS_DIR, bin/ symlinks) —
  skills are now distributed via the plugin marketplace
- Rename download_binary → download_file; remove get_download_url in favor
  of resolve_version
- Update tests to match new contract: resolve_version, download_file,
  amd64 tokens, binary-only / marketplace-pointer assertions
- Update set-version, update-all-versions, show-versions, and commit-version
  targets to use the new skills/deps, skills/audit, skills/quality paths
- Wire .claude-plugin/plugin.json into version bump targets so plugin
  version stays in sync with package.json
- Update auto-release.yml git add step to include .claude-plugin/plugin.json
  in the release commit
- Add Homebrew as the primary recommended installation method
- Document two-part install: CLI binary (Homebrew/script) + skills (marketplace)
- Update manual install asset table to versioned tarballs with checksums note
- Update skill invocation names to /upkeep:audit, /upkeep:deps, /upkeep:quality
- Add /plugin marketplace add + /plugin install instructions for skills
- Update project structure tree to reflect renamed skills dirs and
  new .claude-plugin/ directory
@llbbl llbbl merged commit 07e2bc9 into main Jun 21, 2026
3 checks passed
@llbbl llbbl deleted the feat/claude-plugin-marketplace branch June 21, 2026 20:18
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.

Distribute skills as a Claude Code plugin/marketplace

1 participant