Skip to content

fix: repair plugin manifest and ship context as a skill (0.3.2) - #1

Merged
CallMeTechie merged 2 commits into
mainfrom
fix/plugin-manifest-repository
Aug 3, 2026
Merged

fix: repair plugin manifest and ship context as a skill (0.3.2)#1
CallMeTechie merged 2 commits into
mainfrom
fix/plugin-manifest-repository

Conversation

@CallMeTechie

@CallMeTechie CallMeTechie commented Aug 3, 2026

Copy link
Copy Markdown
Owner

Why

claude plugin install fleet-manager@fleet-manager is currently impossible. v0.3.1 introduced repository as an object, but the plugin manifest schema expects a string URL:

✘ repository: Invalid input: expected string, received object

While fixing that, claude plugin validate surfaced a second problem: a CLAUDE.md at the plugin root is never loaded as project context. The command reference and operational guidelines it carried had no effect on the model.

What changed

Manifestrepository is now a string. Validation passes.

Context → skillplugin/CLAUDE.md moved to plugin/skills/fleet-manager/SKILL.md, the supported way to ship context with a plugin. It now also documents where state actually lives.

Managed block removed — it mirrored the active server, which set_active already records authoritatively in the git-ignored plugin/context/active-server. The duplicate had two side effects: as a tracked file it dirtied the working tree on every /use, and living under the plugin root it was overwritten on plugin update. /use, /first-run and fleet-intake no longer write it. The session Notes section went with it.

0.3.2 — so the release job publishes a tag whose manifest validates. v0.3.1 remains unusable and is not retagged by this PR.

Verification

  • claude plugin validate plugin/ → passes, no warnings (previously: 1 error + 1 warning)
  • tests/static/: abspath, frontmatter, validate-manifests → OK
  • Unit tests: 78 pass, 2 fail — both in test-compose-lib.sh, pre-existing and reproduced on unmodified main; they need docker/jq, absent in the dev environment
  • Not run locally: markdown-lint (no npx), shellcheck-commands (no shellcheck), integration suite (needs Docker + rsync) — all covered by CI here

Reviewer note

Dropping the managed block is a deliberate behaviour change: the active server is no longer echoed into a human-readable file. Every command already prints → Ziel: <name> (user@host:port), and /list-servers marks the active entry, so the information stays visible where it was actually being read.

CallMeTechie and others added 2 commits August 3, 2026 21:04
Claude Code's plugin manifest schema expects `repository` to be a
string URL. Declaring it as an object made v0.3.1 fail validation
with "repository: Invalid input: expected string, received object",
which blocked `claude plugin install fleet-manager@fleet-manager`.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A CLAUDE.md at the plugin root is not loaded as project context, so the
command reference and operational guidelines it carried never reached the
model. Move that content to plugin/skills/fleet-manager/SKILL.md, which is
the supported way to ship context with a plugin.

The managed block went with it rather than moving. It mirrored the active
server, which set_active already records authoritatively in the git-ignored
plugin/context/active-server. As a tracked file it dirtied the working tree
on every /use, and living under the plugin root it was overwritten on
plugin update. /use, /first-run and fleet-intake now stop writing it.

Bumps to 0.3.2 so the release job publishes a tag whose manifest actually
validates -- v0.3.1 is unusable.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@CallMeTechie
CallMeTechie merged commit a15ed06 into main Aug 3, 2026
4 checks passed
@CallMeTechie
CallMeTechie deleted the fix/plugin-manifest-repository branch August 3, 2026 19:20
CallMeTechie added a commit that referenced this pull request Aug 3, 2026
v0.3.1 declared `repository` as an object, but the plugin manifest schema
expects a string URL, which made `claude plugin install` fail outright.

Fixing that surfaced a second issue: a CLAUDE.md at the plugin root is never
loaded as context, so the command reference it carried had no effect. That
content moves to plugin/skills/fleet-manager/SKILL.md.

The managed block is dropped rather than moved. It mirrored the active server
that set_active already records in the git-ignored context/active-server;
as a tracked file it dirtied the tree on every /use and was overwritten on
plugin update.
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.

1 participant