Files
2025-11-29 18:28:02 +08:00

7.6 KiB

name, description
name description
claude-plugin:create Create a new Claude Code plugin with agents, commands, and/or skills

Create Plugin Command

Create a new Claude Code plugin following granular, composable architecture principles.

Arguments

  • $1 - Plugin name (required, hyphen-case format)
  • $2 - Plugin description (required)
  • $3 - Components to create: agents, commands, skills, or combinations like agents,commands (optional, defaults to prompting)
  • $4 - Additional configuration as JSON (optional)

Usage

# Basic usage - will prompt for details
/claude-plugin:create my-plugin-name "Plugin description"

# Specify components
/claude-plugin:create my-plugin-name "Plugin description" agents,commands

# Full configuration
/claude-plugin:create golang-advanced "Advanced Go development tools" agents,commands,skills '{"category":"languages","model":"claude-sonnet-4"}'

Workflow

This command orchestrates plugin creation by:

  1. Validating Input

    • Verify plugin name follows hyphen-case convention
    • Ensure plugin doesn't already exist
    • Validate component specifications
  2. Gathering Requirements

    • If components not specified, ask user what to create
    • Request additional details about agents (names, purposes, models)
    • Request command details (names, purposes, workflows)
    • Request skill details (names, triggers, content structure)
  3. Creating Plugin Structure

    • Create plugin directory: plugins/$PLUGIN_NAME/
    • Create component directories as needed
    • Set up skill subdirectories (SKILL.md, assets/, references/)
  4. Generating Components

    • Use Task tool with subagent_type="claude-plugin" to design and implement components
    • Create agent files with proper frontmatter
    • Create command files with argument handling
    • Create skill files with progressive disclosure
  5. Updating Marketplace

    • Invoke marketplace-update skill to add plugin entry
    • Invoke documentation-update skill to update docs

Implementation

Plugin Name: ${1:-"[REQUIRED]"} Description: ${2:-"[REQUIRED]"} Components: ${3:-"[PROMPT USER]"} Configuration: ${4:-"{}"}

Step 1: Validate Plugin Name

The plugin name must:

  • Be in hyphen-case format (e.g., my-plugin-name)
  • Not already exist in plugins/ directory
  • Be descriptive and focused on a single purpose

Step 2: Determine Components

If components are not specified in $3, ask the user:

"What components should this plugin include?"

Options:

  • Agents - Specialized domain experts with deep knowledge
  • Commands - Tools and workflow automation
  • Skills - Modular knowledge packages with progressive disclosure

The plugin must have at least one agent OR one command.

Step 3: Gather Component Details

For each component type selected:

Agents

  • Agent name (hyphen-case)
  • Agent purpose and description
  • Recommended model (haiku for deterministic tasks, sonnet for complex reasoning)
  • Key capabilities
  • Example use cases

Commands

  • Command name (hyphen-case)
  • Command purpose and description
  • Expected arguments
  • Workflow steps
  • Integration points

Skills

  • Skill name (hyphen-case)
  • Skill description with "Use when" trigger
  • Progressive disclosure structure
  • Required assets (templates, examples)
  • Reference documentation needs

Step 4: Invoke Plugin Architect

Use Task tool with subagent_type="claude-plugin" to design and implement the plugin:

I need to create a new plugin called "$PLUGIN_NAME" with the following specifications:

Description: $PLUGIN_DESCRIPTION
Components: $COMPONENTS
Details: [collected from user]

Please design and implement this plugin following the architecture principles:
- Single responsibility
- Composability
- Context efficiency
- Spec compliance

Create all necessary files with proper frontmatter, documentation, and examples.

Step 5: Update Repository

After plugin creation:

  1. Update Marketplace

    Invoke the marketplace-update skill by running the Python script:

    python plugins/claude-plugin/skills/marketplace-update/marketplace_update.py add \
      --name "$PLUGIN_NAME" \
      --description "$PLUGIN_DESCRIPTION" \
      --version "1.0.0" \
      --category "$CATEGORY" \
      --agents "$(ls plugins/$PLUGIN_NAME/agents/*.md 2>/dev/null | xargs -n1 basename | tr '\n' ',')" \
      --commands "$(ls plugins/$PLUGIN_NAME/commands/*.md 2>/dev/null | xargs -n1 basename | tr '\n' ',')" \
      --skills "$(ls -d plugins/$PLUGIN_NAME/skills/*/ 2>/dev/null | xargs -n1 basename | tr '\n' ',')"
    
  2. Update Documentation

    Invoke the documentation-update skill by running the Python script:

    python plugins/claude-plugin/skills/documentation-update/doc_generator.py
    

    This regenerates:

    • docs/agents.md - Agent reference
    • docs/agent-skills.md - Skills catalog
    • docs/plugins.md - Plugin directory
    • docs/usage.md - Usage guide
  3. Verify Structure

    • Check all files have proper frontmatter
    • Verify naming conventions
    • Ensure documentation is complete
    • Confirm marketplace.json is valid
    • Verify all documentation files were regenerated

Step 6: Confirm Success

Report to the user:

  • ✓ Plugin created at plugins/$PLUGIN_NAME/
  • ✓ Components created: [list]
  • ✓ Marketplace updated
  • ✓ Documentation updated
  • Next steps or usage instructions

Examples

Example 1: Create Language Plugin

/claude-plugin:create rust-development "Rust language development tools" agents,commands,skills

This would:

  • Create plugins/rust-development/
  • Prompt for agent details (e.g., rust-pro agent)
  • Prompt for command details (e.g., rust-scaffold command)
  • Prompt for skill details (e.g., rust-patterns skill)
  • Generate all components with proper structure
  • Update marketplace and documentation

Example 2: Create Security Plugin

/claude-plugin:create security-scanning "Security vulnerability scanning and analysis" agents,commands

This would:

  • Create plugins/security-scanning/
  • Prompt for security agent details
  • Prompt for scanning command details
  • Generate components without skills
  • Update marketplace and documentation

Example 3: Create Minimal Plugin

/claude-plugin:create test-helper "Test generation helper utilities" commands

This would:

  • Create plugins/test-helper/
  • Prompt for command details only
  • Generate command file
  • Update marketplace and documentation

Error Handling

Common issues and resolutions:

Plugin Already Exists

If plugins/$PLUGIN_NAME/ exists:

  • Error: "Plugin '$PLUGIN_NAME' already exists. Use /claude-plugin:update to modify existing plugins."
  • Suggest using /claude-plugin:update command instead

Invalid Plugin Name

If plugin name is not hyphen-case:

  • Error: "Plugin name must be in hyphen-case format (e.g., 'my-plugin-name')"
  • Suggest correct format

No Components Specified

If user doesn't specify components and doesn't respond to prompts:

  • Error: "At least one component (agent or command) is required"
  • Prompt again with clear options

Missing Required Arguments

If $1 or $2 are not provided:

  • Error: "Usage: /claude-plugin:create [components] [config]"
  • Show examples

Notes

  • This command creates new plugins only. Use /claude-plugin:update to modify existing plugins.
  • All generated files will include proper YAML frontmatter
  • The plugin-architect agent ensures adherence to architecture principles
  • Skills are invoked automatically for marketplace and documentation updates
  • Generated code follows best practices and spec compliance