Marketplace

write-command

Create effective Claude Code slash commands with proper YAML frontmatter and argument handling. Use when writing new slash commands, improving existing commands, or learning command best practices.

$ Installieren

git clone https://github.com/wayne930242/Reflexive-Claude-Code /tmp/Reflexive-Claude-Code && cp -r /tmp/Reflexive-Claude-Code/skills/write-command ~/.claude/skills/Reflexive-Claude-Code

// tip: Run this command in your terminal to install the skill


name: write-command description: Create effective Claude Code slash commands with proper YAML frontmatter and argument handling. Use when writing new slash commands, improving existing commands, or learning command best practices.

Slash Command Creator

Create slash commands that users explicitly invoke with /command-name.

Command vs Skill

AspectSlash CommandSkill
ActivationManual /commandAutomatic (context)
Location.claude/commands/<name>.md.claude/skills/<name>/SKILL.md
Best forOn-demand actionsRecurring workflows

File Structure

.claude/
└── commands/
    ├── my-command.md
    └── subdir/
        └── nested-command.md

Creation Process

1. Initialize

Run the init script to create proper structure:

python3 scripts/init_command.py <command-name>

Options:

  • --path, -p: Output directory (default: .claude/commands)
  • --no-args: Create without argument template

2. Edit the Command

Update the generated file with your instructions.

3. Test

Restart Claude Code, then run /<command-name>.

Command Template

---
name: command-name
description: Brief description of what this command does
arguments:
  - name: required_arg
    description: Something required
    required: true
  - name: optional_arg
    description: Something optional
    required: false
---

# Command Title

[What this command does]

## Process

### 1. [Step Name]
[Instructions with code examples]

### 2. [Step Name]
[Instructions]

## Example Usage

/command-name value1 value2

YAML Frontmatter

Required Fields

FieldFormat
namelowercase, hyphens (must match filename)
descriptionBrief action description

Optional Fields

FieldDescription
argumentsArray of argument definitions
allowed-toolsPre-approved tools list

Arguments

Define arguments as array:

arguments:
  - name: issue-id
    description: GitHub issue number
    required: true
  - name: branch
    description: Branch name (default: main)
    required: false

Accessing Arguments

SyntaxUsage
$ARGUMENTSEntire input string
$1, $2Positional parameters

Example: /deploy app prod → $1=app, $2=prod

Body Guidelines

Do:

  • Use imperative form ("Run" not "You should run")
  • Provide concrete code examples
  • Break into numbered steps
  • Show example usage

Don't:

  • Include "When to use" (goes in description)
  • Be vague about commands
  • Make it too long

Special Features

Bash Execution

!npm run build
!python scripts/process.py

File References

Review this:
@src/index.ts

Validation Checklist

  • Name matches filename (kebab-case)
  • Description is clear and actionable
  • Arguments have descriptions and required flags
  • Body uses imperative form
  • Includes example usage