Skip to main content
reopt Handbook
reopt Handbook
Claude Code Complete Guide

Setup

Plan and Environment SetupMastering CLAUDE.md

Multi-session & Agents

Multi-session WorkflowSubagents

Automation & Extension

HooksMCP IntegrationSkills and Slash Commands

Workflow

Plan ModeContext ManagementIDE IntegrationHeadless and CI/CD

Practice

Vibe Coding PatternsPrompting Best Practices

Verification

Verification ReportUpdate Log
Handbook›Claude Code Complete Guide›Skills and Slash Commands
한국어English

Skills and Slash Commands

Package repeatable Claude Code workflows into reusable commands and skills.

Plugin operations in v2.1.265–269

--plugin-dir accepts a parent folder, loads children with manifests, and detects additions/removals at runtime. Since v2.1.268, plugin install/uninstall/update/enable/disable support --json for automation. v2.1.269 adds claude plugin eval with JSON/HTML reports; inspect claude plugin eval --help for arguments. /output-style [name] lists/switches styles in Remote Control, cloud, and headless sessions.

official changelog · 2026-09-12 KST

Key takeaways

  • Custom slash commands are now merged into skills: .claude/commands/deploy.md and .claude/skills/deploy/SKILL.md both create /deploy, but skills are recommended for supporting files and invocation control.
  • A skill's body loads only when used, so long reference material costs almost nothing until needed; storage location (enterprise, personal, project, plugin) controls who can use it.
  • Only description is recommended frontmatter; other useful fields include disable-model-invocation, user-invocable, allowed-tools, model/effort, and context: fork.
  • Pass arguments via $ARGUMENTS/$N, and inject live data with a !`<command>` line that runs a shell command and replaces the placeholder with its output before the skill reaches Claude.
  • Recent releases reshaped the command surface — /simplify is now cleanup-only (pair with /code-review for bugs), and /run, /verify, /reload-skills carry version requirements.
  • As rechecked on 2026-09-05, v2.1.261 keeps interactive fork mode and background subagent spawning enabled by default. /verify and /code-review remain user-invoked. /claude-api cost-optimize and feedback drafts are release-tracked v2.1.247 features; the current Commands signature has not yet added cost-optimize, so verify it in the installed /help.

Skills and slash commands turn repeated work into a named workflow. Use them after a pattern is stable enough that humans would otherwise paste the same instructions again and again.

Commands are now skills

Custom slash commands have been merged into skills. A file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both create /deploy and behave the same way. Existing .claude/commands/ files keep working and support the same frontmatter, but skills are the recommended form because they also support supporting files, invocation control, and automatic loading. If a skill and a command share the same name, the skill takes precedence.

Slash Commands

Slash commands are best for short, direct workflows:

  • Run a release checklist.
  • Generate a focused review prompt.
  • Start a documented debugging routine.
  • Prepare a handoff summary.

A command is only recognized at the start of your message; any text after the command name is passed to it as arguments. Type / to see every command available to you, or / plus letters to filter.

Example command body:

Inspect changed files, identify risky behavior changes, run the focused test if available, and
return findings first with file references.

Skills

Skills are better for multi-step workflows with reference material, scripts, or templates. A useful skill explains when to use it, what files to read, and what output to produce. Each skill is a directory whose SKILL.md is the required entrypoint; other files (templates, examples, scripts, reference docs) are optional and load only when referenced.

my-skill/
├── SKILL.md        # Main instructions (required)
├── template.md     # Template for Claude to fill in
├── examples/
│   └── sample.md   # Example output showing expected format
└── scripts/
    └── validate.sh # Script Claude can execute

Unlike CLAUDE.md content, a skill's body loads only when the skill is used, so long reference material costs almost nothing until you need it. Keep the body concise: once a skill loads, its content stays in context across turns, so every line is a recurring token cost.

Good skill contents:

  • Trigger conditions.
  • Required repository conventions.
  • Scripts or templates to reuse.
  • Verification requirements.
  • Known failure modes.

Where Skills Live

Where you store a skill determines who can use it:

LocationPathApplies to
EnterpriseManaged settings locationAll users in your organization
Personal~/.claude/skills/<skill-name>/SKILL.mdAll your projects
Project.claude/skills/<skill-name>/SKILL.mdThis project only
Plugin<plugin>/skills/<skill-name>/SKILL.mdWhere the plugin is enabled

When skills share a name across levels, enterprise overrides personal, and personal overrides project. Plugin skills use a plugin-name:skill-name namespace, so they never conflict. The command you type comes from the skill directory name (.claude/skills/deploy-staging/ → /deploy-staging), or from the file name for a .claude/commands/ file.

Project skills load from .claude/skills/ in your starting directory and every parent directory up to the repository root, and Claude Code discovers nested .claude/skills/ directories on demand when you work with files in subdirectories (useful for monorepos). Claude Code watches these directories for changes during a session; use /reload-skills to force a re-scan after adding or editing skills on disk.

June 25, 2026 recheck

The v2.1.181~v2.1.197 changelog did not introduce a new user-invoked slash command that changes this chapter's command table. The operating impact from this update round is covered in the setup, headless, MCP, and subagent chapters: MCP login/logout, MCP idle timeout, sandbox credentials, model restriction warnings, and the agent nesting cap.

Frontmatter Discipline

If a workflow needs a specific reasoning level or model behavior, encode that in the command or skill frontmatter and keep the body operational:

