| name | create-plugin |
| description | Scaffold a new Claude Code plugin with proper directory structure, plugin.json, skills, commands, and agents |
| argument-hint | <plugin-name> |
| allowed-tools | mcp__claude-flow__transfer_plugin-info mcp__claude-flow__transfer_plugin-search mcp__claude-flow__transfer_store-search Bash Read Write Edit |
Create 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__claude-flow__transfer_plugin-search to 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 (10+ checks)
โโโ README.md # Compatibility + Namespace coordination + Verification + ADR sections
- Generate plugin.json with name, description, version, author (do NOT include
skills, commands, or agents arrays โ 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__claude-flow__tool1 mcp__claude-flow__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/cli v3.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
- Generate ADR-0001 (Proposed) at
docs/adrs/0001-<name>-contract.md documenting: 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_embed does not exist. Real tool is embeddings_generate. Don't reference embeddings_embed in any allowed-tools line.
agentdb_hierarchical-* does NOT route by namespace. It routes by tier (working|episodic|semantic). Pass tier, not namespace. For namespaced reads/writes, use memory_* instead.
agentdb_pattern-* does NOT route by namespace. It routes through ReasoningBank. Don't pass a namespace arg โ fallback writes to the reserved pattern namespace via memory-store-fallback.
pattern (singular) and patterns (plural) are different namespaces. ReasoningBank fallback writes to pattern; hooks_pretrain writes to patterns. Don't conflate them.
Plugin.json schema
Required fields:
name โ plugin identifier (kebab-case)
description โ what the plugin does
version โ semver
Recommended fields:
author โ { "name": "...", "url": "..." }
homepage, license, keywords
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__claude-flow__transfer_plugin-info
Common tool categories:
memory_* โ storage, search, retrieval
agentdb_* โ 15 controller-bridge tools (do NOT pass namespace arg โ they route by tier or ReasoningBank); call agentdb_controllers at runtime for the canonical list
neural_* โ neural training and prediction
hooks_* โ lifecycle hooks and intelligence
browser_* โ browser automation
workflow_* โ workflow management
aidefence_* โ safety scanning
embeddings_* โ 10 vector-embedding tools (use embeddings_generate, NOT embeddings_embed which does not exist)