From dobby
Creates or modifies agent skills, including single-workflow and multi-workflow (orchestrator) skills. Use when the user wants to create, write, author, scaffold, edit, update, fix, or refactor a skill, or migrate a skill from single to multi-workflow.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dobby:create-skillopusThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Ask the user what the skill should do, when it should activate, and any conventions it should follow.
Ask the user what the skill should do, when it should activate, and any conventions it should follow.
Only name and description loaded at startup — agent decides whether to load the skill based on description alone.
---
name: kebab-case-name
description: [What it does, third person]. Use when [activation triggers].
---
name and description are the only required fields. Many optional fields control invocation, tools, model, effort, and activation — see references/frontmatter.md for the full verified set. Most common:
disable-model-invocation: true — only the user can invoke (/name); use for side-effect or deliberate skills.user-invocable: false — hidden from the / menu; only the model invokes it (background knowledge).argument-hint / arguments — autocomplete hint and $name substitution in the body.allowed-tools / disallowed-tools — pre-approve or remove tools while the skill is active.model / effort — override model or reasoning effort (low|medium|high|xhigh|max) for the skill's turn.paths — globs that limit auto-activation to matching files; context: fork (+ agent) runs it in an isolated subagent.Not skill fields: version, license, metadata, min-version belong to a plugin's plugin.json, not SKILL.md.
# Good
description: Generates conventional commit messages from staged changes. Use when committing code, writing commit messages, or preparing a release.
# Bad — vague
description: Helps with git stuff.
# Bad — first person
description: I can help you write commit messages.
Sacrifice grammar for concision and scannability. Every line must justify its token cost — only include what the agent doesn't already know.
Content loads lazily — put each thing at the cheapest level:
name + description) — always preloaded for every skill (~100 tokens). This is what triggers loading.references/, scripts/, examples/) — loaded only when the body points to them; effectively free until accessed. One level deep — never reference a reference.## headings for steps or sections## Step N: [Action]## Quick Start → ## Patterns → ## Advanced## Acceptance checklist — agent verifies all steps completed before finishingreferences/foo.md, never markdown linksSee examples/ for complete skill examples by type:
| Example | When to use |
|---|---|
examples/minimal.md | Simple single-file skill, no folders |
examples/procedural.md | Defined steps, defined outputs |
examples/open-ended-with-examples.md | Output varies by use case |
examples/with-scripts.md | Deterministic operations |
examples/with-references.md | Conditional/alternate flows |
examples/reference-style.md | Knowledge base, no steps |
examples/combined.md | Scripts + examples + references |
Most skills are single-workflow — one SKILL.md covers one concern. Use this by default.
A multi-workflow skill is needed when a single domain has multiple distinct procedures that share a description trigger. SKILL.md becomes a router that dispatches to internal flows based on the task. Each flow is a self-contained mini-skill inside flows/.
Use multi-workflow when:
Migrate from single to multi when:
Keep the description in sync — when flows are added, modified, or removed, update SKILL.md's description to reflect current capabilities.
For full structure and conventions, see references/orchestrator.md.
skill-name/
├── SKILL.md # Required — ≤500 lines (keep it tight)
├── scripts/ # Optional — deterministic executable code
│ └── setup.ts
├── examples/ # Optional — sample output per use case
│ ├── bug-fix.md
│ └── refactor.md
└── references/ # Optional — conditional flows, on-demand
└── advanced.md
Deterministic, repeatable operations (validation, scaffolding, setup). Executed, not read — code never enters context, only output.
bun: bun scripts/setup.tsvalidate_form.ts, scaffold.tsSample files for open-ended output not fully defined in SKILL.md. One file per use case.
examples/ for sample outputs"Conditional flows, alternate paths, domain knowledge not always needed. Loaded on-demand — zero tokens until needed.
Where the directory lives determines reach:
~/.claude/skills/<name>/SKILL.md: available across all your projects..claude/skills/<name>/SKILL.md: shared with the repo via git.<plugin>/skills/<name>/: namespaced as /plugin-name:skill-name, can't collide.The directory name is the command name (~/.claude/skills/deploy-staging/ → /deploy-staging); the frontmatter name only sets the display label for directory-based skills. On name conflicts, precedence is enterprise > personal > project; plugins are namespaced so they never conflict. Edits under these directories are picked up in the current session (live reload); run /reload-skills to force a re-scan, or /reload-plugins for a plugin's non-SKILL.md files (hooks, MCP, agents).
references/frontmatter.md); no plugin-only fields (version/license/metadata)bun, handle errors## Acceptance checklistnpx claudepluginhub kvnwolf/dobby --plugin dobbyCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.