Files
2025-11-29 18:50:09 +08:00

9.7 KiB

name, version, description
name version description
plugin-creator 1.0.0 Create complete Claude Code plugins with proper structure including skills, commands, agents, and hooks. Generates plugin manifests and directory structures for distribution. Use when: building plugins, creating plugin packages, distributing skills to marketplace. Activates for: "create plugin", "generate plugin", "new plugin", "plugin package", "make plugin"

Plugin Creator

Generate complete Claude Code plugins with proper structure and configuration.

When to Use

  • Creating shareable plugin packages
  • Building complete tool collections
  • Organizing related skills/commands/agents
  • Distributing functionality to teams
  • Contributing to plugin marketplaces

Plugin Structure

A complete plugin includes:

plugin-name/
├── .claude-plugin/
│   └── plugin.json           # Plugin manifest
├── skills/                   # Optional: Skill definitions
│   ├── skill-1.md
│   └── skill-2.md
├── commands/                 # Optional: Slash commands
│   ├── command-1.md
│   └── command-2.md
├── agents/                   # Optional: Agent definitions
│   ├── agent-1.md
│   └── agent-2.md
├── hooks/                    # Optional: Event hooks
│   └── hooks.json
├── README.md                 # Documentation
└── LICENSE                   # Optional: License file

Core Workflow

1. Gather Requirements

Ask the user:

  • Plugin name: Kebab-case identifier
  • Purpose: What problem does this plugin solve?
  • Components: What will it include (skills/commands/agents/hooks)?
  • Target audience: Who will use this?
  • Distribution: Public marketplace or private?
  • Dependencies: Required tools or other plugins?

2. Generate Plugin Structure

Create Directory Structure

mkdir -p plugin-name/.claude-plugin
mkdir -p plugin-name/skills
mkdir -p plugin-name/commands
mkdir -p plugin-name/agents
mkdir -p plugin-name/hooks

Generate plugin.json

{
  "name": "plugin-name",
  "version": "1.0.0",
  "description": "Clear description of what this plugin does",
  "author": {
    "name": "Author Name",
    "email": "email@example.com",
    "github": "github-username"
  },
  "license": "MIT",
  "category": "appropriate-category",
  "keywords": ["keyword1", "keyword2", "keyword3"],
  "skills": ["skill-1", "skill-2"],
  "commands": ["command-1", "command-2"],
  "agents": ["agent-1", "agent-2"],
  "repository": {
    "type": "git",
    "url": "https://github.com/username/plugin-name"
  },
  "homepage": "https://github.com/username/plugin-name",
  "requires": {
    "tools": ["git", "npm"],
    "plugins": []
  }
}

Generate README.md

# Plugin Name

> Brief description

## Features

- Feature 1
- Feature 2
- Feature 3

## Installation

