create-plugin — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited create-plugin (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Scaffold a new Claude Code plugin from scratch.
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.
mcp__claude-flow__transfer_plugin-search to ensure the name isn't taken 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 sectionsskills, commands, or agents arrays — Claude Code auto-discovers these from directory structure) ---
name: skill-name
description: What this skill does
allowed-tools: mcp__claude-flow__tool1 mcp__claude-flow__tool2 Bash
---model: sonnet@claude-flow/cli v3.6 major+minor<plugin-stem>-<intent> namespace; defer to ruflo-agentdb ADR-0001 §"Namespace convention"bash plugins/<name>/scripts/smoke.shdocs/adrs/0001-<name>-contract.md documenting: pinning, namespace coordination, MCP-tool surface count if applicable, smoke contract scope. Status: Proposed.Proposed; no wildcard tools in skills.Several plugins shipped with subtle MCP bugs the loop has been finding. Don't replicate them:
embeddings_generate. Don't reference embeddings_embed in any allowed-tools line. does NOT route by namespace.** It routes by tier (working|episodic|semantic). Pass tier, not namespace. For namespaced reads/writes, use memory_*` instead. 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; hooks_pretrain writes to patterns. Don't conflate them.Required fields:
name — plugin identifier (kebab-case)description — what the plugin doesversion — semverRecommended fields:
author — { "name": "...", "url": "..." }homepage, license, keywordsOptional fields:
graph_adapter — ADR-130 graph intelligence contract (commented out by default in generated output): // "graph_adapter": {
// "edgeRelations": ["my-relation-type"],
// "nodeTypes": ["entity"],
// "autoRegister": true
// }When autoRegister: true, the plugin's edges are automatically included in graph_edges writes by the core graph layer. Declare edgeRelations — 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.
Browse available tools: mcp__claude-flow__transfer_plugin-info
Common tool categories:
memory_* — storage, search, retrievalagentdb_* — 15 controller-bridge tools (do NOT pass namespace arg — they route by tier or ReasoningBank); call agentdb_controllers at runtime for the canonical listneural_* — neural training and predictionhooks_* — lifecycle hooks and intelligencebrowser_* — browser automationworkflow_* — workflow managementaidefence_* — safety scanningembeddings_* — 10 vector-embedding tools (use embeddings_generate, NOT embeddings_embed which does not exist)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.