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

Anthropic releases free official learning platform for Claude AI
Anthropic has launched a free learning platform with structured courses covering Claude basics, API integration, agent skills, and specialized tracks for different user groups.

Getting Started with OpenCode for Local AI Coding Agent Setup
A beginner's guide walks through setting up OpenCode as a fully local AI coding agent using ByteShape's optimized models with LM Studio, llama.cpp, or Ollama across Mac, Linux, and Windows (WSL2).

CLAUDE.md Files Are Often Organized for Developers, Not AI Models – Here's Why That Matters
CLAUDE.md files commonly place Hard Rules at line 47, after background and tech stack. By the time the model reads constraints, it has already constructed conflicting assumptions. A better structure puts hard rules first.

Running Qwen3.6-35B-A3B with ~190k Context on 8GB VRAM + 32GB RAM – Setup & Benchmarks
A Reddit user shares a working llama.cpp configuration for Qwen3.6-35B-A3B GGUF models on an RTX 4060 (8GB VRAM) + 32GB DDR5, achieving 37-51 tok/s at 192k context using TurboQuant and specific flags.