---
description: Review handbook route changes for locale regressions.
---

Check route helpers, sitemap generation, localized links, and E2E coverage.

All frontmatter fields are optional; only description is recommended so Claude knows when to apply the skill. The most useful fields:

FieldUse it for
descriptionWhat the skill does and when to use it. Claude matches against this to load the skill automatically.
nameDisplay label in skill listings. Defaults to the directory name; it does not change what you type to invoke the skill (except for a plugin-root SKILL.md).
argument-hintHint shown during autocomplete, e.g. [issue-number].
disable-model-invocationSet true so only you can invoke it with /name; Claude never triggers it automatically. Use for side-effecting workflows like /deploy or /commit.
user-invocableSet false to hide it from the / menu; only Claude invokes it. Use for background knowledge that is not a meaningful command.
allowed-toolsTools Claude may use without prompting while the skill is active. Does not restrict other tools.
model / effortOverride the model or effort level for the duration of the skill.
context: forkRun the skill in an isolated subagent; pair with agent to pick the subagent type (e.g. Explore). Since v2.1.218 it runs in the background by default; set background: false for synchronous execution.

Arguments and Dynamic Context

Arguments passed after the command name are available via $ARGUMENTS (the full string), $ARGUMENTS[N], or the shorthand $N for the Nth (0-based) argument. If a skill does not include $ARGUMENTS, Claude Code appends ARGUMENTS: <your input> to the end so Claude still sees it.

---
description: Fix a GitHub issue
disable-model-invocation: true
---

Fix GitHub issue $ARGUMENTS following our coding standards, then write tests and commit.

A line beginning with !`<command>` runs the shell command before the skill is sent to Claude and replaces the placeholder with its output, so Claude receives real data rather than the command text. Use a fenced ```! block for multi-line commands. This is preprocessing, not something Claude executes.

## Current changes

!`git diff HEAD`

## Instructions

Summarize the changes above and flag any risks.

Current Command Surface

Recent Claude Code releases changed several command responsibilities:

CommandUse it for
/datavizGenerate charts, graphs, and dashboards for data visualization (bundled skill, v2.1.198).
/goalSet a completion condition so Claude keeps working across turns until it is met.
/workflowsWatch, pause, resume, or save running and completed dynamic workflow runs.
/background or /bgDetach the current session to run as a background agent and free the terminal.
/usage-creditsConfigure usage credits when limits block progress. Renamed from /extra-usage.
/reload-skillsRe-scan skill and command directories so on-disk changes apply without restarting.
/skillsList available skills, sort by token count, and toggle skill visibility.
/runLaunch and drive the project app to see a change working in the running app.
/verifyConfirm behavior by building and running the app, not just tests or type checks. User-invoked only since v2.1.215.
/code-reviewReview the current diff; user-invoked only since v2.1.215 and runs in a background subagent since v2.1.218. Use /code-review ultra for the deeper cloud review path.
/simplifyCleanup-only review for reuse, simplification, efficiency, and abstraction level.
/cd <path>Move the session to another working directory while preserving prompt cache; requires v2.1.169+.

/simplify is not a bug finder

From v2.1.154, /simplify runs a cleanup-only review (four agents covering reuse, simplification, efficiency, and abstraction level) and does not look for correctness bugs. Pair it with /code-review when both cleanup and correctness review are needed. On earlier versions /simplify was equivalent to /code-review --fix.

/run, /verify, and /run-skill-generator require Claude Code v2.1.145 or later; /reload-skills requires v2.1.152 or later; the /simplify cleanup-only behavior and the ultra review level landed in v2.1.154. /run and /verify infer the launch from your project type and metadata; /run-skill-generator records a per-project recipe at .claude/skills/run-<name>/ for projects that need more than a standard launch.

For locked-down sessions, --disable-slash-commands disables all skills and commands for that invocation. To hide only bundled Claude Code skills and workflows, set disableBundledSkills: true or CLAUDE_CODE_DISABLE_BUNDLED_SKILLS=1; plugin, project, and user skills remain available, and built-in slash commands like /init remain typable but are hidden from the model.

Governance

Review commands and skills like production code. Remove stale ones, merge duplicates, and keep high-risk automation visible to the team. Treat checked-in project skills as trusted code: an allowed-tools entry can grant broad tool access once the workspace is trusted, so review project .claude/skills/ before trusting a repository.

Sources

  • Skills: https://code.claude.com/docs/en/skills
  • Commands: https://code.claude.com/docs/en/commands

Related docs

Custom commands and skills

Claude Code Command Master · Choose the commands for custom commands and skills and follow their availability rules and concrete examples.

Skills and Custom Commands

Claude Code Command Master · How to design reusable Claude Code skills and slash commands for team workflows.

Cmd. /skills

Codex Command Master · Browse and apply local skills for task-specific behavior.

Skills Ecosystem

Enterprise Project Architecture · Build reusable agent skills, commands, and documents for repeated engineering workflows.

Cmd. /skills

Claude Code Command Master · Browse, filter, and manage skill visibility.

MCP Integration

Connect Claude Code to tools and resources through Model Context Protocol servers.

Plan Mode

Use analysis-first workflows to turn ambiguous requests into safe implementation steps.

On this page

Plugin operations in v2.1.265–269Slash CommandsSkillsWhere Skills LiveFrontmatter DisciplineArguments and Dynamic ContextCurrent Command SurfaceGovernanceSources