\`\`\`bash
/plugin marketplace add username/plugin-name
/plugin install plugin-name
\`\`\`

## Usage

### Skills

- **skill-1**: Description
- **skill-2**: Description

### Commands

- `/command-1`: Description
- `/command-2`: Description

### Agents

- **agent-1**: Description

## Examples

[Usage examples]

## Requirements

- Tool 1
- Tool 2

## License

MIT

3. Add Components

Use the creator skills to add components:

  • skill-creator: Add skills
  • command-creator: Add commands
  • agent-creator: Add agents
  • hook-creator: Add hooks

4. Validate Plugin

Ensure:

  • plugin.json is valid JSON
  • All referenced components exist
  • Directory structure is correct
  • README is comprehensive
  • License is appropriate
  • Keywords are relevant

Example Plugins

TanStack Tools Plugin

tanstack-tools/
├── .claude-plugin/
│   └── plugin.json
├── skills/
│   ├── tanstack-router-setup.md
│   ├── tanstack-query-hook.md
│   ├── tanstack-form-schema.md
│   ├── tanstack-table-config.md
│   └── tanstack-start-project.md
├── commands/
│   ├── setup-tanstack-start.md
│   └── generate-query-hook.md
├── README.md
└── LICENSE

plugin.json:

{
  "name": "tanstack-tools",
  "version": "1.0.0",
  "description": "Comprehensive TanStack ecosystem tools for Router, Query, Forms, Table, and Start",
  "author": {
    "name": "Jace Babin",
    "email": "jbabin91@gmail.com",
    "github": "jbabin91"
  },
  "license": "MIT",
  "category": "framework",
  "keywords": [
    "tanstack",
    "router",
    "query",
    "forms",
    "table",
    "start",
    "react"
  ],
  "skills": [
    "tanstack-router-setup",
    "tanstack-query-hook",
    "tanstack-form-schema",
    "tanstack-table-config",
    "tanstack-start-project"
  ],
  "commands": ["setup-tanstack-start", "generate-query-hook"],
  "requires": {
    "tools": ["npm", "git"],
    "packages": ["@tanstack/router", "@tanstack/react-query"]
  }
}

API Tools Plugin

api-tools/
├── .claude-plugin/
│   └── plugin.json
├── skills/
│   ├── drizzle-setup.md
│   ├── drizzle-schema-generator.md
│   ├── better-auth-setup.md
│   ├── hono-rpc-endpoint.md
│   └── elysia-setup.md
├── commands/
│   ├── init-drizzle.md
│   ├── generate-api-client.md
│   └── setup-auth.md
├── agents/
│   └── api-designer.md
├── README.md
└── LICENSE

plugin.json:

{
  "name": "api-tools",
  "version": "1.0.0",
  "description": "Backend API development tools for Hono, Elysia, Drizzle, and better-auth",
  "author": {
    "name": "Jace Babin",
    "email": "jbabin91@gmail.com",
    "github": "jbabin91"
  },
  "license": "MIT",
  "category": "backend",
  "keywords": [
    "api",
    "backend",
    "hono",
    "elysia",
    "drizzle",
    "better-auth",
    "openapi"
  ],
  "skills": [
    "drizzle-setup",
    "drizzle-schema-generator",
    "better-auth-setup",
    "hono-rpc-endpoint",
    "elysia-setup"
  ],
  "commands": ["init-drizzle", "generate-api-client", "setup-auth"],
  "agents": ["api-designer"],
  "requires": {
    "tools": ["npm", "node"],
    "packages": ["drizzle-orm", "better-auth"]
  }
}

Component Library Plugin

design-system-tools/
├── .claude-plugin/
│   └── plugin.json
├── skills/
│   ├── component-generator.md
│   ├── component-a11y-validator.md
│   ├── storybook-story.md
│   └── design-tokens-validator.md
├── commands/
│   ├── create-component.md
│   ├── validate-a11y.md
│   └── generate-stories.md
├── agents/
│   ├── component-reviewer.md
│   └── a11y-auditor.md
├── hooks/
│   └── hooks.json
├── README.md
└── LICENSE

Plugin Categories

Framework-Specific

  • tanstack-tools
  • react-tools
  • next-tools
  • vue-tools

Backend

  • api-tools
  • database-tools
  • auth-tools

DevOps

  • deployment-tools
  • ci-cd-tools
  • monitoring-tools

Code Quality

  • testing
  • linting-tools
  • security-tools

Meta

  • skill-tools (this plugin!)
  • marketplace-tools
  • template-tools

Plugin Manifest Fields

Required Fields

{
  "name": "plugin-identifier", // Required: kebab-case
  "version": "1.0.0", // Required: semantic versioning
  "description": "Clear description" // Required: what it does
}
{
  "author": {
    "name": "Author Name",
    "email": "email@example.com",
    "github": "username"
  },
  "license": "MIT",
  "category": "framework",
  "keywords": ["keyword1", "keyword2"],
  "repository": {
    "type": "git",
    "url": "https://github.com/username/plugin"
  },
  "homepage": "https://github.com/username/plugin"
}

Optional Fields

{
  "skills": ["skill-1", "skill-2"], // List of included skills
  "commands": ["cmd-1", "cmd-2"], // List of commands
  "agents": ["agent-1"], // List of agents
  "requires": {
    "tools": ["git", "npm"], // Required CLI tools
    "plugins": ["other-plugin"], // Plugin dependencies
    "packages": ["package-name"] // npm package dependencies
  }
}

Distribution

Public Marketplace

  1. Create GitHub repository
  2. Add marketplace.json (if creating marketplace)
  3. Tag releases with versions
  4. Share repository URL

Users install via:

/plugin marketplace add username/plugin-name
/plugin install plugin-name

Private/Work Distribution

  1. Host on private Git server
  2. Share repository URL with team
  3. Add to team marketplace

Users install via:

/plugin marketplace add git@internal:plugins/plugin-name
/plugin install plugin-name

Best Practices

  1. Clear Purpose: Plugin should solve one specific problem domain
  2. Good Documentation: Comprehensive README with examples
  3. Semantic Versioning: Follow semver for releases
  4. Minimal Dependencies: Only require what's necessary
  5. Test Before Release: Validate all components work
  6. Helpful Keywords: Make plugin discoverable

Anti-Patterns

  • Kitchen-sink plugins (too many unrelated features)
  • Missing documentation
  • No examples
  • Unclear versioning
  • Missing license
  • Poor component organization

Troubleshooting

Plugin Not Loading

Solution:

  • Validate plugin.json syntax
  • Check directory structure
  • Verify all referenced files exist
  • Restart Claude Code

Components Not Found

Solution:

  • Check component names match manifest
  • Verify files are in correct directories
  • Check file extensions (.md for skills/commands/agents)

References