fix(plugin): move the Claude Code plugin into plugins/codeman so an install no longer runs npm install

With the repo root as the plugin root, `claude plugin install codeman@codeman`
copied the whole checkout into its cache and, because that root carries a
package.json, ran an npm install there: 832 MB, 511 packages and this repo's
postinstall build on every installer's machine (measured from a clean worktree
of the previous commit). A plugin root must be a directory without one.

The plugin is now `plugins/codeman/`: its manifest, a README, and a MIRROR of
`skills/codeman/`. A mirror rather than a symlink because the install copies
the plugin directory and a link pointing outside it would dangle; a mirror
rather than the source because every install path, injector and doc already
names `skills/codeman/`. `scripts/sync-plugin.mjs` (replacing
sync-plugin-version.mjs) mirrors the skill and syncs both manifest versions
inside `version-packages`; `test/plugin-manifest.test.ts` pins byte-identity,
the versions, the absence of a package.json in the plugin root and that the
repo root `.claude-plugin/` holds only the marketplace manifest.

`claude plugin validate --strict` now passes for both the plugin and the repo
root. Install commands are unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Codeman maintainer
2026-09-14 14:28:57 +02:00
parent f6c08118dc
commit 49ab8bc2f1
14 changed files with 3845 additions and 81 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
"plugins": [
{
"name": "codeman",
"source": "./",
"source": "./plugins/codeman",
"description": "Drive Codeman from inside a Claude Code session: spawn worker sessions, prompt them, wait for them, read their answers, clean up. Acts only inside a Codeman-managed session.",
"version": "1.28.1",
"author": {
-22
View File
@@ -1,22 +0,0 @@
{
"name": "codeman",
"description": "Drive Codeman, the self-hosted session manager for AI coding agents, from inside a Claude Code session: spawn worker sessions, prompt them, wait for them, read their answers, clean up. Acts only inside a Codeman-managed session.",
"version": "1.28.1",
"author": {
"name": "Ark0N",
"url": "https://github.com/Ark0N"
},
"homepage": "https://getcodeman.com",
"repository": "https://github.com/Ark0N/Codeman",
"license": "MIT",
"keywords": [
"codeman",
"orchestration",
"multi-agent",
"session-manager",
"tmux",
"claude-code",
"codex",
"deepseek"
]
}