2
1
Source

Defines required structure, frontmatter format, and best practices for SKILL.md files. Use BEFORE creating or editing any skill - this is the spec to follow, not optional reference.

Install

mkdir -p .claude/skills/skills-guide && curl -L -o skill.zip "https://mcp.directory/api/skills/download/4292" && unzip -o skill.zip -d .claude/skills/skills-guide && rm skill.zip

Installs to .claude/skills/skills-guide

About this skill

Skills Guide

Package reusable expertise into discoverable capabilities. Skills are modular instructions Claude autonomously activates when relevant—extending your workflow without requiring slash commands.

Contents

Quick Start

Personal Skill (available everywhere)

mkdir -p ~/.claude/skills/my-skill-name

Project Skill (shared with team)

mkdir -p .claude/skills/my-skill-name

Create SKILL.md

---
name: Skill Name
description: What it does + when to use it (be specific!)
---

# Skill Name

## Instructions
Step-by-step guidance for Claude

## Examples
Concrete usage examples

What are Skills

Agent Skills package expertise into discoverable, composable capabilities:

  • SKILL.md — Instructions Claude reads when relevant
  • Supporting files — Optional scripts, templates, reference docs
  • Model-invoked — Claude autonomously decides when to use based on description
  • Discoverable — No slash commands; integrated with your workflow

Benefits

  • Solve recurring problems once, reuse everywhere
  • Share expertise across teams via git
  • Compose multiple Skills for complex tasks
  • Reduce token overhead from repetitive prompting

Create a Skill

Personal Skills: ~/.claude/skills/

Available across all projects. Use for:

  • Individual workflows and experimental Skills
  • Personal productivity tools
  • Utilities you use across multiple projects

Project Skills: .claude/skills/

Shared with your team via git. Use for:

  • Team workflows and shared expertise
  • Project-specific capabilities
  • Utilities team members need together

Team members automatically get Project Skills when they pull your repo.

Plugin Skills

Bundled with Claude Code plugins; automatically available when plugin installed.

Write SKILL.md

Every Skill requires YAML frontmatter + Markdown content.

Required Fields

FieldLimitPurpose
name64 charsHuman-readable name
description1024 charsWhat it does + when to use

Optional Fields

FieldPurpose
allowed-toolsRestrict which tools Claude can use (e.g., Read, Grep, Glob)

The description field is critical

Claude uses this to decide whether to activate your Skill. Always include:

  1. What it does — Concrete capabilities
  2. When to use — Specific triggers and contexts

Good (triggers Claude):

Extract text and tables from PDF files, fill forms, merge documents.
Use when working with PDF files or when the user mentions PDFs, forms, or extraction.

Bad (too vague):

Helps with documents

Naming conventions

Use gerund form (verb + -ing):

  • "Processing PDFs"
  • "Analyzing spreadsheets"
  • "Testing code"
  • "Writing documentation"

Structure & Organization

Simple Skill (single file)

For focused, single-purpose capabilities:

commit-helper/
└── SKILL.md

Skill with supporting files

Reference files load on-demand; keep SKILL.md under 500 lines for optimal performance:

pdf-processing/
├── SKILL.md              # Main instructions (quick start)
├── FORMS.md              # Form-filling guide
├── REFERENCE.md          # API reference
├── EXAMPLES.md           # Usage examples
└── scripts/
    ├── analyze_form.py
    ├── fill_form.py
    └── validate.py

Progressive disclosure pattern

High-level overview in SKILL.md:

  • Quick start and common use cases
  • Links to detailed reference files
## Quick start

Extract text with pdfplumber:
```python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
    text = pdf.pages[0].extract_text()

Advanced features

Form filling: See FORMS.md API reference: See REFERENCE.md Examples: See EXAMPLES.md


### Organization for multi-domain Skills

For Skills covering multiple domains, organize by domain:

bigquery-skill/ ├── SKILL.md └── reference/ ├── finance.md ├── sales.md ├── product.md └── marketing.md


SKILL.md acts as router linking to domain-specific docs.

## Best Practices

### 1. Assume Claude is smart

Don't explain basic concepts. Be concise and direct.

**Verbose** (~150 tokens):

PDF files are a common format containing text, images, and other content. To extract text, you need a library. Many libraries exist...


**Concise** (~50 tokens):

Use pdfplumber for text extraction:

import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
    text = pdf.pages[0].extract_text()

### 2. Use examples over explanations

Provide input/output pairs, especially for transformations:

```markdown
## Commit message format

**Example 1:**
Input: Added user authentication with JWT tokens
Output:

feat(auth): implement JWT-based authentication

Add login endpoint and token validation middleware


**Example 2:**
Input: Fixed bug where dates displayed incorrectly
Output:

