Get the FREE Ultimate OpenClaw Setup Guide →

plugin-forge

Scanned
npx machina-cli add skill softaworks/agent-toolkit/plugin-forge --openclaw
Files (1)
SKILL.md
5.1 KB

CC Plugin Forge

Purpose

Build and manage Claude Code plugins with correct structure, manifests, and marketplace integration. Includes workflows, automation scripts, and reference docs.

When to Use

  • Creating new plugins for a marketplace
  • Adding/modifying plugin components (commands, skills, agents, hooks)
  • Updating plugin versions
  • Working with plugin or marketplace manifests
  • Setting up local plugin testing
  • Publishing plugins

Getting Started

Create New Plugin

Use create_plugin.py to generate plugin structure:

python scripts/create_plugin.py plugin-name \
  --marketplace-root /path/to/marketplace \
  --author-name "Your Name" \
  --author-email "your.email@example.com" \
  --description "Plugin description" \
  --keywords "keyword1,keyword2" \
  --category "productivity"

This automatically:

  • Creates plugin directory structure
  • Generates plugin.json manifest
  • Creates README template
  • Updates marketplace.json

Bump Version

Use bump_version.py to update versions in both manifests:

python scripts/bump_version.py plugin-name major|minor|patch \
  --marketplace-root /path/to/marketplace

Semantic versioning:

  • major: Breaking changes (1.0.0 → 2.0.0)
  • minor: New features, refactoring (1.0.0 → 1.1.0)
  • patch: Bug fixes, docs (1.0.0 → 1.0.1)

Development Workflow

1. Create Structure

Manual approach (if not using script):

mkdir -p plugins/plugin-name/.claude-plugin
mkdir -p plugins/plugin-name/commands
mkdir -p plugins/plugin-name/skills

2. Plugin Manifest

File: plugins/plugin-name/.claude-plugin/plugin.json

{
  "name": "plugin-name",
  "version": "0.1.0",
  "description": "Plugin description",
  "author": {
    "name": "Your Name",
    "email": "your.email@example.com"
  },
  "keywords": ["keyword1", "keyword2"]
}

3. Register in Marketplace

Update .claude-plugin/marketplace.json:

{
  "name": "plugin-name",
  "source": "./plugins/plugin-name",
  "description": "Plugin description",
  "version": "0.1.0",
  "keywords": ["keyword1", "keyword2"],
  "category": "productivity"
}

4. Add Components

Create in respective directories:

ComponentLocationFormat
Commandscommands/Markdown with frontmatter
Skillsskills/<name>/Directory with SKILL.md
Agentsagents/Markdown definitions
Hookshooks/hooks.jsonEvent handlers
MCP Servers.mcp.jsonExternal integrations

5. Local Testing

# Add marketplace
/plugin marketplace add /path/to/marketplace-root

# Install plugin
/plugin install plugin-name@marketplace-name

# After changes: reinstall
/plugin uninstall plugin-name@marketplace-name
/plugin install plugin-name@marketplace-name

Plugin Patterns

Framework Plugin

For framework-specific guidance (React, Vue, etc.):

plugins/framework-name/
├── .claude-plugin/plugin.json
├── skills/
│   └── framework-name/
│       ├── SKILL.md
│       └── references/
├── commands/
│   └── prime/
│       ├── components.md
│       └── framework.md
└── README.md

Utility Plugin

For tools and commands:

plugins/utility-name/
├── .claude-plugin/plugin.json
├── commands/
│   ├── action1.md
│   └── action2.md
└── README.md

Domain Plugin

For domain-specific knowledge:

plugins/domain-name/
├── .claude-plugin/plugin.json
├── skills/
│   └── domain-name/
│       ├── SKILL.md
│       ├── references/
│       └── scripts/
└── README.md

Command Naming

Subdirectory-based namespacing with : separator:

  • commands/namespace/command.md/namespace:command
  • commands/simple.md/simple

Examples:

  • commands/prime/vue.md/prime:vue
  • commands/docs/generate.md/docs:generate

Version Management

Important: Update version in BOTH locations:

  1. plugins/<name>/.claude-plugin/plugin.json
  2. .claude-plugin/marketplace.json

Use bump_version.py to automate.

Git Commits

Use conventional commits:

git commit -m "feat: add new plugin"
git commit -m "fix: correct plugin manifest"
git commit -m "docs: update plugin README"
git commit -m "feat!: breaking change"

Reference Docs

Detailed documentation included:

ReferenceContent
references/plugin-structure.mdDirectory structure, manifest schema, components
references/marketplace-schema.mdMarketplace format, plugin entries, distribution
references/workflows.mdStep-by-step workflows, patterns, publishing

Scripts

ScriptPurpose
scripts/create_plugin.pyScaffold new plugin
scripts/bump_version.pyUpdate versions

Source

git clone https://github.com/softaworks/agent-toolkit/blob/main/skills/plugin-forge/SKILL.mdView on GitHub

Overview

CC Plugin Forge provides tooling to build, structure, and publish Claude Code plugins with correct manifests and marketplace integration. It covers scaffolding, component wiring (commands, skills, agents, hooks), version bumps, and local testing.

How This Skill Works

Start with create_plugin.py to scaffold the plugin folder, manifest (plugin.json), and marketplace.json. Use bump_version.py to bump semantic versions across manifests (major, minor, patch). Then organize components under commands/, skills/, agents/, hooks/ and test locally before publishing.

When to Use It

  • Creating new plugins for a marketplace
  • Adding/modifying plugin components (commands, skills, agents, hooks)
  • Updating plugin versions
  • Working with plugin or marketplace manifests
  • Setting up local plugin testing

Quick Start

  1. Step 1: Run the scaffold to create the plugin structure using the create_plugin.py script
  2. Step 2: Populate components (commands, skills, agents, hooks) and update plugin.json / marketplace.json
  3. Step 3: Bump the version with bump_version.py, test locally, then publish

Best Practices

  • Define clear plugin.json metadata with accurate keywords
  • Keep plugin.json and marketplace.json in sync
  • Follow semantic versioning when bumping versions (major/minor/patch)
  • Organize components in their respective directories and document usage
  • Test locally with the marketplace tooling before publishing

Example Use Cases

  • Creating a new marketplace plugin named notes-manager using the scaffold and publishing it
  • Adding a new command under commands/ to perform a daily task
  • Bumping version from 0.2.1 to 0.3.0 after a feature release
  • Updating plugin.json and marketplace.json to reflect new keywords and description
  • Testing locally by registering a marketplace and reinstalling after changes

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers