6 Patterns That Make Claude Code Skill Files Actually Activate

A developer on r/ClaudeAI tested 2,300+ community and self-built skill files over three months to figure out why most Claude Code skills never activate. The key finding: many skills sit in ~/.claude/skills/ and never fire because users drop them in without following activation patterns Claude actually uses. Here are the six patterns that determine if a skill loads.
Pattern 1: Specific Trigger Language in the Description
Claude reads the YAML description: field to decide when a skill is relevant. A generic description like "Helps with database stuff" never triggers. A specific one like "Use when configuring database connection pooling, choosing pool sizes, or debugging connection exhaustion" triggers reliably. The description is the skill's discoverability primitive, not flavor text.
Pattern 2: One Capability Per File, Tightly Scoped
A skill covering "all SQL stuff" loses to three separate skills covering writing migrations, fixing injection, and explaining query plans. Claude's matching uses cosine similarity between the user's prompt and each skill's description. Diluted descriptions match weakly; specific ones win.
Pattern 3: Frontmatter Conventions Matter
The fields Claude actually uses: name, description, category, difficulty. Optional but useful: tags. Custom keys are parsed but don't affect activation. Adding random metadata slows nothing but doesn't help.
Pattern 4: When-Not-to-Use Lists
Explicit "do not use this skill when..." lists make activation more accurate, not less. They give Claude negative examples that bound the trigger surface. Skipping this section is the most common mistake in community skills.
Pattern 5: Code Examples That Actually Compile
If a skill has a fenced code block with broken syntax, Claude leans away from the skill on activation because the example contradicts the description. Run every code block through a syntax checker before saving.
Pattern 6: Verification Steps in the Body
Skills that include "after running this, verify by..." sections get higher activation reliability on tasks mid-execution. The verification anchor helps Claude decide "yes, this is the skill that matches what they're trying to do."
Example Skills That Hit All 6 Patterns
smart-commit— pattern 1 + 6connection-pool-setup— pattern 2sql-injection-fix— pattern 4redis-lua— pattern 5error-handling-audit— pattern 6api-documentation— pattern 1angular-rxjs— pattern 2trpc-router— pattern 5dockerfile-generator— pattern 4infrastructure-as-code— pattern 3custom-slash-commands— pattern 1placebo-detector— pattern 4
These skills are available at clskillshub.com/browse for reference, or you can write your own using the six patterns.
📖 Read the full source: r/ClaudeAI
👀 See Also

Visual Guide to Claude Code's 27 Hooks Lifecycle
A community-created resource provides a visual and audio walkthrough of all 27 Claude Code hooks, showing when each fires, their order, and what data they receive. The project was built entirely using Claude Code itself.

Running OpenClaw, ClawdBot, and MoltBot on a Budget
Discover how to run OpenClaw, ClawdBot, and MoltBot without breaking the bank. Explore budgeting tips and free alternatives as discussed by enthusiasts on r/clawdbot.

Four aarch64-specific failure modes when running vLLM on Blackwell GB10 with CUDA 13.0
A developer encountered four specific failure modes when setting up vLLM v0.7.1 with DeepSeek-R1-32B on a Blackwell GB10 system running aarch64 architecture with CUDA 13.0, including ABI mismatches and missing dependencies.

How to set up Qwen 3.6 Plus Preview on OpenRouter for free OpenClaw usage
Qwen 3.6 Plus Preview is currently free on OpenRouter with a 1 million token context window, suitable for AI agent work. The setup involves creating an OpenRouter account, adding the provider to OpenClaw, and configuring the model.