command-development

Create and configure Claude Code slash commands with frontmatter, arguments, and bash execution.

2|Updated Mar 21, 2026
One-click install
npx skills add https://github.com/ghoshsam/claude-code-skills --skill command-development-ghoshsam
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: command-development
Source: https://github.com/ghoshsam/claude-code-skills/tree/main/skills/plugin-dev/command-development
Command: npx skills add https://github.com/ghoshsam/claude-code-skills --skill command-development-ghoshsam

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Writing reusable slash commands for Claude Code requires knowing the correct Markdown structure, YAML frontmatter fields, argument syntax, and plugin integration patterns, which are easy to get wrong without a reference. ## Core Features & Use Cases - Command Structure Guidance: Covers Markdown file format, YAML frontmatter fields (description, allowed-tools, model, argument-hint, disable-model-invocation), and project, personal, and plugin command locations. - Dynamic Features: Explains $ARGUMENTS and positional arguments, @ file references, inline bash execution for context gathering, and the CLAUDE_PLUGIN_ROOT variable for portable plugin commands. - Use Case: You want a /review-pr command that takes a PR number, runs gh to fetch it, and reviews the diff. This Skill gives you the exact frontmatter, argument syntax, and bash execution pattern to build it correctly. ## Quick Start Ask Claude to create a slash command that reviews a pull request by number using the command-development guidelines.

Frequently Asked Questions about command-development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a custom slash command in Claude Code?

Create a Markdown file in .claude/commands/ for project commands or ~/.claude/commands/ for personal commands. The file content becomes Claude's instructions when the command is invoked, and optional YAML frontmatter configures description, tools, and model.

How do I pass arguments to a Claude Code slash command?

Use $ARGUMENTS to capture all arguments as one string, or positional placeholders like $1, $2, $3 for individual arguments. Add an argument-hint field in the frontmatter so users see the expected arguments in autocomplete.

What YAML frontmatter fields do Claude Code commands support?

Commands support description, allowed-tools, model, argument-hint, and disable-model-invocation. The allowed-tools field accepts patterns like Bash(git:*) to restrict which tools the command can use during execution.

Can a slash command run bash commands or read files?

Yes, commands can execute inline bash to gather context like git status before Claude processes the prompt, and use @path syntax to include file contents. Bash execution requires the appropriate allowed-tools entry.

Why is my slash command not appearing in Claude Code?

Check that the file is in the correct commands directory, has a .md extension, and contains valid Markdown. Restart Claude Code after adding the file so the new command is discovered.

How do plugin commands reference their own files portably?

Plugin commands use the ${CLAUDE_PLUGIN_ROOT} environment variable, which resolves to the plugin's absolute path. This lets commands execute scripts or load templates without hardcoded paths across installations.