# numencore-toolkit Personal Claude Code plugin marketplace. Self-hosted on Forgejo. ## Install ```bash git clone ssh://git@git.numencore.com:2222/phatch/numencore-toolkit.git claude plugin marketplace add ~/numencore-toolkit claude plugin install numencore-core@numencore-toolkit claude plugin install git-tools@numencore-toolkit ``` Verify with `claude plugin list` or `/reload-plugins` in an active session. ## Plugin management ```bash # List installed claude plugin list # Update marketplace (re-reads from disk) claude plugin marketplace update numencore-toolkit # Reinstall after editing skills (re-caches) claude plugin install @numencore-toolkit # Disable/enable claude plugin disable @numencore-toolkit claude plugin enable @numencore-toolkit # Uninstall claude plugin uninstall @numencore-toolkit ``` ## Development ### Structure ``` plugins// ├── .claude-plugin/plugin.json └── skills//SKILL.md ``` ### Cache and skill registration Claude Code caches plugin contents at install time under `~/.claude/plugins/cache/`. The harness loads skills from the cache at startup, not from the source directory. This means: - **Adding or editing a skill requires re-caching.** The source files on disk are not read at runtime. - **`claude plugin update` compares version strings**, not file contents. If `plugin.json` still has the same version, `update` reports "already at latest" and the cache stays stale. To refresh the cache after adding or changing skills: ```bash # Option A: bump version in plugin.json, then update claude plugin update @numencore-toolkit # Option B: force re-cache via reinstall (no version bump needed) claude plugin uninstall @numencore-toolkit claude plugin install @numencore-toolkit ``` After re-caching, **restart Claude Code** — the harness loads skills at startup. For faster iteration during development, bypass the cache entirely: ```bash claude --plugin-dir ~/numencore-toolkit/plugins/ ``` ### Permissions whitelist Each skill needs a permission entry in `.claude/settings.local.json` to run without manual approval: ``` "Skill(:)" ``` Add this when creating a new skill. ### Adding a new skill to an existing plugin 1. Create `plugins//skills//SKILL.md` 2. Add `Skill(:)` to `.claude/settings.local.json` 3. Re-cache: `claude plugin uninstall @numencore-toolkit && claude plugin install @numencore-toolkit` 4. Restart Claude Code ### Adding a new plugin 1. Create `plugins//.claude-plugin/plugin.json` 2. Add skills under `plugins//skills//SKILL.md` 3. Register in `.claude-plugin/marketplace.json` 4. Add `Skill(:)` entries to `.claude/settings.local.json` 5. Run `claude plugin marketplace update numencore-toolkit` 6. Run `claude plugin install @numencore-toolkit` ## Plugins | Plugin | Description | |--------|-------------| | `numencore-core` | Core toolkit — skill authoring, project scaffolding | | `git-tools` | Git workflow — commit formatting, branch management |