Files
claude-code-best-practice/best-practice/claude-skills.md
T
Shayan Rais 13874e6fda done
2026-03-02 20:02:59 +05:00

6.3 KiB

Skills Best Practice

Last Updated
Implemented

Complete reference for Claude Code skills — skill definitions, frontmatter fields, and invocation patterns.

← Back to Claude Code Best Practice Claude

Frontmatter Fields

Skills are defined in .claude/skills/<name>/SKILL.md with optional YAML frontmatter.

Field Type Required Description
name string Recommended Display name and /slash-command identifier. Defaults to the directory name if omitted
description string Recommended What the skill does. Shown in autocomplete and used by Claude for auto-discovery
argument-hint string No Hint shown during autocomplete (e.g., [issue-number], [filename])
disable-model-invocation boolean No Set true to prevent Claude from automatically invoking this skill
user-invocable boolean No Set false to hide from the / menu — skill becomes background knowledge only, intended for agent preloading
allowed-tools string No Tools allowed without permission prompts when this skill is active
model string No Model to use when this skill runs (e.g., haiku, sonnet, opus)
context string No Set to fork to run the skill in an isolated subagent context
agent string No Subagent type when context: fork is set (default: general-purpose)
hooks object No Lifecycle hooks scoped to this skill

Two Skill Patterns

Pattern Loading Invocation Use Case
Skill On-demand /skill-name or Skill(skill: "name") tool Standalone reusable workflows invoked by commands or Claude
Agent Skill Preloaded at agent startup via skills: field Automatic — full content injected into agent context Domain knowledge or procedures baked into a specific agent

String Substitutions

Available inside skill markdown for dynamic values:

Variable Description
$ARGUMENTS All arguments passed when invoking the skill
$ARGUMENTS[N] Access a specific argument by 0-based index
$N Shorthand for $ARGUMENTS[N] (e.g., $0, $1)
${CLAUDE_SESSION_ID} Current session identifier
!`command` Dynamic context injection — shell command output replaces the placeholder before Claude sees it

Invocation

Method Description
/skill-name Invoke directly from the slash command menu
/skill-name [args] Pass arguments that map to $ARGUMENTS
Skill(skill: "name") Programmatic invocation via the Skill tool (used in commands and agents)
skills: [name] in agent frontmatter Preload into an agent — full skill content injected at startup, not invoked on-demand
Subdirectories Skills in subdirectories use /subdir:skill-name

Example: Minimal Skill

---
description: Summarize staged changes into a concise changelog entry
---

Summarize the git diff in context into a one-paragraph changelog entry,
focusing on what changed and why.

Example: Minimal Agent Skill

A skill preloaded into an agent as background knowledge — hidden from the / menu:

---
name: deploy-checklist
description: Pre-flight deployment checks for production releases
user-invocable: false
---

# Deploy Checklist

Before any production deployment:
1. Run all tests: `npm test`
2. Check for uncommitted changes: `git status`
3. Verify environment variables are set
4. Confirm database migrations are ready
---
name: code-review
description: Review code for quality, security, and performance issues
argument-hint: [file-path]
allowed-tools: Read, Grep, Glob
model: sonnet
context: fork
agent: general-purpose
hooks:
  Stop:
    - hooks:
        - type: command
          command: "./scripts/log-review-complete.sh"
---

Review the code at $0.

## Checklist
- [ ] Security: injection, XSS, hardcoded secrets
- [ ] Performance: N+1 queries, unnecessary loops
- [ ] Quality: naming, complexity, test coverage
- [ ] Error handling: edge cases, failure modes

Scope and Priority

When multiple skills share the same name, the higher-priority location wins:

Location Scope Priority
Project (.claude/skills/) This project only 1 (highest)
Personal (~/.claude/skills/) All your projects 2
Plugin (<plugin>/skills/) Where plugin is enabled 3 (lowest)

Skills in This Repository

Skills defined in .claude/skills/ for this project:

Skill User-Invocable Preloaded Into Description
weather-svg-creator Yes Creates SVG weather card and writes output files
weather-fetcher No weather-agent Fetches current temperature from wttr.in API
agent-browser Yes Browser automation CLI for AI agents
presentation/vibe-to-agentic-framework Yes presentation-curator Conceptual framework behind the presentation
presentation/presentation-structure Yes presentation-curator Slide format, weight system, and section structure
presentation/presentation-styling Yes presentation-curator CSS classes, component patterns, and syntax highlighting

Sources