Skills — package recurring workflows so Claude triggers them automatically
Skills are markdown files Claude loads on demand based on natural-language triggers. Like slash commands but smarter.
Skills
A skill is a folder under ~/.claude/skills/<skill-name>/ with a SKILL.md inside. The frontmatter defines triggering keywords, the body defines the recipe. Claude scans available skills on every prompt and silently loads the matching one before responding.
Skills beat slash commands in three ways:
- They trigger on natural language, not exact slash syntax
- They can be project-specific or global
- They're just markdown — version-controllable, easy to share
Step 1: Verify the skills directory
mkdir -p ~/.claude/skills
ls ~/.claude/skills
Empty directory is fine for now. Each subdirectory will become one skill.
Step 2: Create your first skill
Let's build a simple "deutsche-texte" skill that ensures German output uses real umlauts (ö/ä/ü/ß) instead of ASCII digraphs (oe/ae/ue/ss). Pick whatever's relevant for your work — this is just an example.
mkdir -p ~/.claude/skills/deutsche-texte
cat > ~/.claude/skills/deutsche-texte/SKILL.md <<'EOF'
---
name: deutsche-texte
description: |
Use when writing German text users will see. Forces real umlauts
(ö/ä/ü/ß) instead of oe/ae/ue/ss digraphs. Triggers on German
blog posts, landing pages, social posts, i18n strings.
---
# German Text Rules
When writing German user-facing text:
- Always use real umlauts: ö, ä, ü, ß
- Never use ASCII digraphs: oe, ae, ue, ss
- Exception: file paths, slugs, identifiers stay ASCII
EOF
Step 3: Three skills worth installing globally
Three skills that pay off for almost everyone. Copy-paste each.
simplify — review changed code for reuse, quality, efficiency:
mkdir -p ~/.claude/skills/simplify
cat > ~/.claude/skills/simplify/SKILL.md <<'EOF'
---
name: simplify
description: Review changed code for reuse opportunities, quality issues, and efficiency. Trigger after writing code or before committing. Look for duplication, premature abstractions, unused error paths.
---
# Simplify
When invoked:
1. Read the changed files
2. Look for code that already exists elsewhere and could be reused
3. Look for abstractions that don't pay off (used once, not extending)
4. Look for error handling that catches impossible cases
5. Suggest concrete deletions and consolidations, not vague advice
Output as a numbered list with file:line references.
EOF
debrief — close a session cleanly:
mkdir -p ~/.claude/skills/debrief
cat > ~/.claude/skills/debrief/SKILL.md <<'EOF'
---
name: debrief
description: Close the session by summarizing what was done, what's left open, and what should happen next. Trigger when the user says "debrief", "done for today", or "wrap up".
---
# Debrief
Output:
- **Done:** bulleted list of completed work with file references
- **Open:** what's not finished, what's blocked, what's untested
- **Next session:** the single most important thing to start with
- **Decisions made:** any non-trivial choices and the reasoning
Keep under 200 words.
EOF
fewer-permission-prompts — scan transcripts for read-only commands and add them to allowlist:
This one ships with Claude Code. Find it via ~/.claude/skills/fewer-permission-prompts/ if you have a recent install.
Step 4: Test triggering
Open a fresh Claude Code session and type something that should trigger one of your skills. For deutsche-texte: "schreib mir einen kurzen deutschen Tweet zu MCP". For simplify: "review the file I just changed".
If the skill loaded, you'll see the matching SKILL.md content silently included before the response. Check /skills in Claude Code to see what's loaded.
Step 5: Verify
Run aiguide_validate_step. The validator checks ~/.claude/skills/ exists. (Whether the skills inside are well-written is your call.)
The skill ecosystem is open — skills you write today work in every Claude Code session you start. Build a small library of 5-10 you actually use, share them via git, and skip writing the same instructions over and over.
ls -1 ~/.claude/skills/ 2>/dev/null | head -20