Back to Skills

commands-creator

majiayu000
Updated 2 days ago
58
9
58
View on GitHub
Metaaidesign

About

This skill guides developers in creating and managing slash commands for Claude Code, covering command syntax, advanced features like arguments and hooks, and organization strategies. Use it when building new commands, deciding between commands and skills, or implementing complex workflows.

Quick Install

Claude Code

Recommended
Plugin CommandRecommended
/plugin add https://github.com/majiayu000/claude-skill-registry
Git CloneAlternative
git clone https://github.com/majiayu000/claude-skill-registry.git ~/.claude/skills/commands-creator

Copy and paste this command in Claude Code to install this skill

Documentation

Commands Creator

This skill provides guidance for creating and managing slash commands in Claude Code. Slash commands are Markdown files that define frequently used prompts and workflows for Claude to execute.

Quick Start

Create a Project Command

mkdir -p .claude/commands
echo "Review this code for security vulnerabilities:" > .claude/commands/security-review.md

Usage: /security-review

Create a Personal Command

mkdir -p ~/.claude/commands
echo "Explain this code in simple terms:" > ~/.claude/commands/explain.md

Usage: /explain

Commands vs Skills

Use slash commands for:

  • Quick, frequently used prompts
  • Simple prompt snippets you use often
  • Prompt reminders or templates
  • Frequently used instructions that fit in one file

Use Skills for:

  • Complex workflows with multiple steps
  • Capabilities requiring scripts or utilities
  • Knowledge organized across multiple files
  • Team workflows you want to standardize

See skills-vs-commands.md for detailed comparison.

Command Creation Process

  1. Analyze requirements: What do you want the command to do?
  2. Choose scope: Project (.claude/commands/) or Personal (~/.claude/commands/)
  3. Write frontmatter: Add metadata (description, allowed-tools, etc.)
  4. Write prompt content: Define what Claude should execute
  5. Test the command: Invoke it and verify behavior
  6. Iterate: Refine based on usage

Command Types

Project Commands

  • Stored in .claude/commands/
  • Shared with your team via git
  • Shown as (project) in /help

Personal Commands

  • Stored in ~/.claude/commands/
  • Available across all projects
  • Shown as (user) in /help

Priority: Project commands take precedence over personal commands if both have the same name.

Plugin Commands

  • Provided by plugins
  • Automatically available when plugin is enabled
  • Can be namespaced: /plugin-name:command-name

MCP Commands

  • Dynamically discovered from connected MCP servers
  • Format: /mcp__<server-name>__<prompt-name>
  • Managed via /mcp command

See command-types.md for detailed information.

Command Scope: Project vs Personal

Use Project Commands When:

  • The command is project-specific
  • You want to share with your team
  • The workflow should be version-controlled

Use Personal Commands When:

  • The command is a general-purpose utility
  • You want it available across all projects
  • The workflow is personal to your development style

Basic Syntax

/<command-name> [arguments]

Command Name

  • Derived from the Markdown filename (without .md extension)
  • Must be unique within scope
  • Can be namespaced using subdirectories

Arguments

  • Optional parameters passed to the command
  • Use placeholders in command content:
    • $ARGUMENTS: All arguments as a single string
    • $1, $2, $3: Individual positional arguments

See syntax-and-arguments.md for detailed syntax and argument handling.

Frontmatter

Command files support frontmatter for metadata:

---
description: Brief description of the command
allowed-tools: Bash(git add:*), Bash(git status:*)
argument-hint: [message]
---

Common Frontmatter Fields

FieldPurposeDefault
descriptionBrief descriptionFirst line of prompt
allowed-toolsTools command can useInherits from conversation
argument-hintArguments expectedNone
modelSpecific model to useInherits from conversation
disable-model-invocationBlock Skill tool invocationfalse
hooksCommand-scoped hooksNone

See frontmatter-reference.md for complete frontmatter reference.

Advanced Features

Bash Command Execution

Execute bash commands before the slash command runs:

---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
---

Current git status: !`git status`

Use ! prefix to include bash command output in command context.

File References

Include file contents using @ prefix:

Review the implementation in @src/utils/helpers.js

Hooks

Define hooks scoped to command execution:

---
description: Deploy to staging
hooks:
  PreToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "./scripts/validate-deploy.sh"
          once: true
---

Deploy to staging environment.

Thinking Mode

Trigger extended thinking by including extended thinking keywords in the command content.

See advanced-features.md for detailed advanced features.

Namespacing

Organize commands in subdirectories:

.claude/commands/
├── frontend/
│   ├── review.md          # Creates /review (project:frontend)
│   └── test.md            # Creates /test (project:frontend)
└── backend/
    ├── review.md          # Creates /review (project:backend)
    └── deploy.md          # Creates /deploy (project:backend)

Subdirectories appear in the command description but don't affect the command name.

Command Discovery and Autocomplete

  • Type / at any position to see available commands
  • Autocomplete works anywhere in input, not just at the beginning
  • Commands are discovered from:
    • Project commands: .claude/commands/
    • Personal commands: ~/.claude/commands/
    • Plugin commands (when plugins are enabled)
    • MCP commands (when MCP servers are connected)

Skill Tool Integration

The Skill tool allows Claude to programmatically invoke commands during conversations. To encourage Claude to use a specific command, reference it in prompts or CLAUDE.md:

> Run /review before committing changes.

Commands with disable-model-invocation: true cannot be invoked via the Skill tool.

See best-practices.md for usage patterns and recommendations.

Command Examples

Basic command:

---
description: Review code for security vulnerabilities
---

Review this code for security vulnerabilities:
- SQL injection risks
- XSS vulnerabilities
- Authentication/authorization issues
- Input validation problems

Command with arguments:

---
argument-hint: [type] [description]
description: Create a git commit
---

Create a git commit with type "$1" and description "$2".

Commit format: $1: $2

Command with bash execution:

---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
description: Create a commit from staged changes
---

## Current status
!git status

## Changes to commit
!git diff --cached

Create a meaningful commit message for these changes.

See examples.md for more examples.

Common Built-in Commands

Claude Code provides 35+ built-in commands. Common ones include:

CommandPurpose
/helpGet usage help
/clearClear conversation history
/contextVisualize current context usage
/costShow token usage statistics
/configOpen Settings interface
/memoryEdit CLAUDE.md memory files
/modelSelect or change AI model
/planEnter plan mode
/reviewRequest code review

Built-in commands are not available through the Skill tool.

Troubleshooting

IssueSolution
Command not foundCheck filename matches command name
Arguments not workingVerify placeholder syntax ($1, $2, $ARGUMENTS)
Bash execution failingAdd command to allowed-tools
Project command ignoredPersonal command may have same name (project takes precedence)

Reference Files

GitHub Repository

majiayu000/claude-skill-registry
Path: skills/commands-creator

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

creating-opencode-plugins

Meta

This skill provides the structure and API specifications for creating OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It offers implementation patterns for JavaScript/TypeScript modules that intercept and extend the AI assistant's lifecycle. Use it when you need to build event-driven plugins for monitoring, custom handling, or extending OpenCode's capabilities.

View skill

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill

evaluating-llms-harness

Testing

This Claude Skill runs the lm-evaluation-harness to benchmark LLMs across 60+ standardized academic tasks like MMLU and GSM8K. It's designed for developers to compare model quality, track training progress, or report academic results. The tool supports various backends including HuggingFace and vLLM models.

View skill