
Create Plugin
FreeEasily scaffold new Claude Code plugins.
Free · Opens the source repo
What Create Plugin does
The Create Plugin skill is designed for developers looking to extend Claude Code by creating new plugins. This skill automates the initial setup process, ensuring that the resulting plugin adheres to the proper directory structure and conventions. By generating the necessary files and configurations, it streamlines the workflow for plugin development, allowing developers to focus on implementing functionality rather than worrying about boilerplate code.
When using the Create Plugin skill, users will be guided through a series of steps to define their plugin's name and description. The skill checks for naming conflicts to prevent overwriting existing plugins. It then creates a structured directory that includes essential components such as plugin.json, skills, commands, and agents, all organized according to the canonical plugin contract. This organization promotes consistency and clarity within the plugin ecosystem.
Additionally, the skill generates key documentation files, including a README.md that outlines installation instructions, features, and compatibility information. It also creates an Architecture Decision Record (ADR) to document the plugin's design choices, ensuring that developers can maintain clarity and rationale behind their implementation decisions. By automating these processes, the Create Plugin skill significantly reduces the setup time for new plugins, making it an invaluable tool for developers working within the Claude Code framework.
When to use it
Use this skill when you need to create a new plugin for Claude Code that includes skills, commands, and agents, and you want to ensure proper structure and configuration.
When not to use it
This skill is not suitable for modifying existing plugins or for users who need to create plugins without adhering to the Claude Code conventions.
What you can build with it
Creating a New Plugin
Use this skill to quickly scaffold a new plugin that adds unique functionality to Claude Code.
Ensuring Compliance with Standards
Leverage the skill to maintain compliance with Claude Code's plugin structure and conventions, reducing the risk of errors.
Documenting Plugin Decisions
Utilize the generated ADR to keep track of architectural decisions and ensure clarity in your plugin's design.
How to install Create Plugin
View source1. Install with the skills CLI
npx skills add ruvnet/ruflo/create-plugin --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by ruvnetCreate Plugin
Scaffold a new Claude Code plugin from scratch.
When to use
When you want to create a new plugin that extends Claude Code with skills, commands, and agents. This generates the correct directory structure and wires up MCP tools.
Steps
- Get plugin name and description from the user
- Check for conflicts — call
mcp__plugin_ruflo-core_ruflo__transfer_plugin-searchto ensure the name isn't taken - Create directory structure (follows the canonical plugin contract from sibling plugins' ADR-0001s):
plugins/<name>/ ├── .claude-plugin/ │ └── plugin.json ├── skills/ │ └── <skill-name>/ │ └── SKILL.md ├── commands/ │ └── <command-name>.md ├── agents/ │ └── <agent-name>.md ├── docs/ │ └── adrs/ │ └── 0001-<name>-contract.md # Plugin-level ADR (Proposed) ├── scripts/ │ └── smoke.sh # Structural contract (≥8 checks) └── README.md # Compatibility + Namespace coordination + Verification + ADR sections - Generate plugin.json with name, description, version, author (do NOT include
skills,commands, oragentsarrays — Claude Code auto-discovers these from directory structure) - Generate SKILL.md files with proper frontmatter:
--- name: skill-name description: What this skill does allowed-tools: mcp__plugin_ruflo-core_ruflo__tool1 mcp__plugin_ruflo-core_ruflo__tool2 Bash --- - Generate command files with name and description frontmatter
- Generate agent files with name, description, and
model: sonnet - Generate README.md with install instructions, features, commands, skills, AND the canonical plugin-contract sections:
- Compatibility — pin to
@claude-flow/cliv3.6 major+minor - Namespace coordination — claim a kebab-case
<plugin-stem>-<intent>namespace; defer to ruflo-agentdb ADR-0001 §"Namespace convention" - Verification —
bash plugins/<name>/scripts/smoke.sh - Architecture Decisions — link to ADR-0001
- Compatibility — pin to
- Generate ADR-0001 (Proposed) at
docs/adrs/0001-<name>-contract.mddocumenting: pinning, namespace coordination, MCP-tool surface count if applicable, smoke contract scope. Status:Proposed. - Generate scripts/smoke.sh — at minimum 8 structural checks: version + keywords; skills/agents/commands present with valid frontmatter; v3.6 pin in README; namespace coordination block in README; ADR exists with status
Proposed; no wildcard tools in skills. - Update marketplace.json if adding to the ruflo marketplace.
MCP-tool drift to avoid (per sibling-ADR lessons learned)
Several plugins shipped with subtle MCP bugs the loop has been finding. Don't replicate them:
embeddings_embeddoes not exist. Real tool isembeddings_generate. Don't referenceembeddings_embedin anyallowed-toolsline.agentdb_hierarchical-*does NOT route by namespace. It routes by tier (working|episodic|semantic). Passtier, notnamespace. For namespaced reads/writes, usememory_*instead.agentdb_pattern-*does NOT route by namespace. It routes through ReasoningBank. Don't pass anamespacearg — fallback writes to the reservedpatternnamespace viamemory-store-fallback.pattern(singular) andpatterns(plural) are different namespaces. ReasoningBank fallback writes topattern;hooks_pretrainwrites topatterns. Don't conflate them.
Plugin.json schema
Required fields:
name— plugin identifier (kebab-case)description— what the plugin doesversion— semver
Recommended fields:
author—{ "name": "...", "url": "..." }homepage,license,keywords
Optional fields:
graph_adapter— ADR-130 graph intelligence contract (commented out by default in generated output):
When// "graph_adapter": { // "edgeRelations": ["my-relation-type"], // "nodeTypes": ["entity"], // "autoRegister": true // }autoRegister: true, the plugin's edges are automatically included ingraph_edgeswrites by the core graph layer. DeclareedgeRelations— the relation types this plugin produces.
Do NOT include skills, commands, or agents arrays in plugin.json — these are auto-discovered from the directory structure by Claude Code and will cause validation errors if present.
Available MCP tools to wire
Browse available tools: mcp__plugin_ruflo-core_ruflo__transfer_plugin-info
Common tool categories:
memory_*— storage, search, retrievalagentdb_*— 15 controller-bridge tools (do NOT passnamespacearg — they route by tier or ReasoningBank); callagentdb_controllersat runtime for the canonical listneural_*— neural training and predictionhooks_*— lifecycle hooks and intelligencebrowser_*— browser automationworkflow_*— workflow managementaidefence_*— safety scanningembeddings_*— 10 vector-embedding tools (useembeddings_generate, NOTembeddings_embedwhich does not exist)
Frequently asked questions about Create Plugin
Similar skills
Rhino 3D Scripting
Streamline your Rhinoceros 3D scripting tasks.
MVVM Toolkit
Streamline ViewModel development with source generators.
FreeCAD Scripts
Generate Python scripts for FreeCAD automation and modeling.
Azure Architecture Builder
Design and deploy Azure infrastructure using natural language.
Command Development
Streamline your command creation for Claude Code.
Create Cowork Plugin
Easily build and package plugins through guided sessions.
