
Plugin Creator
Scaffold a publishable Cave plugin with a valid `.cave-plugin/plugin.json` manifest and the standard commands, skills, agents, themes, and hooks folders before listing it on the marketplace.
Install
npx skills add https://github.com/juliusbrussee/caveman-code --skill plugin-creatorWhat is this skill?
- Writes `.cave-plugin/plugin.json` with semver, author, `caveVersion`, tags, and capability flags
- Scaffolds five standard directories: `commands/`, `skills/`, `agents/`, `themes/`, and `hooks/`
- Enforces manifest rules: kebab-case `name`, one-line description, and capability booleans aligned to present folders
- Documents marketplace discovery via `tags` and `caveman plugin search`
- Low-effort scaffold triggered by “create a plugin”, “scaffold a plugin”, `/plugin create`, or “new cave plugin”
Adoption & trust: 19 installs on skills.sh; 390 GitHub stars.
Recommended Skills
Microsoft Foundrymicrosoft/azure-skills
Azure Aimicrosoft/azure-skills
Azure Hosted Copilot Sdkmicrosoft/azure-skills
Lark Eventlarksuite/cli
Running Claude Code Via Litellm Copilotxixu-me/skills
Setup Matt Pocock Skillsmattpocock/skills
Journey fit
Primary fit
The skill’s job is to generate the on-disk plugin bundle and manifest—a concrete build artifact—not research, launch SEO, or production monitoring. Cave plugins extend agent runtimes via commands, skills, agents, themes, hooks, and optional MCP—exactly the agent-tooling slice of the Build phase.
SKILL.md
READMESKILL.md - Plugin Creator
# Plugin Creator You scaffold new cave plugins. A cave plugin is a directory published to GitHub (or any zip URL) with a `.cave-plugin/plugin.json` manifest and optional sub-directories for commands, skills, agents, themes, and hooks. ## Manifest Schema ```json { "name": "my-plugin", "version": "0.1.0", "description": "A short, clear description of what this plugin does.", "author": "your-github-handle", "license": "MIT", "homepage": "https://github.com/your-handle/my-plugin", "caveVersion": ">=0.65.0", "tags": ["productivity", "git"], "capabilities": { "commands": true, "skills": true, "agents": false, "themes": false, "mcp": false, "hooks": [] } } ``` ### Field Rules - `name`: kebab-case, a-z0-9 and hyphens only. Must be unique in the marketplace. - `version`: semver ("major.minor.patch"). - `description`: one sentence, plain text. - `tags`: free-form strings for `caveman plugin search` matching. - `capabilities.commands`: set `true` if `commands/` directory is present. - `capabilities.skills`: set `true` if `skills/` directory is present. - `capabilities.agents`: set `true` if `agents/` directory is present. - `capabilities.themes`: set `true` if `themes/` directory is present. - `capabilities.mcp`: set `true` if `.mcp.json` is present. - `capabilities.hooks`: array of hook entries (see below). ### Hook Entry Shape ```json { "event": "PostToolUse", "command": "hooks/post-tool-use.sh", "matcher": "Bash" } ``` ## Directory Structure ``` my-plugin/ ├── .cave-plugin/ │ └── plugin.json ← required ├── commands/ │ └── my-command.md ← markdown slash commands ├── skills/ │ └── my-skill/ │ └── SKILL.md ← skill with frontmatter ├── agents/ │ └── my-agent.md ← agent definition markdown ├── themes/ │ └── my-theme.json ← theme JSON (cave theme format) ├── hooks/ │ └── post-tool-use.sh ← hook scripts (chmod +x) ├── .mcp.json ← optional MCP server definitions └── README.md ``` ## Scaffolding Steps When the user asks to create a plugin, follow these steps: 1. **Ask for plugin details** (name, description, which capabilities are needed). 2. **Create `.cave-plugin/plugin.json`** using the schema above. 3. **Create only the sub-directories that are needed** (do not create empty dirs). 4. **Add placeholder files** for each enabled capability: - `commands/example.md` with frontmatter `---\ndescription: Example command.\n---\n\n# Example\n\nDescribe what this command does.\n` - `skills/example/SKILL.md` with the standard skill frontmatter. - `agents/example.md` with agent frontmatter. - `hooks/example.sh` with `#!/bin/bash\n# Hook: <event>\n` and `chmod +x`. 5. **Create a `README.md`** with install instructions and a short description. 6. **Validate the manifest** by echoing it back and checking all required fields. ## Publishing After scaffolding, instruct the user to: 1. Push the plugin to a public GitHub repository. 2. Submit it to a marketplace by adding an entry to a `marketplace.json`: ```json { "plugins": [ { "ref": "your-handle/my-plugin", "name": "my-plugin", "description": "...", "tags": ["..."], "version": "0.1.0" } ] } ``` 3. Users install it with: `caveman plugin install your-handle/my-plugin` ## Example Interaction User: "Create a plugin that adds a /summarize command and a post-save hook." You: 1. Create `.cave-plugin/plugin.json` with `"commands": true,