plugins/marketplace-ops/skills/skills-creator/SKILL.md
Guided creation of Claude Code plugin components -- skills, agents, commands, and full plugins. Walks through requirements gathering, generates production-ready files with real content (not placeholders), registers in marketplace.json, and bumps versions. Also trigger on "new skill", "new agent", "new plugin", "add a skill", "add an agent", "skills-creator", "skills-hammer". Also helps decide skill vs agent architecture when reorganizing plugins. DO NOT TRIGGER for editing or updating existing components -- only for new creation or architectural decisions (skill vs agent). TRIGGER WHEN: the user asks to create, add, scaffold, or build a new skill, agent, command, or plugin DO NOT TRIGGER WHEN: the task is outside the specific scope of this component.
npx skillsauth add acaprino/anvil-toolset skills-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create new Claude Code plugin components (skills, agents, commands, full plugins) with proper conventions and real content. Marketplace-agnostic: read the target .claude-plugin/marketplace.json and CLAUDE.md for project-specific conventions (author, license, category taxonomy) before scaffolding.
Determine what the user wants to create:
1. "new skill" --> Skill Creation workflow
2. "new agent" --> Agent Creation workflow
3. "new command" --> Command Creation workflow
4. "new plugin" --> Full Plugin workflow (combines above)
If unclear, ask: "What do you want to create -- a skill, agent, command, or full plugin?"
Before gathering requirements, help the user decide the right component type.
Key question: "Does this need its own context/tools/isolation, or is it knowledge that any agent should access?"
See references/skills-vs-agents.md for the full decision table, real restructure examples, and anti-patterns.
The description field is the single most important line in any skill or agent. It determines whether the component activates at all. Passive descriptions achieve ~50-77% activation; directive descriptions with negative constraints achieve 97-100%.
<Domain> expert. ALWAYS invoke this skill when the user <trigger actions>.
Do not <alternative action> directly.
TRIGGER WHEN: <specific triggers, comma-separated>
DO NOT TRIGGER WHEN: <exclusions>
# BAD (50-77% activation) -- passive, suggestion-style
description: "Helps with Docker containerization tasks"
# GOOD (97-100% activation) -- directive with negative constraint
description: >
Docker containerization expert. ALWAYS invoke this skill when the user
asks about Docker, containers, Dockerfiles, or docker-compose.
Do not run Docker commands or write Dockerfiles directly.
TRIGGER WHEN: building containers, writing Dockerfiles, debugging Docker issues
DO NOT TRIGGER WHEN: the task is not about containerization.
Each skill/agent costs ~100 tokens at idle (just name + description in system prompt). All descriptions combined share a 15,000 character budget by default. When total description text exceeds this limit, skills may be silently dropped from the system prompt.
Before writing any files, gather enough context to produce real content.
Ask (adapt based on what's already known):
Ask (adapt based on what's already known):
Ask (adapt based on what's already known):
Ask (adapt based on what's already known):
Do not ask more than 3-4 questions per message. Start with the most important, follow up as needed.
Generate production-ready files with real content -- not [FILL] placeholders.
plugins/<plugin>/skills/<skill-name>/SKILL.md following these rules:
name (kebab-case, max 64 chars) and description (max 1024 chars)TRIGGER WHEN: and DO NOT TRIGGER WHEN: linescontext: fork (isolates in subagent), allowed-tools (restricts tool access), disable-model-invocation: true (prevents auto-triggering)!command syntax for dynamic context injection (shell commands that execute before content reaches Claude)references/, scripts/, assets/ subdirs only if neededplugins/<plugin>/agents/<agent-name>.mdname, description (use YAML > for multiline), model: inherit, color, optionally toolsTRIGGER WHEN: and DO NOT TRIGGER WHEN: lines"Expert X. TRIGGER WHEN: user needs Y. DO NOT TRIGGER WHEN: task is Z."# ROLE, # CAPABILITIES or # CORE CAPABILITIES, # CONVENTIONS, # OUTPUT FORMATplugins/<plugin>/commands/<command-name>.mddescription, argument-hintAfter files are created:
.claude-plugin/marketplace.jsonagents, skills, or commands arrays
"./agents/<name>.md""./skills/<name>""./commands/<name>.md"plugins[] with all required fields (name, source, description, version 1.0.0, author, license, keywords, category, strict)After registration:
| Scenario | Wrong | Right | |----------|-------|-------| | Writing descriptions | Passive: "Helps with Docker" (50% activation) | Directive: "ALWAYS invoke when user asks about Docker. Do not run Docker commands directly." (97%+ activation) | | Description tone | "Can be used for...", "Use when..." | "ALWAYS invoke this skill when...", "Do not X directly" | | Missing exclusions | No DO NOT TRIGGER WHEN clause | Always specify what should NOT trigger the component | | Writing agent prompts | Verbose prose paragraphs | Terse keyword-list style | | Skill body length | 800+ lines in SKILL.md | Split into references/ at ~300 lines | | Skill body content | Repeating what Claude already knows | Only add context Claude lacks; trust built-in knowledge | | Creating resources | Empty placeholder dirs | Only create dirs that have files | | Choosing a plugin | Always create a new one | Prefer adding to existing plugin if domain fits | | Agent description | First/second person | Third person: "Processes X when Y" | | Token budget | Long verbose descriptions on all components | Keep descriptions under 300 chars when possible; total budget is 15k chars |
- or double hyphen --inherit (agents follow the session model)name fieldname fieldtools
Master memory forensics techniques including memory acquisition, process analysis, and artifact extraction using Volatility and related tools. Use when analyzing memory dumps, investigating incidents, or performing malware analysis from RAM captures.
development
Master binary analysis patterns including disassembly, decompilation, control flow analysis, and code pattern recognition. Use when analyzing executables, understanding compiled code, or performing static analysis on binaries.
development
Idiomatic Kotlin implementation patterns: coroutines and structured concurrency, Flow / StateFlow / SharedFlow, Kotlin Multiplatform (KMP) shared-code architecture, Jetpack Compose UI, Ktor server with JWT auth and Exposed, and type-safe DSL design (lambdas with receivers, delegated properties, inline reified, value classes). TRIGGER WHEN: building, writing, or reviewing Kotlin code using coroutines / Flow / suspend functions, expect/actual, Compose composables / ViewModels, Ktor routing, sealed-class state modeling, scope functions, or DSL builders. DO NOT TRIGGER WHEN: libGDX game work (use libgdx-development), Android Java without Kotlin, or pure JVM tuning unrelated to Kotlin language features.
tools
Strategic website planning skill that conducts structured client discovery, produces professional deliverables (website brief, sitemap, design direction, content strategy), and orchestrates frontend-design, frontend-layout, seo-specialist, and content-marketer agents automatically. TRIGGER WHEN: planning a new website or redesign before any code is written. DO NOT TRIGGER WHEN: the task is outside the specific scope of this component.