fix(reports): correct date formatting in timezone conversion

3. Provide utility scripts

Pre-made scripts are more reliable than generated code:

## Utility scripts

**analyze_form.py**: Extract form fields from PDF
```bash
python scripts/analyze_form.py input.pdf > fields.json

validate_boxes.py: Check for overlapping fields

python scripts/validate_boxes.py fields.json

### 4. List required packages

Specify dependencies upfront:

```markdown
## Requirements

```bash
pip install pypdf pdfplumber

### 5. Implement validation loops

For quality-critical tasks, enforce validation checks:

```markdown
## Workflow

1. Make your edits
2. **Validate immediately**: `python scripts/validate.py`
3. If validation fails:
   - Review error message
   - Fix issues
   - Run validation again
4. **Only proceed when validation passes**

6. Use workflows with checklists

For complex multi-step operations:

## Task Progress

- [ ] Step 1: Analyze form
- [ ] Step 2: Create mapping
- [ ] Step 3: Validate mapping
- [ ] Step 4: Fill form
- [ ] Step 5: Verify output

7. Restrict tool access (optional)

Limit which tools Claude can use:

---
name: Safe File Reader
description: Read files without making changes
allowed-tools: Read, Grep, Glob
---

8. Match specificity to task fragility

High freedom (multiple approaches valid):

## Code review process

1. Analyze code structure
2. Check for potential bugs
3. Suggest readability improvements
4. Verify project conventions

Low freedom (exact sequence required):

## Database migration

Run exactly this command (do not modify):
```bash
python scripts/migrate.py --verify --backup

## Debugging

### Skill won't activate?

**Check description specificity**:
- Too vague: `Helps with documents`
- Specific: `Extract text and tables from PDFs. Use when working with PDF files or when the user mentions PDFs, forms, or extraction.`

**Include when-to-use triggers** in description so Claude recognizes your task.

### Multiple Skills conflict?

Use distinct trigger terms:

Instead of:
```yaml
# Skill 1
description: For data analysis

# Skill 2
description: For analyzing data

Use:

# Skill 1
description: Analyze sales data in Excel and CRM exports.
Use for sales reports, pipeline analysis, and revenue tracking.

# Skill 2
description: Analyze log files and system metrics.
Use for performance monitoring, debugging, and system diagnostics.

Check file paths

Verify Skill location:

# Personal
ls ~/.claude/skills/my-skill/SKILL.md

# Project
ls .claude/skills/my-skill/SKILL.md

Verify YAML syntax

Invalid YAML prevents loading:

cat SKILL.md | head -n 10

Ensure:

  • Opening --- on line 1
  • Closing --- before content
  • Valid YAML (no tabs, correct indentation)

Use forward slashes only

  • ✓ Good: scripts/helper.py
  • ✗ Wrong: scripts\helper.py

Share Skills

With your team via git

  1. Create Skill in .claude/skills/
  2. Commit to git:
    git add .claude/skills/
    git commit -m "Add team Skill for PDF processing"
    git push
    
  3. Team pulls and Skills are immediately available

Test your Skill

Ask Claude questions matching your description:

Can you help me extract text from this PDF?

Claude autonomously activates your Skill if description matches the request.

reviewing-code

CaptainCrouton89

Systematically evaluate code changes for security, correctness, performance, and spec alignment. Use when reviewing PRs, assessing code quality, or verifying implementation against requirements.

10017

railway-cli-management

CaptainCrouton89

Deploy, manage services, view logs, and configure Railway infrastructure. Use when deploying to Railway, managing environment variables, viewing deployment logs, scaling services, or managing volumes.

1388

writing-like-user

CaptainCrouton89

Emulate the user's personal writing voice and style patterns. Use when the user asks to write content in their voice, draft documents, compose messages, or requests "write this like me" or "in my style."

815

gathering-requirements

CaptainCrouton89

Systematically clarify user needs, preferences, and constraints before planning or implementation. Classifies work type, investigates existing systems, discovers edge cases and integration points, resolves assumptions, and creates detailed specifications. Use when building features, enhancements, or integrations where requirements need clarification.

13

fixing-bugs-systematically

CaptainCrouton89

Diagnose and fix bugs through systematic investigation, root cause analysis, and targeted validation. Use when something is broken, errors occur, performance degrades, or unexpected behavior manifests.

21

investigating-code-patterns

CaptainCrouton89

Systematically trace code flows, locate implementations, diagnose performance issues, and map system architecture. Use when understanding how existing systems work, researching concepts, exploring code structure, or answering "how/where/why is X implemented?" questions.

61

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

1,6781,424

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

1,2561,315

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

1,5251,142

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

1,347805

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

1,260725

pdf-to-markdown

aliceisjustplaying

Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.

1,465674