From claude-code
Knowledge bank for building Claude Code skills -- skill anatomy, SKILL.md authoring, frontmatter fields, progressive disclosure, design patterns, distribution, and troubleshooting. Triggers on: build a skill, create a skill, write a skill, SKILL.md, skill frontmatter, what goes in SKILL.md, skill not loading, my skill isn't working, skill not triggering, get started with skills, how do skills work, skill structure, skill folder, skill description, skill name, allowed-tools, disable-model-invocation, user-invocable, argument-hint, context fork, skill subagent, progressive disclosure, reference files, bundled resources, skill patterns, distribute skill, share skill, publish skill, install skill, personal skill, project skill, plugin skill, enterprise skill, skill-creator, skill conventions, skill best practices, what is a skill, local vs project skill, skill testing, skill debugging.
npx claudepluginhub nathanvale/side-quest-plugins --plugin claude-codeThis skill is limited to using the following tools:
Authoritative guidance for building Claude Code skills, extracted from Anthropic's official documentation. This skill covers skill anatomy, authoring, design patterns, distribution, and troubleshooting.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Authoritative guidance for building Claude Code skills, extracted from Anthropic's official documentation. This skill covers skill anatomy, authoring, design patterns, distribution, and troubleshooting.
This skill draws from:
Reference files are the primary source. Community intel is opt-in via /newsroom:investigate -- see Community Perspective below.
This skill does NOT maintain a community intel cache. Instead, it can hand off to /newsroom:investigate for live community signal when the user wants inspiration or real-world examples.
Auto-detect these signals -- if the user's question contains any of these, offer to run community research:
When detected:
/newsroom:investigate with a tailored query like: "Claude Code skills" OR "SKILL.md" OR "claude skills examples"Do NOT auto-invoke research for standard doc questions like "what goes in SKILL.md" or "how do I distribute a skill." Only when the user is explicitly asking for community perspective or inspiration.
Fallback: If /newsroom:investigate is not available, suggest the user search community forums (Reddit r/ClaudeAI, GitHub Discussions) directly.
Parse the user's question into one or more intent categories. If a question spans multiple categories, identify the primary intent and address it first, then connect to secondary categories.
| Intent | Trigger Signals | Reference File |
|---|---|---|
| Getting Started | get started, what is a skill, how do skills work, first skill, simplest skill, new to skills, skill basics | fundamentals.md |
| Skill Structure | SKILL.md, frontmatter, folder structure, anatomy, progressive disclosure, reference files, bundled resources, scripts directory, what goes in | fundamentals.md |
| Authoring | write a skill, create a skill, build a skill, skill description, skill name, naming rules, writing guidelines, degrees of freedom, how to write, content strategy | authoring.md |
| Design Patterns | pattern, advanced, dynamic context, subagent, context fork, code execution, visual output, multiple frameworks, domain-specific, conditional | patterns.md |
| Distribution | share, distribute, publish, install, personal vs project, where to put, plugin skill, enterprise, managed settings, local skill, monorepo, GitHub hosting, installation guide, API skills, positioning, open standard | distribution.md |
| Testing | test skill, smoke test, validate skill, triggering test, does it trigger, iteration, undertriggering, overtriggering, skill-creator review | testing.md |
| Troubleshooting | not loading, not triggering, isn't working, broken, debug, error, triggers too often, too many skills, context budget, skill not found | troubleshooting.md |
| MCP Builders | MCP server, MCP skill, connector, integration, skill on top of MCP, MCP workflow, MCP enhancement, tool access | mcp-builders.md |
Read the relevant reference file(s) based on the classification. For multi-intent questions, read all relevant files.
Every response should follow this structure:
~/.claude/skills/ for personal)User: How do I get started with skills?
Skill: [Reads fundamentals.md]
A skill is a folder with a SKILL.md file. Here's the simplest working skill:
1. Create the directory:
mkdir -p ~/.claude/skills/my-skill
2. Create ~/.claude/skills/my-skill/SKILL.md:
---
name: my-skill
description: Does X when you ask about Y
---
When the user asks about Y, do X.
3. Test it: open Claude Code and type /my-skill or ask about Y.
The description field is how Claude decides when to use your skill.
Put trigger phrases and use cases there, not in the body.
**Common mistake:** Writing a vague description like "helpful utility."
Be specific: what it does AND when to use it.
Source: fundamentals.md
User: What frontmatter fields can I use in SKILL.md?
Skill: [Reads fundamentals.md]
All fields are optional. Only description is recommended.
| Field | Purpose |
|-------|---------|
| name | Display name and /slash-command. Max 64 chars, lowercase + hyphens only |
| description | What + when. Claude's primary trigger signal |
| argument-hint | Autocomplete hint, e.g. [issue-number] |
| disable-model-invocation | true = only you can invoke via /name |
| user-invocable | false = hidden from / menu, only Claude invokes |
| allowed-tools | Tools permitted without approval when skill active |
| model | Model override when skill active |
| context | "fork" to run in isolated subagent |
| agent | Subagent type when context: fork (Explore, Plan, etc.) |
| hooks | Hooks scoped to skill lifecycle |
The description is the most important field. Include both what the
skill does and specific triggers for when to use it.
**Verify:** Invoke /your-skill and check that the frontmatter fields
parse correctly. Ask "What skills are available?" to confirm your
skill appears with the right description.
**Common mistake:** Missing `---` markers or indentation errors in
YAML cause silent parse failures. Always use exactly two `---` lines.
Source: fundamentals.md
User: My skill isn't loading
Skill: [Reads troubleshooting.md]
Common causes in order of likelihood:
1. **Description doesn't match** -- Claude triggers skills by matching
your question to skill descriptions. Check your description includes
keywords users would naturally say.
2. **Wrong location** -- Verify the file is at one of:
- ~/.claude/skills/<name>/SKILL.md (personal)
- .claude/skills/<name>/SKILL.md (project)
Check: ask "What skills are available?"
3. **Too many skills** -- Descriptions share a context budget
(2% of window, ~16K chars fallback). Run /context to check
for excluded skills.
4. **Syntax error in frontmatter** -- YAML must be between --- markers.
Try invoking directly with /skill-name to isolate the issue.
Source: troubleshooting.md
User: What are people building with skills? Any cool examples?
Skill: [Detects community signal -> "what are people building"]
Skill: [Reads patterns.md for official patterns first]
Here's what the official docs cover for skill patterns:
[brief summary of the 5 patterns from patterns.md]
Let me check what the community is building...
Skill: [Invokes /newsroom:investigate "Claude Code skills examples creative patterns"]
From the community (last 30 days):
[research results with engagement metrics]
User: How do I add hooks to my skill?
Skill: [Detects cross-skill boundary -> hooks domain]
Hook configuration in skills is the /hooks domain. Here's the quick answer:
Add a hooks field to your SKILL.md frontmatter:
---
name: my-skill
hooks:
PreToolUse:
- matcher: "Edit"
hooks:
- type: command
command: "echo 'hook fired'"
---
These hooks are scoped to the skill's lifecycle -- they only fire
while the skill is active.
For full hook configuration, event types, and decision control,
ask /hooks about hook types and configuration.
**Known issue:** Plugin skill frontmatter hooks are silently ignored
(claude-code#17688). For plugin skills, use hooks/hooks.json instead.
Sources: fundamentals.md (frontmatter field), hooks skill (hook mechanics)